TestPlan线程组HTTP请求1 - >正则表达式提取器 - 返回10个结果 - URL - 单线程 ForEach Controller - 使用提取器中的变量 - 成功循环上面的结果HTTP Request2 - >正则表达式提取器 - 返回10个结果 以上是1线程
我希望在不同的线程下使用ForEach Controller - 运行多个therads并使用从1个线程HTTP Sampler中提取的URL - 我试图使用这两种方法 https://www.blazemeter.com/blog/knit-one-pearl-two-how-use-variables-different-thread-groups How do I pass a variable from one Thread Group to another in JMeter 但不知怎的,现在管理它的工作 请帮忙
答案 0 :(得分:0)
ForEach Controller不能与JMeter属性一起使用,它只能用于JMeter变量,所以如果你想在不同的Thread Groups之间传递它们,你需要做一些脚本。
在正则表达式提取器后添加JSR223 PostProcessor并将以下代码放入“脚本”区域
vars.entrySet().each { var ->
if (var.getKey().startsWith('foo')) {
props.put(var.getKey(), var.getValue())
}
}
将foo
替换为正则表达式提取器中的Reference Name
。上面的代码会将名称以foo
开头的所有变量转换为相关的JMeter属性
将以下代码放入“脚本”区域
props.entrySet().each {prop ->
if (prop.getKey().startsWith('foo')){
vars.put(prop.getKey(),prop.getValue())
}
}
上面的代码将JMeter属性转换为JMeter变量,这样您就可以在第二个Thread Group的ForEach Controller中使用它们。再次,将此foo
替换为您自己变量的引用名称。
有关在JMeter测试中使用Groovy脚本的更多信息,请参阅Apache Groovy - Why and How You Should Use It文章