基于python的性能测试工具Locust学习

Locust简介

网上关于Locust的介绍很多,这边不在赘述,只简单谈一下自己理解的一些,更详细的可以参考官方文档 http://locust.io/

1.Locust是一个开源负载测试工具(无需破解等操作,直接上手使用),使用python定义用户行为,扩展性较好

2.支持分布式执行,测试http接口较简单方便

3.用户界面简洁明了,实时展示测试情况

Locust安装

Locust可以直接通过pip或者easy_install安装:

pip install locustio  或者  easy_install locustio

安装结束后,输入 locust --help ,如果正常展示帮助页面则安装成功

locust --help

如果打算以分布式模式运行Locust,同时安装pyzmq:

pip install pyzmq  -----------  由于水平有限,暂时没有用到分布式,所以装不装其实也无所谓

Locust脚本编写

简单的示例,结合我司的系统一个简单的登录、查询脚本

登录查询脚本

其中:

1.@task装饰器来定义任务信息,pd_query任务的执行频率是pd_tree任务执行频率的两倍;

2.on_start函数类似setup,用于正式执行测试之前,主要用于完成一些初始化工作,脚本中写了登录,值得一提的是在登录系统后可以继续维持登录状态的session

Locust运行及结果查看

进入cmd,cd到脚本所在路径,执行命令 :

locust -f  .\locust_test1.py  --host=http://172.31.3.231:6020

其中 -f 指定执行的脚本,文件locust_test1.py 为脚本名,--host指定被测系统,后面接所测试的地址

运行命令

登陆172.0.0.1:8089

运行结果展示

可以看到:

1.portal/logon.action 仅执行了一次

2.pd_query任务的执行频率是pd_tree任务执行频率的两倍;

结果展示的指标较为简单,主要是并发数、RPS、响应时间、异常率,除此之外还可以通过Download Data,下载查看整个运行过程数据的百分比统计值

下载数据

综述

个人认为工具的学习是相对简单的,重难点是对工具测试出来的结果进行分析、有针对性的优化改进的过程,这也是我在努力学习加强的地方,有想法小伙伴欢迎交流、指导

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 128,884评论 18 137
  • 本文章转载于搜狗测试 上一篇我们讲了性能测试的测试工具,当时对大家推荐了性能测试工具Locust,上期评论时候大家...
    夜境阅读 1,186评论 0 0
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 87,250评论 9 464
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 164,043评论 24 696
  • 为了儿子是我学九型的大部分动力,初衷仅仅是为了分出大家的型号,天真的以为按型号抓副药吃下去就药到病除了。 在二阶课...
    胡广德阅读 106评论 1 0
  • 一天中就这么晕晕乎乎到下班时刻了。 每天早晨醒来都会感受到生命存在的美好,活着真好!是的,你还可以好好的生活,还有...
    狩望轮回阅读 85评论 0 2
  • 有一天,我飞上苍穹 那时我就是雄鹰 我可以俯瞰大地 那是我的战场 有一天,我变巨人 那时我会带上心灵 我藐视众山 ...
    布老头和他的家人们阅读 118评论 5 0