JMeter加入字符串列表

时间:2017-06-01 20:52:22

标签: jmeter

我在jmeter中创建一个测试运行,在某一点上使用json提取器从json中提取字符串列表,并且应该使用逗号分隔符连接此列表,以便在其他请求中重用为参数。

问题是我无法找到一种方法将所有字符串连接起来,因为JMeter只为每个用户(线程)返回一个项目。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

在请求之后添加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的List。如果你需要将它转换为由逗号分隔的所有值的字符串做类似的事情(当提取所有值时):

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 Scripts开头声明这些导入:

import org.apache.jmeter.util.JMeterUtils;
import java.util.ArrayList;
import java.util.List;