前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何选择一个性能测试工具(LoadRunner和Locust的一次对比)

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

作者头像
Criss@陈磊
发布2019-08-02 12:13:03
7400
发布2019-08-02 12:13:03
举报
文章被收录于专栏:测试技术圈

LoadRunner

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

Locust

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

模拟的场景及设置

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

LoadRunner的场景设置

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

Locust的场景设置

代码语言:javascript
复制
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测试结果

代码语言:javascript
复制
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发送请求的机制更快,单位时间内发送请求更多,从而导致服务端要处理的请求更多,影响了响应时间的结果。

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LoadRunner
  • Locust
  • 模拟的场景及设置
    • LoadRunner的场景设置
      • Locust的场景设置
      • 结果对比
        • LoadRunner测试结果
          • Locust测试结果
            • 对比
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档