写点什么

如何选择一个性能测试工具(LoadRunner 和 Locust 的一次对比)

用户头像
陈磊@Criss
关注
发布于: 2020 年 08 月 12 日

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:http://blog.csdn.net/crisschan


LoadRunner


LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。企业使用 LoadRunner 能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner 可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。


Locust


Locust 是一个开源负载测试工具。使用 Python 代码定义用户行为,也可以仿真百万个用户。Locust 是非常简单易用,分布式,用户负载测试工具。Locust 主要为网站或者其他系统进行负载测试,能测试出一个系统可以并发处理多少用户 Locust 是完全基于时间的,因此单个机器支持几千个并发用户。相比其他许多事件驱动的应用,Locust 不使用回调,而是使用轻量级的处理方式协程。


模拟的场景及设置


200 并发,执行接口的 get 请求,访问同一个服务,执行时间 5 分钟,每秒启动 50 个并发访问的请求。全部访问没有思考时间,每次迭代间隔无等待。等到达测试时间后,结束测试,全部进入结束流程无逐渐退出设置。


LoadRunner 的场景设置



上面的场景设置的含义就是,并发 200 用户,每秒钟启动 50 个虚拟用户,压力持续 5 分钟结束后全部退出。


Locust 的场景设置


locust -f test_get.py --host=http://www.XXXXXXX.com --no-web -c 200 -r 50 -t 5m


参数定义:


--no-web 表示不使用 Web 界面运行测试。


-c 设置虚拟用户数。


-r 设置每秒启动虚拟用户数。


-t 设置设置运行时间


--host=http://www.XXXXXXX.com 指定被测试应用的 URL 的地址,注意访问 HTTPS 的网址需要使用的 HTTPS 协议。


上面的场景含义就是不适用 web 页面启动测试,测试http://www.XXXXXXX.com地址,压力 200 虚拟用户,每秒钟启动 50 个虚拟用户,测试共运行 5 分钟.


结果对比


LoadRunner 测试结果



从上面的测试结果看,LoadRunner 共计运行 5 分 32 秒,发送请求 26599 次,最小响应时间为 0.024 秒,平均响应时间为 0.36 秒,最大响应时间为 18.05 秒,90 分位数为 0.287 秒,无失败的访问。


Locust 测试结果


Name # reqs # fails Avg Min Max | Median req/s


-----------------------------------------------------------------------------------------------------------------------------------------


GET XXXXXXXXXXXXXXXXXXXXXX 42099 0(0.00%) 1394 29 17028 | 1300 160.40


-----------------------------------------------------------------------------------------------------------------------------------------


Total 42099 0(0.00%) 160.40


Percentage of the requests completed within given times


Name # reqs 50% 66% 75% 80% 90% 95% 98% 99% 100%


-----------------------------------------------------------------------------------------------------------------------------------------


GET XXXXXXXXXXXXXXXXXXXXXX 42099 1300 1300 1300 1400 1500 1600 1800 2700 17000


-----------------------------------------------------------------------------------------------------------------------------------------


Total 42099 1300 1300 1300 1400 1500 1600 1800 2700 17000


从 Locust 的结果看,访问共计发送请求 42099 次,最小响应时间为 29 毫秒,最大响应时间为 17028 毫秒,平均响应时间为 1394 毫秒,90 分位数为 1500 毫秒,无失败的访问。


对比


|工具|最小响应时间(毫秒)|最大响应时间(毫秒)|平均响应时间(毫秒)|90 分位数(毫秒)|发送请求数|


|---|---|---|---|---|---|


|LoadRunner|24|18050|360|287|26599|


|Locust|29|17028|1394|1500|42099|


从上面可以看出来,两个工具在最大的响应时间和最小的响应时间处理差不多,但是 Locust 发送请求的效率比 LoadRunner 要大很多,因此会导致服务端处理的请求会更多。


平均响应时间上,LoadRunner 的结果优于 Locust,90 分位数也优于 Locust,这可能出现的原因是因为 Locust 发送请求的机制更快,单位时间内发送请求更多,从而导致服务端要处理的请求更多,影响了响应时间的结果。


但是性能测试无论用哪个工具都是一个相对结果,因此我们只要保证在测试、优化过程中用同一个工具、相同的网络环境进行测试,就可以达到我们性能测试和优化的原始工作的预期的。


**From:https://mp.csdn.net/mdeditor/98041663#**

关注我,关注测试


用户头像

陈磊@Criss

关注

测者观天下bugs 2018.03.11 加入

华为云MVP,阿里云MVP

评论

发布
暂无评论
如何选择一个性能测试工具(LoadRunner和Locust的一次对比)