JMeter 在 non-gui 模式下执行时不传递令牌

JMeter does not pass token when executed in non-gui mode

我有两个线程组。第一个生成传递给第二个线程组的令牌。我在第一组中使用 json 提取器和 beanshell 断言来使令牌对第二个线程可见。它在 gui 模式下完美运行,但在 non-gui 模式下,令牌始终正确生成,但未传递给第二个线程,因此失败,returns 状态 401.

您知道为什么会发生这种情况以及解决方案吗?

编辑: 我有一个全局用户定义的变量元素。我有一个名为 token_type 的变量,其值为 global_token。 然后在第二个线程中,我有一个 http header 管理器,其中我有一个名为 Authorization 的 header,其值为 Bearer ${__V(${token_type})}

  1. Since JMeter 3.1 it's recommended to use JSR223 test elements and Groovy language for scripting 所以考虑迁移
  2. 除非你有一个非常具体的用例,否则最好将采样器移动到一个线程组中,这样你就不必在线程组之间传递令牌,而且每个线程(虚拟user) 将拥有自己的令牌 JMeter Variables are local to the threads
  3. 您可能会发现 Inter-Thread Communication plugin 更易于使用,在这种情况下,第二个线程组将“等待”直到令牌可用