Jmeter 如何发布从后处理器检索到的值的确切数量?

Jmeter 如何发布从后处理器检索到的值的确切数量?,jmeter,Jmeter,我进入了一个页面,一些客户列出了我的名字。我正在通过正则表达式提取器后处理器检索所有客户ID 现在,在随后的请求中,我需要传递这些ID。它正在通过以下格式作为“正文数据”传递: [19327,15947,14421,18813,20942] 假设检索到5个客户ID,那么我可以使用每个记录的变量,如下所示: 传递变量:[${CustomerId_1},${CustomerId_2},${CustomerId_3},${CustomerId_5}] 过帐变量值:[19327159471442118

我进入了一个页面,一些客户列出了我的名字。我正在通过正则表达式提取器后处理器检索所有客户ID

现在,在随后的请求中,我需要传递这些ID。它正在通过以下格式作为“正文数据”传递:

[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());