使用k6 JSON输出生成一个html报告



有没有现成的插件可以从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"}

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

K6的这个扩展旨在通过添加到K6测试代码(JavaScript(中来使用,并利用添加到K6v0.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(以使用特定版本

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

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

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

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

title string//报告的标题,默认为当前日期多个输出如果您希望对生成的输出进行更多控制,或者将摘要输出到多个位置(包括stdout(,只需将htmlReport的结果与其他摘要生成器组合即可,如下所示:

//这将导出为HTML文件名";result.html";AND也使用文本摘要标准输出

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

最新更新