JMeter - 使用来自其他 BeanShell Pre/Post-Processors 的变量?

JMeter - Using Variables from other BeanShell Pre/Post-Processors?

有没有办法将变量从一个 BeanShell Pre/Post-Processor 引用到另一个 BeanShell 处理器 (它们在同一个线程组中)

如果我在 HTTP 请求下的 BeanShell 预处理器中创建了一个字符串变量,那么我可以在同一 HTTP 请求下的 BeanShell 后处理器中使用或引用该变量吗?

我尝试通过以下方式访问此变量:

+ HTTP 请求
+ BeanShell 预处理器:

String preProcessor1_MYID = "Value_1";

+ BeanShell 后处理器:

String postProcessor1_MYID = "Value_2";
//Try #1:
String tmp_preProcessor1_MYID = preProcessor1_MYID;
//Try #2:
String tmp_preProcessor1_MYID = ${preProcessor1_MYID};
//Try #3:
String tmp_preProcessor1_MYID = ${__V(preProcessor1_MYID)};
//Try #4:
String tmp_preProcessor1_MYID = vars.get("preProcessor1_MYID");


是否有像 ${__V()} 或 vars.get() 这样的不同函数,我错过了我应该使用的函数?我还想知道我是否需要一个用户定义的变量对象以便在 BeanShell Pre/PostProcessors 之间共享这个变量,但我不确定。我还阅读了有关 ${__BeanShell()} 函数的信息,但我认为这也不是我想要的……有什么想法吗?我认为这应该是可能的,但希望我不需要添加任何东西,例如用户定义的 Vars 对象。

如有任何想法或建议,我们将不胜感激!

提前致谢,
马特

如果以后需要在其他元素中使用该值,

将其存储在变量中

vars.put("myvar", "value");

现在您可以使用

访问它

${myvar}

或在 beanshell 中

vars.get("myvar").

  • 您还可以选择用户定义的变量、属性(在线程组之间共享)。
  • 检查这个 - 这也是另一种选择。 - jMeter - Beanshell bsh.shared hashmap data in init file?