如何在JMeter不同线程组之间传递access token
JMeter跨线程组传递access token操作步骤
JMeter的局部变量仅在所属线程组内生效,跨线程组传值需要借助全局属性实现,操作如下:
- 首先确认你在Thread Group 1中通过JSON Extractor提取的access token已经配置正确,假设你给该局部变量命名为
extracted_token - 在JSON Extractor下方新增JSR223后置处理器,填入以下代码将局部变量转为全局属性:
// 把局部变量extracted_token的值存入全局属性global_token props.put("global_token", vars.get("extracted_token"))
- 打开测试计划(Test Plan)的配置界面,勾选独立运行每个线程组选项,保证Thread Group 1完全执行完毕后再启动Thread Group 2,避免提前取值为空。
- 在Thread Group 2中需要使用token的位置直接调用全局属性即可:
- 直接填在请求参数、请求头位置时使用函数写法:
${__P(global_token,)} - 在BeanShell Preprocessor/JSR223组件的代码中使用时调用:
props.get("global_token")
- 直接填在请求参数、请求头位置时使用函数写法:
注意:如果Thread Group 1设置了多并发,可给全局属性名加上线程号后缀区分不同用户的token,比如
props.put("global_token_" + ctx.getThreadNum(), vars.get("extracted_token")),取值时对应拼接线程号即可,避免多线程覆盖属性值。
内容的提问来源于stack exchange,提问作者Pavithra T
相关产品推荐
相关产品推荐

