文章目录
- 一、实现步骤
- 二、编写测试脚本
- 三、运行Locust
-
- [3.1 打开Locust的web界面](#3.1 打开Locust的web界面)
- [3.2 效果展示](#3.2 效果展示)
-
- [3.2.1 Statistics统计报表](#3.2.1 Statistics统计报表)
- [3.2.2 Charts图表展示](#3.2.2 Charts图表展示)
- [3.2.3 失败、异常、下载数据](#3.2.3 失败、异常、下载数据)
一、实现步骤
1、创建 任务集 和 任务
- 定义任务类,从 TaskSet 继承
- 在类内添加任务,@task 任务的具体实现与定义方法语法一致
2、定义用户类
- 绑定任务 task_set = 任务类类名
- 设置用户间的最小延迟时间 min_wait =
- 设置用户间的最大延迟时间 max_wait =
- 指定主机地址 host =
yacas
1、定义任务和任务集(定义一个事务,事务中包含多个接口请求)
2、定义用户类(线程组 用户,控制事务执行)
二、编写测试脚本
需求:访问 https://www.baidu.com 模拟100人访问
python
from locust import TaskSet, HttpLocust, task
# 1.定义 任务集 和 任务
class TaskClass(TaskSet): # TaskClass 表示任务集
""""定义任务"""
# 访问首页-任务(会被自动调用)
@task
def index(self):
result = self.client.get("/") # 此行代码相当于requests.Session().get()
print("响应结果:", result.text) # 打印结果
# 2.定义 用户类
class User(HttpLocust): # 定义用户类,继承了 HttpLocust 类
# 绑定任务
task_set = TaskClass # task_set 属性名不能变; 注意:TaskClass 后,没有 ()
# 设置 用户间 最小延迟时间 - 单位 ms
min_wait = 1000
# 设置 用户间 最大延迟时间
max_wait = 3000
# 指定 主机地址
host = "https://www.baidu.com"
-
自定义的User类继承了 HttpLocust 类, 这个类代表用户, 生成一个实例, 模拟用户发送http请求
-
task_set: 该属性指向 TaskSet 类, 定义用户的行为
-
min_wait: 用户执行任务之间等待时间的下界, 单位: 毫秒, 默认值: 1000
-
max_wait: 用户执行任务之间等待时间的上界, 单位: 毫秒, 默认值: 1000
-
host: 被测应用的网址, 例如: http://www.baidu.com
-
weight: 用户被选中的概率, 权重越大, 被选中的机会就越大。 默认值: 10 。
权重------当有多个用户类(线程组)来执行时,通过这个权重来控制不同用户类之间的请求数比例
三、运行Locust
终端运行命令:
bash
locust -f .\LocustTest\1.py
____________________________________________________________
参数介绍:
-f:用来指定locust文件所在路径
--host:用来指定测试应用的网址
locust -f .\LocustTest\1.py --host=http://example.com

3.1 打开Locust的web界面
使用上面的命令行启动Locust之后, 打开浏览器并访问: http://localhost:8089 (如果你在本地运行Locust)。 可以看到如下界面
参数说明:
- Number of users to simulate: 要模拟的用户数量
- Hatch rate (users spawned/second): 孵化率(用户生成/秒), 即每秒启动虚拟用户数
- 点击Start swarming 开始运行性能测试

3.2 效果展示
3.2.1 Statistics统计报表
设置虚拟用户数100, 每秒启动10个用户, 点击Start swarming 开始运行
界面说明:
- Type: 请求类型
- Name: 请求路径
- Requests: 当前请求的数量
- Fails: 当前请求失败的数量
- Median (ms): 中间值, 单位毫秒, 一半服务器响应时间低于该值, 而另一半高于该值
- Average (ms): 所有请求的平均响应时间, 毫秒
- Min (ms): 请求的最小的服务器响应时间, 毫秒
- Max (ms): 请求的最大服务器响应时间, 毫秒
- Average size (bytes): 平均单个请求的大小, 单位字节
- Current RPS: 每秒钟请求的个数
- 点击Edit可以编辑请求用户数
- 点击STOP按钮可以停止测试
- 点击New test可以重新开始测试

3.2.2 Charts图表展示
三个图标分别是:
- Total Requests per Second: 每秒发送请求数
- Response Times(ms): 平均响应时间
- Number of Users: 虚拟用户数

3.2.3 失败、异常、下载数据
