提问者:小点点

Wiremck请求模板JSONPayload与多个允许的键,但相同的响应


尝试模拟允许具有2个可能有效负载但响应相同的请求的APIendpoint:

{
  "key1": "value1"
}
{
  "key2": "value2"
}

根据请求模板留档,我看到有一个选项可以为matchesJsonPath定义一些正则表达式。但是,我无法弄清楚如何提供允许key1key2的配置。

这是我尝试过的,但似乎不起作用:

{
  // ... other configs
  "request": {
    "bodyPatterns": [
      {
        "matchesJsonPath": "$.(key1|key2)"
      }
    ]
  }
}

是否可以提供1个支持两种有效负载的定义,或者我必须创建2个存根?

注意:我使用的是独立的Wiremck Docker映像,因此使用Java进行更复杂处理的选项有限。


共1个答案

匿名用户

您的JsonPath匹配器格式不正确。您需要应用过滤器/脚本(由?() 表示)。有关JsonPath匹配器如何工作的更多信息,请参阅此处。

以下是格式正确的JsonPath匹配器的样子:

{
  "matchesJsonPath": "$[?(@.key1 || @.key2)]"
}

如果您需要key1key2具有特定值,则如下所示:

{
  "matchesJsonPath": "$[?(@.key1 == 'value1' || @.key2 == 'value2')]"
}