1

我从 loadimpact 快速浏览了 K6。

到目前为止,我得到的图表显示了全局级别的 TPS、响应时间、错误率,这并不太有用。

当我加载测试时,我宁愿在全局级别获得这些统计信息,也可以在流级别或 APi 级别获得这些统计信息。这样,例如,如果我看到一些高延迟,我可以立即判断是由单个 API 引起还是所有 API 都很慢。

或者我可以说给定的 API 给出了 HTTP/500 或几个不同的 API。

K6 能否在 API 级别、流级别和全局级别显示 TPS、响应时间、HTTP 状态等统计信息?

谢谢

4

1 回答 1

1

是的,它可以,并且您在结果呈现方面有 3 个选项(在某种程度上都涉及使用自定义指标):

  1. 打印到标准输出的测试摘要结束。
  2. 您将结果数据输出到InfluxDB+Grafana
  3. 您将结果数据输出到Load Impact Insights

您使用上述所有三个获得的全局统计信息,以及您使用 2) 和 3) 开箱即用的每个 API 端点统计信息,但是要在流级别获取统计信息,您需要创建适用于上述所有三个选项的自定义指标. 所以是这样的:

import http from "k6/http";
import { Trend, Rate } from "k6/metrics";
import { group, sleep } from "k6";

export let options = {
    stages: [
        { target: 10, duration: "30s" }
    ]
};

var flow1RespTime = new Trend("flow_1_resp_time");
var flow1TPS = new Rate("flow_1_tps");
var flow1FailureRate = new Rate("flow_1_failure_rate");

export default function() {
    group("Flow 1", function() {
        let res = http.get("https://test.loadimpact.com/");
        flow1RespTime.add(res.timings.duration);
        flow1TPS.add(1);
        flow1FailureRate.add(res.status == 0 || res.status > 399);
    });
    sleep(3);
};

这将扩展打印到标准输出的测试摘要统计信息的结尾以包含自定义指标:

在此处输入图像描述

于 2018-12-11T10:35:43.770 回答