是否可以将wiremock配置为在特定数量的先前响应之后对同一URL和同一请求发送不同的响应?
For example:
1st request -> 503 response
2nd request -> 503 response
3rd request -> 503 response
4th request -> 200 response
Run Code Online (Sandbox Code Playgroud)
这将模拟启动期间不可用的服务。当它启动并运行时,它会响应 200 状态。
ago*_*off 11
您可以使用 WireMock 的场景功能来实现这一点。潜在的设置可能是这样的......
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)));
Run Code Online (Sandbox Code Playgroud)
在上面,您通过定义场景名称和初始行为来设置场景(所有场景都以 状态开始STARTED。)第一次运行到"/foo"端点后,我们返回 503 状态,以及场景的状态改为“一次尝试”。第二次运行端点后"/foo",我们再次返回 503 状态,并且场景的状态更改为“两次尝试”。如果我们"/foo"再次到达端点,我们将返回 200 状态,并且不会更改场景状态。
需要注意的是,您需要知道想要返回特定状态的确切次数,因此它不允许您随机返回 503。但是,如果您确定在返回 200 之前始终需要特定数量的响应,那么场景应该可行。
| 归档时间: |
|
| 查看次数: |
6122 次 |
| 最近记录: |