在Postman自动化测试中接收回叫请求

时间:2019-07-16 19:00:37

标签: postman postman-pre-request-script postman-testcase

我正在尝试与 Postman 编写自动测试。我是邮递员自动化领域的新手,对不起,如果这个问题看起来很愚蠢。

在我发送请求时需要测试的api中,无论交易成功与否,我都会立即收到一个带有 transactionID 的响应。连同我的请求,我向服务器发送了一个 CallbackURL ,我希望实际的交易结果会被回调。服务器将向 CallbackURL 发送 PUT 请求,该请求已由我提供了 transactionID 和实际的响应或错误。

问题是,邮递员测试中可以有这种情况吗? 我想我应该运行Web服务器并公开一个将要请求PUT请求的终结点,并且应该在测试中获取该PUT请求的主体以对其进行检查,然后成功对其进行响应。

换句话说,在我的脚本中,我需要执行以下操作:

  1. 通过回调URL向服务器发送请求
  2. 检查服务器的即时响应并保留返回的transactionID
  3. 让网络服务器运行我作为回调URL传递的端点
  4. 使用transactionID和实际响应期望对该端点的请求
  5. 检查响应是否符合我的实际预期
  6. 成功响应请求

我当时在考虑 Postman Mock服务器,但似乎它不是设计用于这种用途的。 我还认为我可以在邮递员沙盒 ...

内运行一些 JS Web服务器(可能是 nodeJS )。

实际上,我对邮递员测试非常陌生,对于这种问题我确实感到困惑。甚至可以和邮递员一起做,还是我需要其他东西?

1 个答案:

答案 0 :(得分:1)

POSTMAN提供了一些功能,可以帮助您解决问题

  1. 当您请求服务器传递回调URL时,它会为您提供transactionID作为响应。将该transactionID保存在环境变量或全局变量中。同样,您可以为callbackURL做到这一点。 例如。 pm.environment.set(“ transactionID”,transactionID);
  2. 然后,您可以在第二个请求中传递已拥有的回调URL和transactionID。

简而言之,在POSTMAN中,有类似的功能

  • 设置全局变量和环境变量,该变量有助于将从响应中获取的某些值传递给另一个请求。
  • 在第一个请求成功时调用其他请求 例如。 postman.setnextRequest({{requestname}});

如果您可以在细节上稍微提及问题陈述,则可以轻松地以更好的方式进行回答。

希望这对您有帮助