Jmeter 当输出计数变化时,在正则表达式提取器中处理多个值
我在jmeter中使用正则表达式提取器来捕获一个值,我将在下一个http请求中传递该值 捕获的值是request_1、request_2等。 正在捕获的请求总数各不相同。也就是说,正则表达式提取器输出的总计数是不同的 在http请求中,基于计数值_matchnbr,我需要在http请求中为每个迭代循环并分配不同的请求request_1或request_2等。此http请求也将位于单独的线程组中 请帮助创建正确的代码来处理此循环逻辑。我不想使用for循环控制器,因为在非GUI模式下运行时会遇到堆栈溢出错误 请建议如何使正则表达式提取器的输出可用于单独线程组中的http请求Jmeter 当输出计数变化时,在正则表达式提取器中处理多个值,jmeter,Jmeter,我在jmeter中使用正则表达式提取器来捕获一个值,我将在下一个http请求中传递该值 捕获的值是request_1、request_2等。 正在捕获的请求总数各不相同。也就是说,正则表达式提取器输出的总计数是不同的 在http请求中,基于计数值_matchnbr,我需要在http请求中为每个迭代循环并分配不同的请求request_1或request_2等。此http请求也将位于单独的线程组中 请帮助创建正确的代码来处理此循环逻辑。我不想使用for循环控制器,因为在非GUI模式下运行时会遇到堆栈
为了将正则表达式提取器的输出从一个传递到另一个,您需要: 将相关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属性,基本上是
查看这篇文章,了解更多关于上述和其他速记的信息
另外,最好用于迭代正则表达式提取器的结果 请张贴相关代码。