2

是否有现成的插件可以从 K6 生成的 JSON 输出生成 html 报告?我正在尝试构建一个简单的 HTML 报告,但生成的输出 JSON 无效且无法解析。下面是 K6 的 JSON 输出。

{"type":"Metric","data":{"name":"data_received","type":"counter","contains":"data","tainted":null,"thresholds":[],"submetrics":null,"sub":{"name":"","parent":"","suffix":"","tags":null}},"metric":"data_received"}
{"type":"Point","data":{"time":"2020-07-30T21:06:05.6026767Z","value":0,"tags":{"group":"::setup"}},"metric":"data_received"}
{"type":"Metric","data":{"name":"iteration_duration","type":"trend","contains":"time","tainted":null,"thresholds":[],"submetrics":null,"sub":{"name":"","parent":"","suffix":"","tags":null}},"metric":"iteration_duration"}
{"type":"Point","data":{"time":"2020-07-30T21:06:05.6026767Z","value":0.09,"tags":{"group":"::setup"}},"metric":"iteration_duration"}
4

1 回答 1

4

https://github.com/benc-uk/k6-reporter

K6 的此扩展旨在通过添加到您的 K6 测试代码 (JavaScript) 中使用,并利用添加到 K6 v0.30.0 的 handleSummary 回调挂钩。当您的测试完成时,一个 HTML 文件将被写入文件系统,其中包含一个格式化且易于使用的测试摘要数据版本

要使用,请将此模块添加到您的测试代码中。

从 GitHub 上远程托管的捆绑模块导入 htmlReport 函数

import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js";

笔记。将 main 替换为版本标记(例如 2.2.0)以使用特定版本

然后在测试的默认函数之外,用 K6 在任何测试结束时调用的 handleSummary(data) 函数包装它,如下所示:

export function handleSummary(data) {
  return {
    "summary.html": htmlReport(data),
  };
}

返回对象中使用的键是要写入的文件名,可以是任何有效的文件名或路径注。这是 v2.1.1 版本中的更改

htmlReport 函数接受可选的选项映射作为第二个参数,具有以下属性

title string // 报表的标题,默认为当前日期 多个输出 如果你想对产生的输出有更多的控制或输出到多个地方(包括标准输出),只需将 htmlReport 的结果与其他汇总生成器结合起来,如下:

// 这将作为文件名“result.html”导出到 HTML 并使用文本摘要导出到标准输出

import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js";
import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";

export function handleSummary(data) {
  return {
    "result.html": htmlReport(data),
    stdout: textSummary(data, { indent: " ", enableColors: true }),
  };
}
于 2021-04-14T09:36:39.387 回答