locust+python做性能自动化测试
步骤:
1)安装locustio
pip install locustio
2) 使用locust写脚本
文件名:test_download.py
1 from locust import HttpLocust,TaskSet,task 2 3 """ 4 创建后台管理站点压测类,需要继承TaskSet 5 可以添加多个测试任务 6 """ 7 class AdminLoadTest(TaskSet): 8 9 # 用户执行task前调用 10 def on_start(self): 11 pass 12 13 # 用户执行task后调用 14 def on_stop(self): 15 pass 16 17 @task 18 def download(self): 19 # 头部 20 header = {"key":"value"} 21 # 参数 22 data = {"key":"value"} 23 self.client.get('/xxx/xxx',data=data,headers=header) 24 25 class RunLoadTests(HttpLocust): 26 """ 27 创建运行压测类 28 """ 29 task_set = AdminLoadTest 30 min_wait = 1000 31 max_wait = 50000 32 33 34 if __name__ == "__main__": 35 import os 36 os.system("locust -f test_download.py --host=http://xx.xx.xx.xx:xxxx")
3) 本地访问:http://localhost:8089/
4) 结果:
- Type——请求类型
- Name——接口地址
- Requests——请求数
- Fails——失败的请求数
- Medisn(ms)——中间值,一般的请求响应时间高于此值,一半的请求响应时间低于此值;
- Average(ms)——平均值,所有请求的平均响应时间
- Min(ms)——请求的最小响应时间
- Max(ms)——请求的最大响应时间
- Average Size(bytes)——请求的平均大小
- Current RPS:每秒请求个数
下载相关数据:
no web模式
命令行运行:
locust -f 文件名.py --host=http://xx.xx.xx --no-web -c 10 -r 2 -t 1m
* -c 虚拟用户数
* -r 每秒启动的虚拟用户数
* -t 运行时间