性能测试中负载测试大多数用JMeter。今天说的Locust是基于Python开发的一个开源框架。
JMeter和Locust区别
JMeter:需要在UI界面上通过选择组件来“编写”脚本,模拟的负载是线程绑定的,意味着模拟的每个用户,都需要一个单独的线程。单台负载机可模拟的负载数有限。需要一定的Java编程基础。
Locust:通过编写简单易读的代码完成测试脚本,基于事件,同样配置下,单台负载机可模拟的负载数远超jmeter
Locust安装
支持的python版本:2.7、3.4、3.5、3.6;
在MacOS安装:
- 安装Homebrew。
- 安装libev(gevent依赖):
在Windows上安装:
在Windows上,运行应该工作。pip install locustio
编写Locust示例:
image.png脚本说明:
HttpLocust类表示要加上阴影线并攻击要进行负载测试的系统的HTTP“用户”。
该用户的行为由task_set属性定义,该属性应指向一个TaskSet
此类在实例化上创建客户端属性,该实例化是一个HTTP客户端,支持在请求之间保持用户会话。
其中,代码中马赛克的部分是加载测试的两个URL的站点。
上面的Locust类,每个模拟用户将在请求之间等待5到15秒,并且第一个URL将被请求数的第二个URL的两倍。
网友评论