0
我在jmeter中创建一个测试运行,在特定点从json提取器提取字符串列表与json提取器,并应该加入此列表与逗号分隔符重用作为其他请求中的参数。JMeter加入字符串列表
问题是我无法找到一种方法来加入字符串,因为JMeter只为每个用户(线程)返回一个项目。
有没有办法做到这一点?
我在jmeter中创建一个测试运行,在特定点从json提取器提取字符串列表与json提取器,并应该加入此列表与逗号分隔符重用作为其他请求中的参数。JMeter加入字符串列表
问题是我无法找到一种方法来加入字符串,因为JMeter只为每个用户(线程)返回一个项目。
有没有办法做到这一点?
添加BeanShell的后处理器请求后,你在哪里提取与提取数据,并把:
try {
List<String> perUserSubmissionTickets = (List<String>) JMeterUtils.getJMeterProperties()
.get("jsonExtractorResultList");
perUserSubmissionTickets.add(vars.get("singleJsonExtraction"));
JMeterUtils.getJMeterProperties().put("jsonExtractorResultList");
} catch (NullPointerException e) {
List<String> perUserSubmissionTickets = new ArrayList<>();
perUserSubmissionTickets.add(vars.get("singleJsonExtraction"));
JMeterUtils.getJMeterProperties().put("jsonExtractorResultList");
}
有了这个,你已经创建了一个包含所有提取vaules列表。如果你需要将其转换为以逗号separed所有值的字符串做这样的事情(在提取的所有值):
String commaSeparated;
for(String s : (List<String>) JMeterUtils.getJMeterProperties()
.get("jsonExtractorResultList"))
commaSeparated = commaSeparated + s + ",";
vars.put("commaSeparatedValues", commaSeparated.substring(0,str.length()-1));
在这之后,你应该有这样的字符串:data1,data2,dataN
记得要声明这些进口在BeanShell的脚本的begining:
import org.apache.jmeter.util.JMeterUtils;
import java.util.ArrayList;
import java.util.List;
我也说不定misundestood你的问题一点点,但你可以作出适当修改,并从一个响应添加字符串列表列出保存的属性格式(如我的答案)。对不起,从我的头上做这个... –