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 采样器三中使用这个映射变量。

可能的选项之一:

  1. 添加 JSR223 PostProcessor 作为请求 1 的子项,并将以下代码放入“脚本”区域:

    vars.putObject('data1', new groovy.json.JsonSlurper().parse(prev.getResponseData()).data)
    
  2. 将 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)
    
  3. 完成后,您将能够使用 __groovy() function 按键读取值:

    ${__groovy(vars.getObject('myMap')['jeba'],)}
    

演示:

更多信息: