Jmeter 如何从BeanShell后处理器中逐个拾取数组值

Jmeter 如何从BeanShell后处理器中逐个拾取数组值,jmeter,jmeter-4.0,Jmeter,Jmeter 4.0,如何从BeanShell后处理器中逐个拾取数组值 我有如下代码 //Here split those ',' separated values // getting this values like List=1072,1073,1074, ...... String HID = vars.get("List"); String[] words = HID.split(","); for (int i = 0; i < words.length; i++) { log.info(

如何从BeanShell后处理器中逐个拾取数组值 我有如下代码

//Here split those ',' separated values
// getting this values like List=1072,1073,1074, ......

String HID = vars.get("List"); String[] words = HID.split(","); 
for (int i = 0; i < words.length; i++) 
{
  log.info(words[i]);
  if (i == 0) 
  {
      log.info("First value is: " + words[0]);
  }
}
vars.put("H_ID", words[0]);
//这里拆分那些“,”分隔的值
//获取此值,如List=107210731074。。。。。。
字符串HID=vars.get(“列表”);String[]words=HID.split(“,”);
for(int i=0;i
我想一个接一个地选择所有值。为此,我使用了
vars.put(“Hit_ID”,单词[i])但不起作用。它只对
单词[0]
单词[2]
起作用 但我想要所有的价值观。
有人能帮我一个接一个地选择所有值,并在下一个请求中替换吗

您只使用第一项,因此您的
HD\u ID
将始终包含第一项值,即
1072
。如果需要修改代码所需的所有值,如:

String HID = vars.get("List"); String[] words = HID.split(",");
for (int i = 0; i < words.length; i++) {
    log.info(words[i]);
    if (i == 0) {
        log.info("First value is: " + words[0]);
    }
    vars.put("H_ID_" + i, words[i]);
}
对于所有脚本任务,更好的选择是使用和语言。Groovy的等价物是

vars.get('List').split(',').eachWithIndex { String number, int index ->
    vars.put("HD_ID_" + index, number)
}

Groovy是一种更“高级”的语言,它支持所有现代Java特性,并在JavaSDK之上提供了一些功能。此外,Groovy的性能比Beanshell好得多。有关更多详细信息,请参阅

如何在下一个请求中使用“HD_ID_”值。我尝试使用HD_ID_n,但不起作用。你能给我建议一下吗?正确的语法是
${H_ID_1}
${H_ID_2}
,等等。正确的语法是${H_ID_1},${H_ID_2},这里我想要所有的值一个接一个,就像第一次迭代${H_ID_1}和第二次迭代${H_ID_2}…就像我想要用“输入变量前缀”来选择值一样如articleWorking中所述的
H_ID
。谢谢你,德米特里
vars.get('List').split(',').eachWithIndex { String number, int index ->
    vars.put("HD_ID_" + index, number)
}