在软件性能测试里,经常让人搞不清的是压力测试和负载测试,尽管它们都归在性能测试这个大类下,但是目标、方法和用处完全不一样。咱们可以把这两者拆开来说。 首先看核心目标和作用,负载测试主要是想看看系统在平时正常干活的时候表现咋样,说白了就是问它“在正常情况下好不好用”。它给系统做体检,保证它能抗住接下来的活,顺便还能帮着规划容量。而压力测试不一样,它是要去找系统的极限在哪儿,看它能不能扛住最极端的情况,也就是问它“在极端情况下会不会崩,崩了咋办”。 接下来聊聊施加的负载和过程。负载测试是慢慢往上加量,最多就加到比预想的峰值稍微高一点。比如系统能扛500个人同时来,测试的时候就从100人开始慢慢加到600人,过程挺平稳的。压力测试就比较狠了,一直加到系统受不了为止,甚至超过预期。比如从100人一下子猛加到超过系统极限的量。 再说说关注的指标有啥不同。负载测试主要盯着预期的那个数看指标够不够数。比如说500人同时在线的时候,平均响应时间能不能小于2秒?每秒的事务处理量(TPS)能不能到200?还有CPU和内存的使用率能不能压到75%以下?压力测试则是盯着那个破纪录的点和系统到底怎么崩的。比如说并发量加到多少的时候响应时间突然就爆表了?系统最大能扛多少?它是一下子死机还是慢慢变慢的? 最后打个比方吧,负载测试就像开车拉货,看这辆卡车装满额定载重(5吨)的时候能不能稳着开80公里每小时还省油。压力测试就是不停地往车上加货,从5吨加到10吨、15吨……直到车子不动了、轮子爆了或者架子变形了。 把这两种测试结合起来才有意义:前者保证系统在“晴天”能正常运行,后者告诉我们它在“暴风雨”来临时的极限和灾后恢复能力。湖南卓码软件测评有限公司在这块儿经验很丰富,能科学设计并执行这些测试,给系统稳定运行撑腰。人家还能出具有CMA/CNAS资质的权威报告。