如何配置JMeter:每15分钟刷新令牌请求,另一个请求循环执行
JMeter配置方案:令牌自动刷新+循环业务请求
核心逻辑
通过双线程组分工实现:一个线程组定时获取/刷新令牌,另一个线程组循环执行业务请求,利用JMeter全局属性共享令牌值。
具体配置步骤
1. 配置「令牌获取线程组」
负责每15分钟刷新一次令牌,仅需1个线程:
- 线程数:
1 - 循环次数:
永远(或根据测试总时长设置足够大的数值) - 添加「Constant Timer」:设置延迟时间为
900000毫秒(对应15分钟) - 添加GET请求:填写令牌接口的URL、请求参数/头信息
- 添加提取器(根据响应格式选择):
- 若响应是JSON,用「JSON Extractor」:引用名称设为
access_token,JSON Path表达式写$.token(根据实际响应结构调整) - 若响应是文本,用「正则表达式提取器」:引用名称
access_token,正则表达式匹配令牌格式(比如"token":"(.*?)")
- 若响应是JSON,用「JSON Extractor」:引用名称设为
- 添加「JSR223 PostProcessor」,将提取到的令牌存入全局属性:
props.setProperty("global_token", vars.get("access_token"))
2. 配置「业务请求线程组」
负责循环执行n次业务请求,使用全局令牌:
- 线程数:根据并发需求设置(单线程循环n次则设为1)
- 循环次数:
n(直接填写目标次数,比如200) - 添加HTTP业务请求:在请求头/参数中引用全局令牌,示例:
- 请求头添加
Authorization: Bearer ${__P(global_token,)}(__P()函数用于读取全局属性)
- 请求头添加
- 可选:添加「响应断言」,验证请求是否成功(比如检查响应码为200)
3. 调整启动顺序
确保令牌先获取完成,再启动业务请求:
- 右键业务线程组 → 添加「逻辑控制器」→「Test Action」
- 给Test Action添加「Constant Timer」,设置延迟
5000毫秒(5秒,保证首次令牌请求完成)
关键注意事项
- 令牌线程组的定时器必须精准设为900000毫秒,避免令牌过期
- 优先用JSR223元件替代BeanShell,性能更优
- 测试前单独运行令牌线程组,验证令牌提取和全局变量存储是否正确
内容的提问来源于stack exchange,提问作者Nikhil
相关产品推荐
相关产品推荐

