如何在需要 OAuth 2.0 授权的情况下使用 Postman 开发 test-automation

How to develop test-automation using Postman when OAuth 2.0 authorization is required

我有一个 ASP.NET Web API 2,它使用 OAuth 2.0 进行授权。假设我有一个简单的 Web API 方法,例如:

GET: http://host/api/profiles/user123   (requires OAuth 2.0 token)

因此,使用 Postman,可以轻松测试此 Web API。我从 Web API OAuthAuthorization 方法获得 user123 的 OAuth 令牌,然后我在 HTTP 请求的 header 中使用该令牌:

GET /api/profiles/user123   HTTP/1.1
Host: {host}
Authorization: Bearer {Token}
Content-Type: application/json
Cache-Control: no-cache

但是,如果我保存我的测试并 运行 稍后(通过 Postman 本身或 Newman),令牌将在那时过期并且无法使用。

如何让 Newman 自动为 user123 获取新令牌并在 HTTP 请求中使用它?

注意:我知道如何使用 Postman 的 Authentication helpers 来请求新令牌。但是这个场景不符合test-automation。在 test-automation 中,我想删除任何人机交互。

很简单,在 运行 时获取您的访问令牌并将其保存到环境变量中。然后在您的下一个 Get 请求中使用它。

在获取令牌请求中,在测试部分执行此操作:

var body = JSON.parse(responseBody);
pm.environment.set('AccessToken', body.access_token);

在你的主Get请求中,你可以使用Authorization中的环境变量 header:

Authorization: Bearer {{AccessToken}}

希望对您有所帮助。