Jmeter 如何发布从后处理器检索到的值的确切数量?
我进入了一个页面,一些客户列出了我的名字。我正在通过正则表达式提取器后处理器检索所有客户ID 现在,在随后的请求中,我需要传递这些ID。它正在通过以下格式作为“正文数据”传递:Jmeter 如何发布从后处理器检索到的值的确切数量?,jmeter,Jmeter,我进入了一个页面,一些客户列出了我的名字。我正在通过正则表达式提取器后处理器检索所有客户ID 现在,在随后的请求中,我需要传递这些ID。它正在通过以下格式作为“正文数据”传递: [19327,15947,14421,18813,20942] 假设检索到5个客户ID,那么我可以使用每个记录的变量,如下所示: 传递变量:[${CustomerId_1},${CustomerId_2},${CustomerId_3},${CustomerId_5}] 过帐变量值:[19327159471442118
[19327,15947,14421,18813,20942]
假设检索到5个客户ID,那么我可以使用每个记录的变量,如下所示:
传递变量:[${CustomerId_1},${CustomerId_2},${CustomerId_3},${CustomerId_5}]
过帐变量值:[1932715947144211881320942]
但是,假设只检索了3个客户Id,如果我像上面那样传递变量,那么采样器将失败,因为目前它只检索了3个客户Id记录
传递变量:[${CustomerId_1},${CustomerId_2},${CustomerId_3},${CustomerId_5}]
发布变量值:[193271594714421,${CustomerId\u 4},${CustomerId\u 5}]
如何处理这个问题,plz。一定要帮忙
提前感谢
refName\u matchNr
将返回匹配数。因此,在您的情况下,CustomerId\u matchNr
将提供您的CustomerId数量
使用beanshell预处理器运行循环,构造BodyData字符串并将其保存到新变量,然后在后续采样器中使用该变量
intcustomers=Integer.parseInt(vars.get(“CustomerId_matchNr”);
StringBuilder requestBuilder=新建StringBuilder();
requestBuilder.append(“[”);
对于(int i=1;i
int customers = Integer.parseInt(vars.get("CustomerId_matchNr"));
StringBuilder requestBuilder = new StringBuilder();
requestBuilder.append("[");
for (int i = 1; i <= customers; i++) {
requestBuilder.append(vars.get("CustomerId_" + i));
if (i != customers) {
requestBuilder.append(",");
}
}
requestBuilder.append("]");
sampler.getArguments().getArgument(0).setValue(requestBuilder.toString());