我有一个包含多个线程组的JMeter测试计划,在第一个线程组中,我使用JSR223 Sampler从www.example.com文件加载属性conf.properties,并将它们设置为JMeter属性。而其他线程正在访问这些属性。这种方法在GUI模式下工作得很好,但是在非GUI模式下运行测试计划时我遇到了问题。我使用的是JMeter 5.5版
下面是我在JSR223 Sampler中用作脚本的代码片段,
import java.io.FileInputStream;
import java.util.Properties;
String propertyFilePath = vars.get("F_PATH");
try {
Properties properties = new Properties();
properties.load(new FileInputStream(propertyFilePath));
for (String propertyName : properties.stringPropertyNames()) {
String propertyValue = properties.getProperty(propertyName);
props.put(propertyName, propertyValue);
}
} catch (Exception ex) {
log.error("Error occurred while reading properties: " + ex.getMessage());
throw ex;
}
字符串
因此,在每个线程组中,我尝试使用一个If控制器来计算一个条件,该条件取决于JSR223采样器设置的属性。下面是条件的一个例子:
第一个月
问题是在非GUI模式下,条件似乎无法正确评估。但是,在GUI模式下,它按预期工作。
本人已验证以下内容:
1.属性文件已正确加载,并且属性已设置为JMeter属性。
1.这些属性可以在同一线程组(第一个线程组)中访问。
1.我将属性文件的路径设置为JMeter中的用户定义变量。
我想知道是否有任何已知的限制或特定的配置需要访问的属性设置的JSR223采样器在一个线程组由其他线程组在非GUI模式。如有任何见解或建议,将不胜感激。
1条答案
按热度按时间dw1jzc5e1#
如果没有看到您的测试计划和/或带有debug logging enabled的jmeter.log文件,很难说出任何有意义的东西,最有可能的是它与测试元素的执行顺序有关
我建议完全删除JSR 223 Sampler,并通过
-q
命令行参数传递conf.properties
文件的路径,如:字符串