locust运行模式记录
pip3 install locust安装
官方使用文档:https://docs.locust.io/en/latest/
运行Locust时,通常会使用到两种运行模式:单进程运行和多进程分布式运行。
一,单进程运行模式
Locust所有的虚拟并发用户均运行在单个Python进程中,具体从使用形式上,又分为no_web
和web
两种形式。该种模式由于单进程的原因,并不能完全发挥压力机所有处理器的能力,因此主要用于调试脚本和小并发压测的情况。
1,Locust web模式
如果采用web
形式,,则通常情况下无需指定其它额外参数,Locust默认采用8089端口启动web
;如果要使用其它端口,就可以使用如下参数进行指定。
- -P, --port:指定web端口,默认为8089.
- 终端中--->进入到代码目录: locust -f locustfile.py --host = xxxxx.com
- -f 指定性能测试脚本文件
- -host 被测试应用的URL地址【如果不填写,读取继承(HttpLocust)类中定义的host】
- Locust默认使用该方式启动,启动后在本机打开http://localhost:8089,可以看到Locust WEB页面,设置并发用户数及每秒请求数后即可开始性能测试。
启动参数:
Number of users to simulate 设置虚拟用户数,对应中no_web模式的-c, --clients参数;
Hatch rate(users spawned/second)每秒产生(启动)的虚拟用户数, 对应着no_web模式的-r, --hatch-rate参数,默认为1。点击Start swarming 按钮,开始运行性能测试。
2,Locust no-web模式
命令行运行 Locust 测试:
locust -f test.py --host=https://www.baidu.com --no-web -c 10 -r 2 -t 1m
启动参数:
–no-web 表示不使用Web界面运行测试。
-c 设置虚拟用户数。
-r 设置每秒启动虚拟用户数。
-t 设置设置运行时间。
二,多进程分布式运行
当并发压力要求较高时,就需要用到Locust的多进程分布式运行模式。从字面意思上看,大家可能第一反应就是多台压力机同时运行,每台压力机分担负载一部分的压力生成。的确,Locust支持任意多台压力机(一主多从)的分布式运行模式,但这里说到的多进程分布式运行模式还有另外一种情况,就是在同一台压力机上开启多个slave的情况。这是因为当前阶段大多数计算机的CPU都是多处理器(multiple processor cores),单进程运行模式下只能用到一个处理器的能力,而通过在一台压力机上运行多个slave,就能调用多个处理器的能力了。比较好的做法是,如果一台压力机有N个处理器内核,那么就在这台压力机上启动一个master,N个slave。当然,我们也可以启动N的倍数个slave,但是根据我的试验数据,效果跟N个差不多,因此只需要启动N个slave即可。
不管是单机多进程
,还是多机负载
模式,运行方式都是一样的,都是先运行一个master,再启动多个slave。
启动master时,需要使用--master参数;同样的,如果要使用8089以外的端口,还需要使用-P, --port参数。
# 启动master
locust -f monitorAgent.py --master --port=8089
启动slave时需要使用--slave参数;在slave中,就不需要再指定端口了。master启动后,还需要启动slave才能执行测试任务。
#启动slave locust -f monitorAgent.py --slave
master和slave都启动完毕后,就可以在浏览器中通过http://locust_machine_ip:8089进入Locust的Web管理页面了。
使用方式跟单进程web形式完全相同,只是此时是通过多进程负载来生成并发压力,在web管理界面中也能看到实际的slave数量。
如果slave与master不在同一台机器上,还需要通过--master-host参数再指定master的IP地址。
#如果slave与master不在同一台机器上,还需要通过--master-host参数再指定master的IP地址 locust -f monitorAgent.py --slave --master-host=ip
Number of users to simulate 设置虚拟用户数,对应中no_web模式的-c, --clients参数;
Hatch rate(users spawned/second)每秒产生(启动)的虚拟用户数, 对应着no_web模式的-r, --hatch-rate参数,默认为1。点击Start swarming 按钮,开始运行性能测试。
host 测试接口的ip地址
性能测试参数:
-
Type: 请求的类型,例如GET/POST。
-
Name:请求的路径。
-
request:当前请求的数量。
-
fails:当前请求失败的数量。
-
Median:中间值,单位毫秒,一半的服务器响应时间低于该值,而另一半高于该值。
-
Average:平均值,单位毫秒,所有请求的平均响应时间。
-
Min:请求的最小服务器响应时间,单位毫秒。
-
Max:请求的最大服务器响应时间,单位毫秒。
-
Content Size:单个请求的大小,单位字节。
-
reqs/sec:是每秒钟请求的个数。
https://www.cnblogs.com/ailiailan/p/9474973.html
本文来自博客园,作者:青城杂文录,转载请注明原文链接:https://www.cnblogs.com/chenyq/p/16700138.html