如何在JMeter中将变量从一个线程组传递到另一个线程组

发布于 2021-01-31 22:40:57

我有一个带有2个线程组的JMeter测试-
第一个是一个线程(创建一些库存),第二个有多个线程(购买所有库存)。我使用BeanShell断言和XPath提取器来解析返回的值(即XML)并存储变量(例如要购买的商品的ID)。

但是,在第一个线程组中创建的值(无论是提取到标准${jmeter}类型变量中还是${__BeanShell(vars.get("jmeter"))}类型vars中)在第二个线程组中均不可用。无论如何,在第一个线程组中创建一个变量并使第二个线程组可见?

关注者
0
被浏览
375
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    我无法使用变量执行此操作(因为这些变量在各个线程中都是局部的)。但是,我能够通过属性解决此问题!

    同样,我的第一个ThreadGroup完成了所有的设置,我需要该工作中的一些信息才能供第二个ThreadGroup中的每个线程使用。我在第一个ThreadGroup中有一个BeanShell断言,其内容如下:

    ${__setProperty(storeid, ${storeid})};
    

    $ {storeid}是使用XPath提取器提取的。BeanShell断言还执行其他操作,例如检查是否从上一次调用返回了storeid等。

    无论如何,在第二个ThreadGroup中,我可以将Samplers中“ storeid”属性的值与以下内容一起使用:

    ${__property(storeid)}
    

    奇迹般有效!



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看