Locust:如何指定时间段内的请求量及参数化用户数?
Locust参数化用户数的实现方式
下面是几种实用的Locust用户数参数化方法,适配你提到的constant_throughput负载场景:
1. 命令行参数指定(最常用)
直接在启动Locust时通过命令行参数设置用户数,无需修改代码。针对你的需求(5000用户),启动命令如下:
locust -f your_test_file.py --users 5000 --spawn-rate 100
--users:指定最终要模拟的总用户数(对应官方示例的5000)--spawn-rate:每秒启动的用户数,避免瞬间创建大量用户压垮目标系统,可根据系统承受能力调整
代码中只需保持constant_throughput的配置即可:
from locust import User, task, constant_throughput class MyUser(User): @task def my_task(self): # 替换为你的目标端点请求逻辑 self.client.get("/your-target-endpoint") wait_time = constant_throughput(0.1)
2. 通过环境变量动态读取
如果需要在脚本或CI/CD流程中灵活调整用户数,可以在代码中读取环境变量:
import os from locust import User, task, constant_throughput class MyUser(User): @task def my_task(self): self.client.get("/your-target-endpoint") wait_time = constant_throughput(0.1) # 从环境变量获取用户数,未设置时用默认值5000 target_users = int(os.getenv("LOCUST_TOTAL_USERS", 5000))
启动时通过环境变量传递用户数:
LOCUST_TOTAL_USERS=5000 locust -f your_test_file.py
3. Web UI可视化配置
启动Locust后,访问默认的http://localhost:8089页面:
- 在Number of total users to simulate输入框填写5000
- 在Spawn rate输入每秒启动的用户数
- 点击Start swarming开始测试
这种方式适合临时调整负载,无需修改代码或命令行。
注意事项
- 确保用户数与
constant_throughput的乘积符合预期:5000 * 0.1 = 500次任务迭代/秒,和官方示例匹配 - 避免设置过高的
spawn-rate,防止瞬间流量冲击导致目标系统或Locust自身崩溃
内容的提问来源于stack exchange,提问作者jbuddy_13
相关产品推荐
相关产品推荐

