如何在线索中使用“优先级”

问题描述 投票:0回答:1

我想了解优先事项的运作方式。更具体地说,将存根优先级设置为存根的预期输出是多少。关于这方面的文档是有限的,可用的文档并没有真正解释输出的样子,所以我无法验证我是否正确实现了它。

这是我目前的代码:

    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 

因此,两个存根应该执行,我应该收到两个正确的响应?

我目前只收到一个响应,它来自优先级为1的存根。我没有从优先级为2的存根中获得任何响应

有人可以帮我这个吗?

java wiremock
1个回答
1
投票

你到底想要达到什么目的?您通常具有Wiremock配置,这些配置具有不同的请求参数或重叠。在你的情况下,他们是完全一样的。在哪种情况下应该是第一种,哪种情况应该显示第二种情况?

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.