You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WireMock多用户登录切换场景配置问题求助及解决方案

WireMock模拟GraphQL服务器场景配置问题及解决方法

我正在用WireMock模拟GraphQL服务器,需要实现「先注销User 1、再登录User 2」的流程,知道可以通过WireMock的scenario功能实现,但我的配置代码无法正常运行。初始配置代码如下:

初始配置

登录User 1

{
  "scenarioName": "Test scenario",
  "requiredScenarioState": "Started",
  "newScenarioState": "User 1",
  "request": {
      "method": "POST",
      "url": "/graphql-url",
      "headers": {
          "X-APOLLO-OPERATION-NAME": {
              "equalTo": "User1"
          }
      }
  },
  "response": {
      "status": 200,
      "bodyFileName": "User1.json"
  }
}

注销

{
  "scenarioName": "Test scenario",
  "requiredScenarioState": "User 1",
  "newScenarioState": "Started",
  "request": {
      "method": "POST",
      "url": "/graphql-url",
      "headers": {
          "X-APOLLO-OPERATION-NAME": {
              "equalTo": "Logout"
          }
      }
  },
  "response": {
      "status": 200,
      "bodyFileName": "Logout.json"
  }
}

登录User 2

{
  "scenarioName": "Test scenario",
  "requiredScenarioState": "Log out",
  "newScenarioState": "User 2",
  "request": {
      "method": "POST",
      "url": "/graphql-url",
      "headers": {
          "X-APOLLO-OPERATION-NAME": {
              "equalTo": "User2"
          }
      }
  },
  "response": {
      "status": 200,
      "bodyFileName": "User2.json"
  }
}

请问有人知道问题出在哪里吗?


更新:问题已解决

结合agoff的修改建议,我做了以下调整后配置正常运行:

  • 移除了User 1和User 2配置中的newScenarioState字段
  • 将User 2登录的响应状态码改为201

修正后的代码如下:

登录User 1

{
  "scenarioName": "Test scenario",
  "requiredScenarioState": "Started",
  "request": {
      "method": "POST",
      "url": "/graphql-url",
      "headers": {
          "X-APOLLO-OPERATION-NAME": {
              "equalTo": "User1"
          }
      }
  },
  "response": {
      "status": 200,
      "bodyFileName": "User1.json"
  }
}

注销

{
  "scenarioName": "Test scenario",
  "requiredScenarioState": "Started",
  "newScenarioState": "Logout",
  "request": {
      "method": "POST",
      "url": "/graphql-url",
      "headers": {
          "X-APOLLO-OPERATION-NAME": {
              "equalTo": "Logout"
          }
      }
  },
  "response": {
      "status": 200,
      "bodyFileName": "Logout.json"
  }
}

登录User 2

{
  "scenarioName": "Test scenario",
  "requiredScenarioState": "Log out",
  "request": {
      "method": "POST",
      "url": "/graphql-url",
      "headers": {
          "X-APOLLO-OPERATION-NAME": {
              "equalTo": "User2"
          }
      }
  },
  "response": {
      "status": 201,
      "bodyFileName": "User2.json"
  }
}

内容的提问来源于stack exchange,提问作者user2415183

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 15:30:55