2017-04-11 68 views
0

我想在我的CI环境上运行postman测试。现在,在我打电话给一个端点之前,我需要打电话给我们的一个oauth端点,以确保我有访问令牌。在邮差上有2年的ticket与大量upvotes和建议使用setNextRequest在预先请求(这是从邮差4.5,显然支持)。因此,我在我的预先请求部分如下:邮差请求链接

var responseBody = postman.setNextRequest("/oauth/token"); 

它没有工作,似乎“/的OAuth /令牌”从来没有被称为(没有在邮递员控制台显示出来)。我确信我不是第一个反对这种情况的人,所以我的问题是 - 有没有办法从集合中调用一个项目(一个给我访问令牌的项目)?也就是说,我不希望在每次需要访问令牌的测试之前重复使用相同的oauth请求。

回答

1

我可以看到你正在使用responseBody在预先请求部分。尽管您只是试图将其设置为下一个请求。那里没有responseBodyresponseBody仅在Tests部分可用(显然由于请求已被执行)。

关于你的情况,你为什么不遵循:

  1. 执行的权威性请求作为第一个呼叫
  2. 获得访问令牌
  3. 储存于变量
  4. 使用环境在需要它的后续请求中使用令牌。

这将确保您的所有请求都具有在运行时生成的访问令牌。

+0

是的,所以这是我的默认策略。我虽然也许有一种更优雅的方式来做到这一点,就像执行另一个集合的请求一样,会给我更多的灵活性来构造我的测试。 – user2187935

+0

当前'postman.setNextRequest'方法只在同一个集合中查找请求。 –

1

postman.setNextRequest()用于在当前请求之后执行所需的请求。这不会解决你的问题。 Best将其存储在环境变量中,使用 postman.setEnvironmentVariable()函数并在需要时调用。

+0

是的,所以这也是我的直觉。但为什么邮差人员说预先请求支持setNextRequest?这里的用例是什么? – user2187935