【发布时间】:2019-02-26 16:02:36
【问题描述】:
我正在使用 Wiremock Standalone 2.21,并在请求中使用匹配的查询参数。当匹配失败时,我希望 Wiremock 不 响应(或者如果可能的话自定义响应)。这可能吗?谢谢!
【问题讨论】:
-
在提供的示例中,您在尝试不使用正则表达式时引用
"Some Regex",规则会触发吗?从一个工作示例开始并进行一些小改动通常是最好的方法。
我正在使用 Wiremock Standalone 2.21,并在请求中使用匹配的查询参数。当匹配失败时,我希望 Wiremock 不 响应(或者如果可能的话自定义响应)。这可能吗?谢谢!
【问题讨论】:
"Some Regex",规则会触发吗?从一个工作示例开始并进行一些小改动通常是最好的方法。
这可以使用 WireMock 中的Stub Priority 来实现。
在下面的例子中有两个规则。一个特定的和一个通用的包罗万象。这两个规则都将匹配您的输入,但通过设置正确的优先级,您可以确保应用程序遵循您想要的匹配顺序。在这种情况下,如果 URL 是 /api/specific-resource,那么将映射第一条规则。如果 url 是 /api/some-other 则适用第二条规则。
具体规则:
{
"priority": 1,
"request": {
"method": "GET",
"url": "/api/specific-resource"
},
"response": {
"status": 200
}
}
一般规则:
{
"priority": 10,
"request": {
"method": "GET",
"urlPattern": "/api/*"
},
"response": {
"status": 200
}
}
【讨论】:
"request": { "method": "POST", "urlPattern":"/test.*", "queryParameters" : { "test" : { "matches" : "<someRegex>" } }