locust
1.locaust是什么?
Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行)
2.locust安装
命令:pip install locust
3.一个简单的locustfile.py文件
import time
from locust import HttpUser,task,between
class QuickStartUser(HttpUser):
host = 'http://192.168.0.102:5000'
min_wait = 3000
max_wait = 6000
@task
def index(self):
r=self.client.get('/login')
assert r.status_code==200
@task
def login(self):
r = self.client.post(
url='/login',
json={"username": "wuya", "password": "admin", "age": 18, "sex": "男"})
assert r.status_code == 200
4.控制台运行:locust -f locustfile.py
启动locust文件成功后,编译器控制台会显示如下信息:
[2018-10-09 01:01:44,727] IMYalost/INFO/locust.main: Starting web monitor at *:8089
[2018-10-09 01:01:44,729] IMYalost/INFO/locust.main: Starting Locust 0.8
PS:8089是该服务启动的端口号,如果是本地启动,可以直接在浏览器输入http://localhost:8089打开UI界面,如果是其他机器搭建locust服务,则输入该机器的IP+端口即可;
locust的UI界面

下⾯具体针对界⾯的⽂字设置进⾏解释,具体如下:
• Number of total users to simulate:设置模拟的⽤户总数
• Spawn rate (users spawned/second):每秒启动的⽤户虚拟数
• Host (e.g. http://www.example.com):被测的⽬标服务器的地址信息
• Number of total users to simulate:设置模拟的⽤户总数
• Spawn rate (users spawned/second):每秒启动的⽤户虚拟数
• Host (e.g. http://www.example.com):被测的⽬标服务器的地址信息

Type:请求类型(也就是请求具体是那个=⽅法)
Name:请求的路径地址信息
Requests:当前已完成的请求数量
Fails:当前失败的数量
Mediam(ms): 响应时间的中位数
90%ile (ms):90%的请求响应时间
Average (ms):平均响应时间
Min (ms):最⼩响应时间
Max (ms):最⼤响应时间
Average size (bytes):平均请求的数据量
Current RPS:每秒中处理请求的数量,也就是RPS
Name:请求的路径地址信息
Requests:当前已完成的请求数量
Fails:当前失败的数量
Mediam(ms): 响应时间的中位数
90%ile (ms):90%的请求响应时间
Average (ms):平均响应时间
Min (ms):最⼩响应时间
Max (ms):最⼤响应时间
Average size (bytes):平均请求的数据量
Current RPS:每秒中处理请求的数量,也就是RPS
New test:点击该按钮可对模拟的总虚拟⽤户数和每秒启动的虚拟⽤户数进⾏编辑;
Statistics:聚合报告
Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟⽤户数;
Failures:失败请求的展示界⾯;
Exceptions:异常请求的展示界⾯;
Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:Statistics、responsetime、
Statistics:聚合报告
Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟⽤户数;
Failures:失败请求的展示界⾯;
Exceptions:异常请求的展示界⾯;
Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:Statistics、responsetime、