httprunner学习04-locusts性能测试

前言:
项目测试过程中,偶尔有性能测试的需求。比如需要提供平台登录并发性能的测试报告什么的,需要进行测试测试,提供测试数据。
httprunner与locusts做了很好的兼容,正好派得上用场。

1、Locust 的安装
安装方式如下:

$ pip install locustio

安装完成后,执行 locusts -V 可查看到 Locust 的版本号。

$ locusts -V
[2020-03-25 17:28:17,694] EDZ-20180620OTH/INFO/stdout: Locust 0.12.1
[2020-03-25 17:28:17,695] EDZ-20180620OTH/INFO/stdout:

安装完成 HttpRunner 后,系统中会新增locusts命令。loucsts 命令与 locust 命令的用法基本相同,主要存在如下两项差异。

运行性能测试
在 -f 参数后面,loucsts 命令不仅可以指定 Locust 支持的 Python 文件,同时可以直接指定 YAML/JSON 格式的测试用例文件。
在具体实现上,当 -f 指定 YAML/JSON 格式的测试用例文件时,会先将其转换为 Python 格式的 locustfile,然后再将 locustfile.py 传给 locust 命令。
$ locusts -f examples/first-testcase.yml
[2017-08-18 17:20:43,915] Leos-MacBook-Air.local/INFO/locust.main: Starting web monitor at *:8089
[2017-08-18 17:20:43,918] Leos-MacBook-Air.local/INFO/locust.main: Starting Locust 0.8a2

执行上述命令后,即完成了 Locust 服务的启动,后续就可以在 Locust 的 Web 管理界面中进行操作了,使用方式与 Locust 完全相同。

2、执行性能测试
配置locusts后,执行命令,直接执行httprunner的测试用例
locusts -f testsuites\cmc_login_test.yml --host=http://192.168.4.200:60006
在这里插入图片描述
多进程测试
locusts -f testsuites\cmc_login_test.yml --host=http://192.168.4.200:60006 --processes 4
多进程运行模式说明:
默认情况下,在 Locust 中如需使用 master-slave 模式启动多个进程(使用多核处理器的能力),只能先启动 master,然后再逐一启动若干个 slave。
$ locust -f locustfile.py --master
$ locust -f locustfile.py --slave &
$ locust -f locustfile.py --slave &
$ locust -f locustfile.py --slave &
$ locust -f locustfile.py --slave &

在 HttpRunner 中,新增实现 --processes 参数,可以一次性启动 1 个 master 和多个 salve。若在 --processes 参数后没有指定具体的数值,则启动的 slave 个数与机器的 CPU 核数相同。

执行以上的locusts命令后,打开浏览器,访问本地的locusts端口,可以打开locusts的操作界面。(具体端口查看启动日志,如上图8089)
httprunner学习04-locusts性能测试_第1张图片
Number of users to simulate: 设置模拟用户数
Hatch rate (users spawned/second): 每秒产生(启动)的虚拟用户数

3、测试数据解析
1、性能测试运行时,可查看API调用情况。
httprunner学习04-locusts性能测试_第2张图片
Type: 请求的类型,例如GET/POST.
Name: 请求的路径,这里是httprunner用例中的name。
request: 当前请求的数量。
fails: 当前请求失败的数量。
Median: 中间值,单位为毫秒,一般的服务器响应时间低于该值,另一半高于该值。
Average: 平均值,单位毫秒,所有请求的平均响应时间。
Min: 请求的最小服务器响应时间,单位毫秒。
Max: 请求的最大服务器响应时间,单位毫秒。
Content Size: 单个请求的大小,单位字节。
reqs/sec: 每秒请求的个数。

2、locust的性能数据是图形化的,可以截图放在测试报告中,让用户直观的感受平台的性能数据。
httprunner学习04-locusts性能测试_第3张图片
3、下载csv格式的性能数据。
httprunner学习04-locusts性能测试_第4张图片
也可以可以使用命令行志–no-web模式运行Locust,加上–csv=example参数保存前面两个CSV文件。
locusts -f testsuites\cmc_login_test.yml --host=http://192.168.4.200:60006 --no-web --csv=wpc -c 1 -r 1 -t 10s
使用–csv=wpc会自动保存两个文件到当前脚本目录wpc_distribution.csv、wpc_requests.csv。
httprunner学习04-locusts性能测试_第5张图片

你可能感兴趣的:(学习笔记)