You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将WebDriver Sampler获取的Token设置为全局变量?

如何将WebDriver Sampler获取的Token设置为全局变量

嘿,我来帮你搞定这个全局Token的问题!你现在的代码已经能成功从sessionStorage里取出Token了,但vars.put()存储的是线程局部变量——意思就是这个变量只能在当前线程里用,其他线程的HTTP Header Manager根本拿不到它。要让所有线程都能访问,咱们得改用JMeter的props对象,它代表的是JMeter的全局属性,所有线程共享。

修改后的代码

把你的代码改成下面这样就行:

var foo = WDS.browser.executeScript("return window.sessionStorage.getItem('ngStorage-jwtToken');");
var obj = JSON.parse(foo);
// 用props存储为全局可访问的属性
props.put("auth", obj.oauth_token);
WDS.log.info("全局Token已设置完成:" + props.get('auth'));

在HTTP Header Manager中引用全局Token

不管是哪个线程组里的HTTP Header Manager,都可以通过__P()函数来读取这个全局Token。比如你要在请求头里加Authorization字段,就这么填:

  • 头名称:Authorization
  • 头值:Bearer ${__P(auth)}

关键注意点

  • 一定要保证执行WebDriver Sampler的线程先于其他需要用Token的线程运行,不然全局属性还没设置,其他请求就会拿不到值。你可以通过调整线程组的执行顺序,或者用Test Plan的逻辑控制器来控制执行流程。
  • 如果你的Token有过期时间,记得在合适的时机重新执行这段代码更新全局属性,避免请求失败。

内容的提问来源于stack exchange,提问作者Cod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:00:03