Jmeter:Jmeter 中的地图
Jmeter: Maps in Jmeter
--LoopController
|
|--Http Sampler One
|
|--Http Sampler Two
--Http Sampler Three
Http Sampler One 给出 json 响应 {"data": ["foo", "bar"]}.
Http Sampler Two 给出 json 响应 {"data": "jeba"}.
我想映射 jeba -> ["foo", "bar"]
我想要一个映射变量 myMap 其中如果我传递密钥 "jeba" 我得到 ["foo ", "酒吧"].
我想为循环控制器中的每个请求创建这个映射,我想在 Http 采样器三中使用这个映射变量。
可能的选项之一:
添加 JSR223 PostProcessor 作为请求 1 的子项,并将以下代码放入“脚本”区域:
vars.putObject('data1', new groovy.json.JsonSlurper().parse(prev.getResponseData()).data)
将 JSR223 PostProcessor 添加为请求 2 的子项,并将以下代码放入“脚本”区域:
def data2 = new groovy.json.JsonSlurper().parse(prev.getResponseData()).data
def myMap = [:]
myMap.put(data2, vars.get('data1'))
vars.putObject('myMap', myMap)
完成后,您将能够使用 __groovy() function 按键读取值:
${__groovy(vars.getObject('myMap')['jeba'],)}
演示:
更多信息:
--LoopController
|
|--Http Sampler One
|
|--Http Sampler Two
--Http Sampler Three
Http Sampler One 给出 json 响应 {"data": ["foo", "bar"]}.
Http Sampler Two 给出 json 响应 {"data": "jeba"}.
我想映射 jeba -> ["foo", "bar"]
我想要一个映射变量 myMap 其中如果我传递密钥 "jeba" 我得到 ["foo ", "酒吧"].
我想为循环控制器中的每个请求创建这个映射,我想在 Http 采样器三中使用这个映射变量。
可能的选项之一:
添加 JSR223 PostProcessor 作为请求 1 的子项,并将以下代码放入“脚本”区域:
vars.putObject('data1', new groovy.json.JsonSlurper().parse(prev.getResponseData()).data)
将 JSR223 PostProcessor 添加为请求 2 的子项,并将以下代码放入“脚本”区域:
def data2 = new groovy.json.JsonSlurper().parse(prev.getResponseData()).data def myMap = [:] myMap.put(data2, vars.get('data1')) vars.putObject('myMap', myMap)
完成后,您将能够使用 __groovy() function 按键读取值:
${__groovy(vars.getObject('myMap')['jeba'],)}
演示:
更多信息: