根据请求的正文进行映射使用两个匹配项

时间:2019-03-01 15:59:03

标签: wiremock

我有带有身体的http请求:

 endpoint = http://127.0.0.1:54400/json
reqBody:
{                                                                                                                                                                                                                                            
    "action": "Handler:GET_DICTIONARY",
    "locale": "ro",
    "data": {"dictionary_type":"MTS"}
}

我需要得到回复。 这是我的Wiremock映射:

{
  "request": {
    "method": "POST",
    "bodyPatterns": [
      {
        "contains": "Handler:GET_DICTIONARY"
      }
    ]
  },
  "response": {
    "headers": {
      "Content-Type": "application/json"
    },
    "status": 200,
    "fixedDelayMilliseconds": 3000,
    "bodyFileName": "t2a/micb/webclient/_mts_response.json"
  }
}

但是我有很多另一个请求,该请求的内容带有正文:

"Handler:GET_DICTIONARY"

因此,我还需要通过

进行映射
"dictionary_type":"MTS"

因为文本

"dictionary_type":"MTS" "Handler:GET_DICTIONARY"创建唯一请求。

那么如何通过请求的主体映射使用这两个匹配项?

1 个答案:

答案 0 :(得分:0)

除了您的“包含”项外,我建议添加“ matchesJsonPath”

"bodyPatterns": [
        {
            "matchesJsonPath": "$.data[?(@.dictionary_type == 'MTS')]"
        }
]

这将确保所有具有dictionary_type = MTS的请求都将映射到该响应。