首页 > 解决方案 > 第一次成功,第二次相同的请求错误存根响应

问题描述

这是我的wiremock存根映射:

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

因此,当客户端使用 url 模式 = /api/myApp执行 http 请求时,WireMock 返回成功 http 状态 = 200。

好的。它工作正常。

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

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

所以:

第一个请求 -> 存根响应 200

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

WireMock 可以吗?

标签: 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 调用之间交替。

有关WireMock 中的状态行为的更多信息,请查看文档


推荐阅读