我仅在本地运行 1 个 VU 的 K6 脚本。然而,“创建”阈值尽管通过了,但显示为零。我以其他方式编写它,例如 "http_req_duration{name:${}/cases,method:PUT}": ["max < 100"] but nothing changed.
当我发送结果云时,“取消”请求的计时会与此标记一起显示,但对于其他标记,则会显示其完整端点。
有人可以帮忙吗?
谢谢。
...
export const options = {
scenarios: {
ListIncidents: {
executor: "per-vu-iterations",
vus: 1,
iterations: 1,
maxDuration: "40s",
gracefulStop: "50s",
},
},
thresholds: {
"http_req_duration{name:Create}": ["p(95) < 300", "p(99) < 400"],
"http_req_duration{name:Cancel}": ["p(95) < 300", "p(99) < 400"],
},
};
const URL = "URL";
const URL_2 = "URL_2";
export default function () {
const access_token = Login();
const headers = {
//header for requests
Authorization: "Bearer " + access_token,
"Content-Type": "application/json",
};
//create
let res = http.put(
`${URL_2}/cases`,
"{}",
{ headers: headers },
{ tags: { name: "Create" } }
);
//Cancel
mainserverLogin();
//cancel endpoint
const cancel = http.post(`${URL}/api/cases/${res.body}/cancel`, "cancelled", {
tags: { name: "Cancel" },
});
}
export function handleSummary(data) {
return {
stdout: textSummary(data, { indent: "", enableColors: true }),
};
}
(由于隐私原因,我不得不更改端点)
我增加了优雅的停止时间,以不同的方式编写端点,使用了不同的端点,但这些都没有解决。
您的
http.put
代码将标头和标签作为两个不同的参数发送
let res = http.put(
`${URL_2}/cases`, // 1st
"{}", // 2nd
{ headers: headers }, // 3rd
{ tags: { name: "Create" } } //4th
);
http.put
(以及大多数其他http.*
函数)的第三个参数是具有多个字段的对象。其中两个是headers
和tags
。
在您的情况下,您设置了标头,但随后发送了第四个参数
http.put
从不看。这样它从一开始就不会正确标记请求。
正确的代码是
let res = http.put(
`${URL_2}/cases`,
"{}",
{
headers: headers,
tags: { name: "Create" },
}
);