K6 - 阈值已通过,但其值为零

问题描述 投票:0回答:1

我仅在本地运行 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 }),
};
}

Local Results

Cloud Results

(由于隐私原因,我不得不更改端点)

我增加了优雅的停止时间,以不同的方式编写端点,使用了不同的端点,但这些都没有解决。

threshold k6
1个回答
0
投票

您的

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" },
    }
);

© www.soinside.com 2019 - 2024. All rights reserved.