我有一个带有 2 个线程组的 JMeter 测试 - 第一个是单个线程(创建一些库存),第二个是多个线程(购买所有库存)。我使用 BeanShell Assertions 和 XPath Extractor 来解析返回值(XML)并存储变量(例如要购买的商品的 ID)。
但是,在第一个线程组中创建的值,无论是提取到标准 ${jmeter}
类型变量,还是 ${__BeanShell(vars.get("jmeter"))}
类型变量,在第二个线程组中都不可用。无论如何要在第一个线程组中创建一个变量并使其对第二个线程组可见?
原文由 Todd R 发布,翻译遵循 CC BY-SA 4.0 许可协议
我无法使用变量来做到这一点(因为它们对于单个线程是本地的)。但是,我能够用属性解决这个问题!
同样,我的第一个 ThreadGroup 完成所有设置,我需要从该工作中获得一些信息以供第二个 ThreadGroup 中的每个线程使用。我在第一个 ThreadGroup 中有一个 BeanShell 断言,其中包含以下内容:
${storeid} 是用 XPath Extractor 提取的。 BeanShell 断言做其他事情,比如检查 storeid 是否从上一个调用返回,等等。
无论如何,在第二个 ThreadGroup 中,我可以使用采样器中“storeid”属性的值:
奇迹般有效!