xcode 在WireMock中为不同用户创建场景

q7solyqu  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(97)

我正在使用Wiremock来模拟我的服务器,我遇到了一个问题。我有两个用户。我想以一个用户的身份注销,然后以另一个用户的身份登录。我知道我可以在场景中做到这一点,但我的代码不起作用。我使用的是GraphQl服务器。我的代码如下所示:
以用户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"
  }
}

以用户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所做的更改外,我还需要将作为用户2登录的状态更改为201,并从用户1和2中删除新场景。之后就可以了

登录用户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"
  }
}

登录用户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"
  }
}
oalqel3c

oalqel3c1#

您的log outMap将newScenarioState设置为"Started",但您的user2Map具有"Log out"requiredScenarioState。更新log outMap的newScenarioState应可解决此问题。

// log out
{
  "scenarioName": "Test scenario",
  "requiredScenarioState": "User 1",
  "newScenarioState": "Log out",
...
}

相关问题