gpt4 book ai didi

java - 如何在wiremock中使用 "Priorities"

转载 作者:行者123 更新时间:2023-12-02 02:10:41 29 4
gpt4 key购买 nike

我想了解优先级是如何运作的。更具体地说,设置 stub 优先级的预期输出是什么。关于此的文档有限,并且可用的文档并不能真正解释输出的样子,因此我无法验证我是否已正确实现它。

这是我当前的代码:

    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");

我从 SOAPUI 发送以下请求:

/user/test?and=query 

因此两个 stub 都应该被执行,并且我应该收到两个正确的响应?

我目前只收到一个响应,该响应来自优先级为 1 的 stub 。我没有从优先级为 2 的 stub 收到任何响应/

有人可以帮我解决这个问题吗?

最佳答案

您到底想实现什么目标?您通常拥有具有不同请求参数或重叠的 Wiremock 配置。就你而言,它们是完全相同的。在什么情况下应该显示第一个,在什么情况下应该显示第二个?

Wiremock 将始终只返回一个答案。该答案通常是通过评估您在 Wiremock 配置中定义的请求参数来确定的。请参阅有关 Wiremock 和优先级如何工作的说明:Wiremock Stubbing and priorities

如果存在重叠参数,Wiremock 将选择您最近添加的配置(在您的情况下是第二个)。或者您可以通过设置优先级来指导 Wiremock。优先级较低的将被优先使用。

通常,您有一个更一般的情况(具有较少的请求参数 - 作为追赶)和一个更具体的情况。第一个将获得较高的优先级(例如 9),而后者将获得较低的优先级(例如 5)。因此,如果请求参数匹配,则优先选择后者,否则优先选择第二个。

关于java - 如何在wiremock中使用 "Priorities",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078978/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com