实验数据记录,验证locust与lr的测试结果。
之前一直用lr进行性能测试,对lr的各项指标比较熟悉,新工具locust上手,做下结果对比。验证工具差异,供同行参考。
采用简单场景验证:
访问测试站点首页、子类页面
第一次
首先loadrunner:
10vu 并发启动,运行3分钟
得到结果:
RT/TPS:1.9s/5.2
通过事务:950
服务端负载约9.4(一台测试服务器,忽略性能...)
其次locust:
同样10vu 并发启动,运行3分钟,手动停止
得到结果:
RT/RPS:2.1s/4.4
通过事务:890
服务端负载10(一台测试服务器,忽略性能...)
对比:
loadrunner:RT/TPS:1.9s/5.2
locust :RT/RPS:2.1s/4.4
差距不算太大。
第二次
首先loadrunner:
100vu 并发启动,运行3分钟
得到结果:
RT/TPS:13.95s/7
通过事务:1400
服务端负载:99......(这是一台测试服务器...这是一台测试服务器...)
其次locust:(经过漫长的等待,load average终于回到了1)
同样100vu 并发启动,运行3分钟,手动停止
得到结果:
RT/RPS:14.31s/6.9
通过事务:1125(由于locust是手动停止,而loadrunner是设置好的时间,所以在时间把控上有一些出入,影响到了总请求数量,不过不是主要关注的指标,可以忽略)
服务端负载:108(没截到图......)
再对比:
loadrunner:RT/TPS:13.95s/7
locust :RT/RPS:14.31s/6.9
结果还是差不多的,locust的程序我是跑在windows上的,人家官网都说了,建议使用linux。。。不过linux上亲测运行速度要快过Windows!
最后使用阿里的PTS对比下:
由于PTS 的vu启动速度太慢,所以时间设置了3:30,另外,PTS可设置最大的超时限制是10s,100vu时测试站点大多响应时超过10s,所以只做了10vu的测试。
同样10vu 并发启动,运行3分半
得到结果:
RT/RPS:2.1s/4.9
通过事务:1055
服务端负载12(一台测试服务器,忽略性能...)
10vu 的对比:
loadrunner:RT/TPS:1.9s/5.2
locust :RT/RPS:2.1s/4.4
PTS :RT/RPS:2.1s/4.9
平均负载的值没有大的出入,测试服务器上有几个测试站点、计划任务再跑,小范围波动可忽略。
以上就是对比结果,个人观点是locust可以代替lr。而且使用python来编辑脚本,相较于lr类C的写法对我来说自由度更高一些。
补充:locust在进行大并发测试时,需要根据cpu核数,启动多个slave.才能充分发挥locust能力。