如何在注册接口负载测试中获取URL参数与注入CSRF Token
实现方案(基于JMeter)
1. CSV 数据填充配置
- 添加 CSV Data Set Config 元件:
- 填写
Filename:指定存储注册数据的CSV文件路径(例如./reg_data.csv) - 设置
Variable Names:对应CSV列名,如username,email,password(需与CSV列顺序完全一致) - 按需勾选
Recycle on EOF(负载测试建议开启,循环复用数据)和Stop thread on EOF
- 填写
- 在注册页面的HTTP请求参数中,用变量替换静态值:比如用户名输入框对应
${username},邮箱对应${email},密码对应${password}
2. 获取动态test参数
在点击注册按钮的请求后,添加 Regular Expression Extractor 元件:
Apply to:选择Main Sample OnlyField to check:若跳转URL在响应头的Location字段,选Response Headers;若在页面内容里,选Response BodyReference Name:输入test_param(自定义变量名,后续调用用此名称)Regular Expression:填写test=([^&]+)(匹配URL中test参数的取值)Template:设置为$1$(提取正则匹配的第一个分组内容)Match No.:输入1(取第一个匹配结果)
3. 注入随机CSRF Token
在注册请求的响应后,添加 JSON Extractor 元件:
Reference Name:输入csrf_tokenJSON Path Expression:填写$.csrf_token(精准定位响应JSON中的csrf_token字段)Match No.:输入1- 在后续需要携带CSRF Token的请求中,直接使用
${csrf_token}作为参数值即可
测试计划结构示例
- Thread Group
- CSV Data Set Config
- HTTP Request(访问注册页面:
www.example.com/reg) - HTTP Request(提交注册,参数用CSV变量填充)
- Regular Expression Extractor(提取test参数)
- JSON Extractor(提取csrf_token)
- 后续关联请求(使用
${test_param}和${csrf_token})
内容的提问来源于stack exchange,提问作者Vitalii
相关产品推荐
相关产品推荐

