我有一个带有 2 个线程组的 JMeter 测试 - 第一个是单个线程(创建一些库存),第二个是多个线程(购买所有库存)。我使用 BeanShell 断言和 XPath 提取器来解析返回的值(即 XML)并存储变量(例如要购买的商品的 id)。
但是,在第一个线程组中创建的值,无论是提取到标准 ${jmeter}
类型变量还是 ${__BeanShell(vars.get("jmeter")) }
类型的变量,在第二个线程组中不可用。无论如何要在第一个线程组中创建一个变量并使其对第二个线程组可见?
最佳答案
我无法对变量执行此操作(因为这些变量是单个线程的本地变量)。但是,我能够通过属性解决这个问题!
同样,我的第一个 ThreadGroup 完成了所有设置,我需要从该工作中获取一些信息,以供第二个 ThreadGroup 中的每个线程使用。我在第一个 ThreadGroup 中有一个 BeanShell 断言,其中包含以下内容:
${__setProperty(storeid, ${storeid})};
${storeid} 是使用 XPath 提取器提取的。 BeanShell 断言做其他事情,比如检查 storeid 是从上一次调用中返回的,等等。
无论如何,在第二个 ThreadGroup 中,我可以使用 Samplers 中“storeid”属性的值:
${__property(storeid)}
像魅力一样工作!
关于java - 如何在 JMeter 中将变量从一个线程组传递到另一个线程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/707832/