Linux版本
代码locust_test.py
执行命令
./locust -f locust_test.py -u 3000 -r 60 --headless -t 10m --print-stats
报告:动态刷新
可视化监控
Prometheus(普罗米修斯) + grafana
压测前的指标:10000并发
压测后的指标:
压测结束后:
locust执行结果
压测:500并发
Grafana监控:
五、locust参数介绍
参数名称 参数值 参数说明 -h, --help 不带参数 查看帮助信息 -H HOST, –host=HOST HOST 指定被测试的主机,采用以格式:http://10.21.32.33 –web-host=WEB_HOST WEB_HOST 指定运行 Locust Web 页面的主机,默认为空 “。 -P PORT, –port=PORT, –web-port=PORT PORT 指定 –web-host 的端口,默认是8089 -f LOCUSTFILE, –locustfile=LOCUSTFILE LOCUSTFILE 指定运行 Locust 性能测试文件,默认为: locustfile.py –csv=CSVFILEBASE, –csv-base-name=CSVFILEBASE CSVFILEBASE 以CSV格式存储当前请求测试数据。 –master 不带参数 Locust 分布式模式使用,当前节点为 master 节点。 –slave 不带参数 Locust 分布式模式使用,当前节点为 slave 节点。 –master-host=MASTER_HOST MASTER_HOST 分布式模式运行,设置 master 节点的主机或 IP 地址,只在与 –slave 节点一起运行时使用,默认为:127.0.0.1. –master-port=MASTER_PORT MASTER_PORT 分布式模式运行, 设置 master 节点的端口号,只在与 –slave 节点一起运行时使用,默认为:5557。注意,slave 节点也将连接到这个端口+1 上的 master 节点。 –master-bind-host=MASTER_BIND_HOST MASTER_BIND_HOST 做分布式压测时,指定分机IP。只用于master。如果没有指定,默认是所有可用的IP(即所有标记主机IP的slave) –master-bind-port=MASTER_BIND_PORT MASTER_BIND_PORT 做分布式压测时,指定分机port。默认是5557与5558。 –no-web no-web -c 和 -r 配合 模式运行测试,需要 -c 和 -r 配合使用. -c NUM_CLIENTS, –clients=NUM_CLIENTS NUM_CLIENTS 指定并发用户数,作用于 –no-web 模式。 -r HATCH_RATE, –hatch-rate=HATCH_RATE HATCH_RATE 指定每秒启动的用户数,作用于 –no-web 模式。 -t RUN_TIME, –run-time=RUN_TIME RUN_TIME 设置运行时间, 例如: (300s, 20m, 3h, 1h30m). 作用于 –no-web 模式。 -L LOGLEVEL, –loglevel=LOGLEVEL LOGLEVEL 选择 log 级别(DEBUG/INFO/WARNING/ERROR/CRITICAL). 默认是 INFO. –logfile=LOGFILE LOGFILE 日志文件路径。如果没有设置,日志将去 stdout/stderr –print-stats 不带参数 在控制台中打印数据 –only-summary 不带参数 只打印摘要统计 –no-reset-stats 不带参数 Do not reset statistics once hatching has been completed。 -l, –list 不带参数 显示测试类, 配置 -f 参数使用 –show-task-ratio 不带参数 打印 locust 测试类的任务执行比例,配合 -f 参数使用. –show-task-ratio-json 不带参数 以 json 格式打印 locust 测试类的任务执行比例,配合 -f 参数使用. -V, –version 不带参数 查看当前 Locust 工具的版本.
六、测试报告参数介绍
报告数据:
type:请求方式 name:请求路径的api requests:请求数 fails:请求失败数 Median:中位数,响应时间,单位毫秒 Average:平均数,响应时间,单位毫秒 Min:最小响应时间,单位毫秒 Max:最大响应时间,单位毫秒 Content Size:单个请求大小,单位为字节 reqs/sec:每秒请求数,相当于jmeter的tps charts: 实时统计的rps 实时统计平均响应时间 实时统计虚拟用户数
七、linux服务器部署可视化监控
Docker部署 Prometheus(普罗米修斯) + grafana 非常炫酷的可视化监控以及丰富的监控插件,以及监控的对象,根据不通的监控需求,选择不同的模板ID,监控的内容非常详细
具体部署步骤:https://blog.csdn.net/qq_41870111/article/details/120953313