【发布时间】:2022-09-05 06:10:41
【问题描述】:
我正在尝试获取令牌并将其传递给 GET 请求。
下面的工作,但每次请求运行时都会获取一个令牌。理想情况下,我想每次运行一次抓取它并将其传递给请求。
关于如何从下面的代码中实现这一点的任何想法?
import http from "k6/http";
import { sleep } from "k6";
import { check } from "k6";
import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js";
export let options = {
insecureSkipTLSVerify: true,
noConnectionReuse: false,
vus: 5,
duration: "10s",
};
var client_id = "clientId123";
var secret = "secret123";
var scope = "scope123";
export default () => {
var body =
"grant_type=client_credentials&client_id=" +
client_id +
"&client_secret=" +
secret +
"&scope=" +
scope;
var tokenResponse = http.post( "https://login.microsoftonline.com/tenantID123/oauth2/v2.0/token", body, { headers: { ContentType: "application/x-www-form-urlencoded"}});
var result = JSON.parse(tokenResponse.body);
var token = result.access_token;
check(tokenResponse, {
'is status 200': (r) => r.status === 200
})
var resp1 = http.get("url_1", {
headers: { Authorization: `Bearer ${token}` },
});
var resp2 = http.get("url_2", {
headers: { Authorization: `Bearer ${token}` },
});
check(resp1, {
'is status 200': (r) => r.status === 200,
})
check(resp2, {
'is status 200': (r) => r.status === 200,
})
};
【问题讨论】:
标签: javascript oauth load-testing k6