如何在Artillery.io中配置带动态用户ID的API负载测试?
Artillery.io 动态ID参数负载测试配置方案
1. 准备用户ID CSV文件
先创建CSV文件(比如user_ids.csv),列名需和后续配置的变量名对应,格式示例:
user_id AXXXX1 AXXXX2 AXXXX3 ... AXXXXN
2. 编写Artillery YAML配置
在测试配置文件(如load-test.yml)中,通过payload模块加载CSV数据,并用模板变量替换URL中的ID参数。完整配置如下:
config: target: "https://<<thisishowtheurllookslike" # 仅保留基础域名 payload: path: "./user_ids.csv" # CSV文件路径,支持相对/绝对路径 fields: - "user_id" # 与CSV列名保持一致 order: "sequence" # 按顺序读取ID,可选random随机选取 skipHeader: true # 跳过CSV表头行 phases: - duration: 60 # 测试持续时长(秒) arrivalRate: 5 # 每秒发起请求数 scenarios: - name: "动态用户ID请求" flow: - get: url: "/username?id={{user_id}}" # 用模板变量替换id参数 headers: Content-Type: "application/json" # 可按需添加断言、响应验证等配置
关键细节说明
payload配置:order控制ID选取逻辑,sequence适合遍历所有用户ID,random更贴近真实随机用户场景;skipHeader必须设为true,避免将表头作为有效ID读取。- URL模板:Artillery支持
{{变量名}}语法直接引用payload字段,无需额外处理即可实现动态参数替换。如果不想拆分基础域名和路径,也可直接写完整URL:
这种情况下url: "https://<<thisishowtheurllookslike/username?id={{user_id}}"config.target可省略。
启动测试
在终端执行以下命令运行负载测试:
artillery run load-test.yml
内容的提问来源于stack exchange,提问作者Satya Lochun
相关产品推荐
相关产品推荐

