如何配置 wiremock 在达到先前的请求计数后发送不同的响应(相同的 url 和请求)?
How to configure wiremock to send different responses (same url and requests) after reaching previous count of request?
是否可以配置 wiremock 以在先前响应的特定计数后对相同 URL 和相同请求发送不同的响应?
For example:
1st request -> 503 response
2nd request -> 503 response
3rd request -> 503 response
4th request -> 200 response
这将在启动期间模拟不可用的服务。当它启动并 运行 时,它会响应 200 状态。
您可以使用 WireMock 实现此目的 Scenario feature. 潜在的设置可能类似于...
stubFor(get(urlEqualTo("/foo")).inScenario("Test Scenario")
.whenScenarioStateIs(STARTED)
.willReturn(aResponse().withStatus(503))
.willSetStateTo("One Attempt"));
stubFor(get(urlEqualTo("/foo")).inScenario("Test Scenario")
.whenScenarioStateIs("One Attempt")
.willReturn(aResponse().withStatus(503))
.willSetStateTo("Two Attempts"));
stubFor(get(urlEqualTo("/foo")).inScenario("Test Scenario")
.whenScenarioStateIs("Two Attempts")
.willReturn(aResponse().withStatus(200)));
在上面,您通过定义场景名称和初始行为来设置场景(所有场景都以 STARTED
的状态开始。)在第一次 运行 进入之后"/foo"
端点,我们return一个503状态,Scenario的状态改为"One Attempt"。第二次运行进入"/foo"
端点后,我们再次return一个503状态,Scenario的状态变为"Two Attempts"。如果我们再次点击 "/foo"
端点,我们将 return 200 状态,并且不会更改场景状态。
需要注意的是,您需要知道想要 return 特定状态的确切次数,因此它不允许您 return 503随机的。但是,如果您确定在 return 发送 200 之前总是需要特定数量的响应,那么场景应该有效。
是否可以配置 wiremock 以在先前响应的特定计数后对相同 URL 和相同请求发送不同的响应?
For example:
1st request -> 503 response
2nd request -> 503 response
3rd request -> 503 response
4th request -> 200 response
这将在启动期间模拟不可用的服务。当它启动并 运行 时,它会响应 200 状态。
您可以使用 WireMock 实现此目的 Scenario feature. 潜在的设置可能类似于...
stubFor(get(urlEqualTo("/foo")).inScenario("Test Scenario")
.whenScenarioStateIs(STARTED)
.willReturn(aResponse().withStatus(503))
.willSetStateTo("One Attempt"));
stubFor(get(urlEqualTo("/foo")).inScenario("Test Scenario")
.whenScenarioStateIs("One Attempt")
.willReturn(aResponse().withStatus(503))
.willSetStateTo("Two Attempts"));
stubFor(get(urlEqualTo("/foo")).inScenario("Test Scenario")
.whenScenarioStateIs("Two Attempts")
.willReturn(aResponse().withStatus(200)));
在上面,您通过定义场景名称和初始行为来设置场景(所有场景都以 STARTED
的状态开始。)在第一次 运行 进入之后"/foo"
端点,我们return一个503状态,Scenario的状态改为"One Attempt"。第二次运行进入"/foo"
端点后,我们再次return一个503状态,Scenario的状态变为"Two Attempts"。如果我们再次点击 "/foo"
端点,我们将 return 200 状态,并且不会更改场景状态。
需要注意的是,您需要知道想要 return 特定状态的确切次数,因此它不允许您 return 503随机的。但是,如果您确定在 return 发送 200 之前总是需要特定数量的响应,那么场景应该有效。