前言
1、locust 翻译成中文的意思是‘蝗虫‘,官网称其为 “A modern load testing framework” ,是一款开源的性能测试工具,基于python开发的。
2、做性能测试大家首选的肯定是jmeter工具,但是多学会一门工具的使用,对职业发展也是有帮助的。
1、locust介绍
官网文档链接 -> 点此
- 1、locust 是一款易于使用,可编写脚本可扩展的性能测试工具
- 2、locust 相对于jmeter有一款很友好的web界面
2、locust安装
2.1 使用pip安装Locust
pip3 install locust
2.2 验证安装
locust -V
2、locust使用
from locust import task,HttpUser,TaskSet
class DemoLocust(TaskSet):
"""
创建测试任务类,必须要集成TaskSet类
可以创建多个任务
"""
@task(1)
def one_task(self):
# client 其实和request发送请求一样,里面除了添加url外,还可以添加请求参数
res = self.client.get('/sys/captcha/get_valid')
# 断言
if res.status_code == 200:
print("success")
else:
print("fails")
class RunTasks(HttpUser):
"""
创建运行测试类,需要继承Locust父类,继承HttpUser
"""
tasks = [DemoLocust] # 指定测试任务类,使用task_set覆盖父类的类属性
min_wait = 2000 # 指定启动任务间隔的时间范围(单位毫秒):2~5秒之间
max_wait = 5000 # 使用min_wait、max_wait覆盖父类的类属性
stop_time = 300 # 设置多少秒停止,是这个场景要跑多长的时间
3、运行
locust -f locustfilecsdn.py --host=http://10.200.*.*:8089 --web-host="127.0.0.1"
- 1、host=http://10.200..:8089 代表被测服务器的主机地址
- 2、web-host=“127.0.0.1” locust页面打开的地址
结果
点击此网址/浏览器直接输入127.0.0.1:8089,进入web端
4、参数设置
比如上面的参数填写 10,下面填写1秒,那么就是十秒内启动完成请求。
5、结果
5.1 图一:总览图
参数说明
- Type:请求类型
- Name:请求路径
- Requests:请求数量
- Fails:当前失败请求数量
- Median:中间值,一半服务器响应时间高于该值,一半低于该值
- 90%ile:90%服务器响应时间
- Average:所有请求的平均响应时间
- Min:请求的最少响应时间
- Max:请求的最大响应时间
- Average size:请求的平均大小
- Current RPS:当前每秒请求数
- Current Failures/s:每秒失败请求
图二:每秒请求总数和响应时间
上面的是每秒请求总数,如果上下波动性交大,说明性能不稳定
下面的是响应时间:黄色为最大的时间,绿色为最小的时间,一般3-5s为最佳,超过十秒一般性能不行。最大值如果持续过高就需要进行性能调优了。