Jmeter:在数组变量中保存循环控制器内采样器的响应
Jmeter: Saving response of a sampler inside a loop controller in a array variable
--Loop_controller
|--Http_Request_Sampler_One
--Http_Request_Sampler_Two
我有一个带有响应主体的采样器 (Http_Request_Sampler_One) {"id": "12345"}.
此采样器位于 循环控制器 中,例如 运行 3 次。
我想要一个名为 Ids 的 字符串数组变量 来保存所有 ID。
形式为 Ids = ["12345", "23421", "43546"]
一旦循环控制器结束,我想在 Http_Request_Sampler_Two 中使用这个 Ids 变量。
注意:我可以使用 JSON-extractor 从响应正文中提取 id,我更想知道一种推送它的方法在每次迭代结束后的数组中。
将 JSR223 PostProcessor 添加为 Http_Request_Sampler_One
的 child
将以下代码放入“脚本”区域
if (vars.get('__jm__Loop Controller__idx') == '0') {
def Ids = []
Ids.add(new groovy.json.JsonSlurper().parse(prev.getResponseData()).id)
vars.put('Ids', new groovy.json.JsonBuilder(Ids).toPrettyString())
}
else {
def Ids = new groovy.json.JsonSlurper().parseText(vars.get('Ids'))
Ids.add(new groovy.json.JsonSlurper().parse(prev.getResponseData()).id)
vars.put('Ids', new groovy.json.JsonBuilder(Ids).toString())
}
就是这样,一旦您的循环控制器完成,您将从 Http_Request_Sampler_One
中提取的所有“ids”作为 ${Ids}
JMeter 变量。
更多信息:
--Loop_controller
|--Http_Request_Sampler_One
--Http_Request_Sampler_Two
我有一个带有响应主体的采样器 (Http_Request_Sampler_One) {"id": "12345"}.
此采样器位于 循环控制器 中,例如 运行 3 次。
我想要一个名为 Ids 的 字符串数组变量 来保存所有 ID。 形式为 Ids = ["12345", "23421", "43546"]
一旦循环控制器结束,我想在 Http_Request_Sampler_Two 中使用这个 Ids 变量。
注意:我可以使用 JSON-extractor 从响应正文中提取 id,我更想知道一种推送它的方法在每次迭代结束后的数组中。
将 JSR223 PostProcessor 添加为
的 childHttp_Request_Sampler_One
将以下代码放入“脚本”区域
if (vars.get('__jm__Loop Controller__idx') == '0') { def Ids = [] Ids.add(new groovy.json.JsonSlurper().parse(prev.getResponseData()).id) vars.put('Ids', new groovy.json.JsonBuilder(Ids).toPrettyString()) } else { def Ids = new groovy.json.JsonSlurper().parseText(vars.get('Ids')) Ids.add(new groovy.json.JsonSlurper().parse(prev.getResponseData()).id) vars.put('Ids', new groovy.json.JsonBuilder(Ids).toString()) }
就是这样,一旦您的循环控制器完成,您将从
Http_Request_Sampler_One
中提取的所有“ids”作为${Ids}
JMeter 变量。
更多信息: