Java 如何在JMeter中正确使用hashmap和属性
我面临下一个问题。 我有一个.txt文件,其中包含以下格式的数据: “名称”=“值” 真实数据作为示例:Java 如何在JMeter中正确使用hashmap和属性,java,jmeter,Java,Jmeter,我面临下一个问题。 我有一个.txt文件,其中包含以下格式的数据: “名称”=“值” 真实数据作为示例: counter=10 scheduleNewPeriodEnd=2100-12-31 scheduleNewPeriodStart=2100-01-01 我举了一个例子,试图用JSR223采样器或Beanshell采样器将其转换为hashmap。然后,我想将一些值从映射到属性,以便在下一个请求线程中使用: String filePath = "/soap/otherDat
counter=10
scheduleNewPeriodEnd=2100-12-31
scheduleNewPeriodStart=2100-01-01
我举了一个例子,试图用JSR223采样器或Beanshell采样器将其转换为hashmap。然后,我想将一些值从映射到属性,以便在下一个请求线程中使用:
String filePath = "/soap/otherData.txt";
String counter = "";
String scheduleNewPeriodEnd = "";
String scheduleNewPeriodStart = "";
String arSchruleTypeId = "";
String sarSchruleTypeId = "";
HashMap map = new HashMap();
String line;
BufferedReader reader = new BufferedReader(new FileReader(filePath));
while ((line = reader.readLine()) != null)
{
String[] parts = line.split("=", 2);
if (parts.length >= 2)
{
String key = parts[0];
String value = parts[1];
map.put(key, value);
} else {
System.out.println("ignoring line: " + line);
}
}
counter = map.get("counter");
scheduleNewPeriodStart = map.get("scheduleNewPeriodStart");
scheduleNewPeriodEnd = map.get("scheduleNewPeriodEnd");
arSchruleTypeId = map.get("arSchruleTypeId");
sarSchruleTypeId = map.get("sarSchruleTypeId");
props.put(schPerStart, scheduleNewPeriodStart);
reader.close();
但它不起作用。当我想看到道具包含什么时-实际结果如下:
log.info("Property schPerStart is: " + props.get("schPerStart"));
INFO o.a.j.u.BeanShellTestElement: Property schPerStart is: ${schStart}
预期结果应为:
INFO o.a.j.u.BeanShellTestElement: Property schPerStart is: 2100-01-01
所以我没有任何名为${schStart}的变量,也不明白为什么JMeter会把它放在props中。
java代码在Idea中进行了测试,将值保存到映射正确。
是我做错了什么吗?问题解决了。
问题是我将代码包装到类中,而他并没有在那个里调用。我刚刚删除了类和方法包装,现在可以正常工作了。问题出在您编写的唯一一行中,只需在您的
schPerStart
周围加上引号,“code”就可以开始正常工作了
props.put("schPerStart", scheduleNewPeriodStart);
还要注意的是,Groovy的性能比Beanshell好得多,有关更多详细信息,请参阅本文
您无需更改任何一行,只需将整个代码片段复制并粘贴到相关的文件中即可(除非您希望使代码更“有趣”)谢谢。这个错误也被修正了。