2017-06-01 54 views
0

我在jmeter中创建一个测试运行,在特定点从json提取器提取字符串列表与json提取器,并应该加入此列表与逗号分隔符重用作为其他请求中的参数。JMeter加入字符串列表

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

有没有办法做到这一点?

回答

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列表。如果你需要将其转换为以逗号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; 
+0

我也说不定misundestood你的问题一点点,但你可以作出适当修改,并从一个响应添加字符串列表列出保存的属性格式(如我的答案)。对不起,从我的头上做这个... –