Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jmeter 当输出计数变化时,在正则表达式提取器中处理多个值_Jmeter - Fatal编程技术网

Jmeter 当输出计数变化时,在正则表达式提取器中处理多个值

Jmeter 当输出计数变化时,在正则表达式提取器中处理多个值,jmeter,Jmeter,我在jmeter中使用正则表达式提取器来捕获一个值,我将在下一个http请求中传递该值 捕获的值是request_1、request_2等。 正在捕获的请求总数各不相同。也就是说,正则表达式提取器输出的总计数是不同的 在http请求中,基于计数值_matchnbr,我需要在http请求中为每个迭代循环并分配不同的请求request_1或request_2等。此http请求也将位于单独的线程组中 请帮助创建正确的代码来处理此循环逻辑。我不想使用for循环控制器,因为在非GUI模式下运行时会遇到堆栈

我在jmeter中使用正则表达式提取器来捕获一个值,我将在下一个http请求中传递该值

捕获的值是request_1、request_2等。 正在捕获的请求总数各不相同。也就是说,正则表达式提取器输出的总计数是不同的

在http请求中,基于计数值_matchnbr,我需要在http请求中为每个迭代循环并分配不同的请求request_1或request_2等。此http请求也将位于单独的线程组中

请帮助创建正确的代码来处理此循环逻辑。我不想使用for循环控制器,因为在非GUI模式下运行时会遇到堆栈溢出错误

请建议如何使正则表达式提取器的输出可用于单独线程组中的http请求


为了将正则表达式提取器的输出从一个传递到另一个,您需要:

将相关JMeter变量转换为第一个线程组中的JMeter属性。您可以通过将a添加到第一个线程组的末尾并使用以下代码来完成此操作:

SampleResult.setIgnore()
vars.entrySet().each { var ->
    if (var.getKey().startsWith("foo")) {
         props.put('user-' + ctx.getThreadNum() + '-' + var.getKey(), var.getValue())
    }
}
在第二个线程组中,您需要执行相反的操作,将JMeter属性转换回JMeter变量:

SampleResult.setIgnore()
props.entrySet().each { prop ->
    if (prop.getKey().startsWith('user-' + ctx.getThreadNum() + '-foo')) {
        vars.put(prop.getKey().substring(prop.getKey().lastIndexOf('-') + 1), prop.getValue())
    }
}
用原始JMeter变量引用名称替换foo

在上述脚本中:

vars—代表类实例,提供对范围内所有JMeter变量的编程读/写访问 props-JMeter属性,基本上是 查看这篇文章,了解更多关于上述和其他速记的信息


另外,最好用于迭代正则表达式提取器的结果

请张贴相关代码。