gpt4 book ai didi

java - JMeter - 如何将多行响应数据传递给 ForEach Controller 请求

转载 作者:行者123 更新时间:2023-12-01 22:40:54 25 4
gpt4 key购买 nike

面临从一个请求响应复制多条消息并传递给 jmeter 中的 forEachContoller 请求的问题。我尝试使用 RegEx 处理响应数据并传递给 forEachContr。但它只传递一个值,而不传递多个值

Jmeter_Domian
Google
Yahoo
Facebook

我想将此响应数据传递给下一个 forEachController 请求。

${Jmeter_Domian} 是我的 regEx 变量,${Jmeter_Domian1} 是我的 forEachController 输出变量。

{
"request": [
{
"Domain": "${Jmeter_Domian1}"
},
{
"Domain": "${Jmeter_Domian1}"
},
{
"Domain": "${Jmeter_Domian1}"
}
]

我已经执行了上述场景,但它正在通过

{
"request": [
{
"Domain": "Google"
},
{
"Domain": "Google"
},
{
"Domain": "Google"
}
]

但预期的响应是

{
"request": [
{
"Domain": "Google"
},
{
"Domain": "Yahoo"
},
{
"Domain": "Facebook"
}
]

任何人都可以帮我解决这个问题吗?谢谢!

最佳答案

您不能使用 ForEach Controller 进行变量串联,它只能用于逐一迭代值。

如果你想创建一个JSON从 3 JMeter Variables您需要使用任何 JSR223 Test Element 执行一些脚本编写和 Groovy语言,示例代码:

def data = new ArrayList()

1.upto(vars.get('Jmeter_Domian_matchNr') as int, {
def entry = new groovy.json.internal.LazyMap()
entry.put('Domain', vars.get("Jmeter_Domian_" + it))
data.add(entry)
})

def builder = new groovy.json.JsonBuilder()
builder(request: data.collect { it })

vars.put('myRequest', builder.toPrettyString())

log.info('Generated request: ')
log.info(vars.get('myRequest'))

演示:

enter image description here

如果需要,您将能够以 ${myRequest} 的形式访问生成的值。

关于java - JMeter - 如何将多行响应数据传递给 ForEach Controller 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58497392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com