我想了解优先级是如何工作的。更具体地说,将优先级设置为存根的预期输出是什么。这方面的文档有限,可用的文档并没有真正解释输出的样子,所以我无法验证我是否正确实现了它。
这是我当前的代码:
stubFor(post(urlMatching("/user/test\\?(and)\\=(que).*")).atPriority(1)
.willReturn(aResponse()
.withStatus(200)
.withHeader("Content-Type", "text/plain")
.withBody("This stub is testing for Title ")
)
);
System.out.println("About to execute the second stub");
stubFor(post(urlMatching("/user/test\\?(and)\\=(que).*")).atPriority(2)
.willReturn(aResponse()
.withStatus(200)
.withHeader("Content-Type", "text/plain")
.withBody("This stub is testing Author ID ")
)
);
System.out.println("Second stub executed");
Run Code Online (Sandbox Code Playgroud)
我正在从 SOAPUI 发送以下请求:
/user/test?and=query
Run Code Online (Sandbox Code Playgroud)
因此,两个存根都应该被执行,我应该收到两个正确的响应?
我目前只收到一个响应,它来自优先级为 1 的存根。我没有从优先级为 2 的存根收到任何响应/
有人可以帮我吗?
你究竟想达到什么目的?您通常有 Wiremock 配置,它们具有不同的请求参数或重叠。在您的情况下,它们完全相同。在哪种情况下应该显示第一种,哪种情况下应该显示第二种?
Wiremock 将始终只返回一个答案。这个答案通常是通过评估您在 Wiremock 配置中定义的请求参数来确定的。请参阅有关 Wiremock 和优先级如何工作的描述:Wiremock 存根和优先级
如果存在重叠参数,Wiremock 将选择您最近添加的配置(在您的情况下是第二个)。或者您可以通过设置优先级来指导 Wiremock。优先使用较低的优先级。
通常,您有一个更一般的情况(请求参数较少 - 作为追赶)和一个更具体的情况。第一个将获得更高的优先级(例如 9),而后者将获得更低的优先级(等式 5)。因此,如果请求参数匹配,则优先选择后者,而在其他情况下则选择第二个。
| 归档时间: |
|
| 查看次数: |
5487 次 |
| 最近记录: |