好吧,这是一种方法;按照这些步骤操作,它会起作用,稍后您可以根据需要进行调整!变量不在线程之间共享(JMeter 可能将此称为功能:))。但属性是!因此,将您的变量设置为如下属性:
1)单击您的测试计划并启用“连续运行线程组”->这使线程组按顺序运行,而不是随机运行。(你可以稍后调整它,但现在让它工作..)
2)例如创建一个名为“setup”的线程组;在该线程组中添加一个 BeanShell 采样器,代码如下:
import org.apache.jmeter.util.JMeterUtils;
JMeterUtils.setProperty("theNameOfYourNewProperty", "theValueOfYourPropery");
所以现在属性已经设置好了!如果您要存储为属性的值是一个变量(例如用户定义的变量或 reqex 变量),您可以执行以下操作:
JMeterUtils.setProperty("theNameOfYourNewProperty", vars.get("theNameOfYourVariable"));
3) 添加一个测试组“实际测试”,例如线程数大于 1;添加一个测试,然后在该测试中添加一个 BeanShell 预处理器,代码如下:
import org.apache.jmeter.util.JMeterUtils;
vars.put("theNameOfYourNewProperty", JMeterUtils.getProperty("theNameOfYourNewProperty"));
因此,现在您已经在该线程中创建了一个名为 theNameOfYourNewProperty 的变量,该变量具有您的系统属性 theNameOfYourNewProperty 的值。在您的测试中,您现在可以像这样访问它:
${theNameOfYourNewProperty}
它适用于每个线程,而不仅仅是第一个线程..