第一次成功,第二次相同的请求错误存根响应

问题描述

这里是我的wiremock存根映射:

{
  "request": {
    "method": "POST","urlPattern": "/api/myApp"
  },"response": {
    "headers": {
      "Content-Type": "application/json"
    },"status": 200
  }
}

因此,当客户端使用 url pattern = /api/myApp 执行 http 请求时,wiremock 返回成功 http status = 200。

不错。它工作正常。

但是我需要当客户端使用相同的 url 模式执行第二个请求时,wiremock 必须返回这个存根响应:

   {
      "request": {
        "method": "POST","urlPattern": "/api/myApp"
      },"response": {
        "headers": {
          "Content-Type": "application/json"
        },"status": 401
      }
    }

所以:

一个请求 -> 存根响应 200

第二个相同的请求 -> 存根响应 401

可以通过 wiremock 实现吗?

解决方法

如果您总是会遇到第一次调用成功而第二次调用不成功的模式,您可以使用 Scenarios 来实现这一点。

{
    "scenarioName": "My Scenario","requiredScenarioState": "Started","newScenarioState": "Triggered Once","request": {}
    "response": {
        "status": 200
    }
}
{
    "scenarioName": "My Scenario","requiredScenarioState": "Triggered Once","newScenarioState": "Started","request": {}
    "response": {
        "status": 401
    }
}

scenarioName 是您要为场景命名的任何字符串 requiredScenarioState 是场景必须处于的状态。所有场景都以“已开始”状态开始。 newScenarioState 是表示新场景状态的任何字符串。

在上面,它总是会在成功的 200 次调用和不成功的 401 次调用之间交替。

有关 Stateful Behavior in WireMock,check out the docs

的更多信息