2

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

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

因此,使用Postman可以很容易地测试这个 Web API。我从 Web API OAuthAuthorization 方法获得了一个 OAuth 令牌user123,然后在 HTTP 请求的标头中使用该令牌:

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 的身份验证助手来请求新令牌。但是这种情况不适合测试自动化。在测试自动化中,我想删除任何人工交互。

4

1 回答 1

4

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

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

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

在您的主要 Get 请求中,您可以在标头中使用环境变量Authorization

Authorization: Bearer {{AccessToken}}

希望这可以帮助。

于 2017-01-19T02:50:44.097 回答