尝试模拟允许具有2个可能有效负载但响应相同的请求的APIendpoint:
{
"key1": "value1"
}
{
"key2": "value2"
}
根据请求模板留档,我看到有一个选项可以为matchesJsonPath
定义一些正则表达式。但是,我无法弄清楚如何提供允许key1
或key2
的配置。
这是我尝试过的,但似乎不起作用:
{
// ... other configs
"request": {
"bodyPatterns": [
{
"matchesJsonPath": "$.(key1|key2)"
}
]
}
}
是否可以提供1个支持两种有效负载的定义,或者我必须创建2个存根?
注意:我使用的是独立的Wiremck Docker映像,因此使用Java进行更复杂处理的选项有限。
您的JsonPath匹配器格式不正确。您需要应用过滤器/脚本(由?()
表示)。有关JsonPath匹配器如何工作的更多信息,请参阅此处。
以下是格式正确的JsonPath匹配器的样子:
{
"matchesJsonPath": "$[?(@.key1 || @.key2)]"
}
如果您需要key1
和key2
具有特定值,则如下所示:
{
"matchesJsonPath": "$[?(@.key1 == 'value1' || @.key2 == 'value2')]"
}