菜单
开源

结果输出

k6 在为您的测试生成负载时,也会产生衡量系统性能的*指标*。您可以通过两种主要方式分析指标:

  • 在*测试结束*摘要报告中,作为摘要统计数据。
  • 以精细的详情,包含测试中(以及时间戳)每个数据点的测量。

您几乎可以自定义结果输出的方方面面:

  • 创建自定义指标
  • 配置新的摘要统计数据,并将其打印为任何文本格式。
  • 将结果流式传输到您选择的一个或多个服务(例如,InfluxDB 或 Prometheus)。

指标

文档使用指标

k6 带有衡量测试负载和系统响应的内置指标。主要指标包括:

  • http_req_duration,所有请求的端到端时间(即总延迟)
  • http_req_failed,失败请求的总数
  • iterations,迭代总数

测试结束摘要

文档测试结束摘要

默认情况下,k6 将摘要结果打印到 stdout

运行测试时,k6 会输出一个纯文本标志、您的测试进度和一些测试详情。测试完成后,k6 会打印测试指标的完整详情和摘要统计数据。

k6 results - console/stdout output

测试结束摘要显示了您的结果指标的汇总统计值,包括:

  • 中位数和平均值
  • 最小值和最大值
  • p90、p95 和 p99 值

您可以使用 --summary-trend-stats 选项配置要报告的统计数据。例如,此命令仅显示中位数、p95 和 p99.9 值。

sh
k6 run --iterations=100 --vus=10 \
--summary-trend-stats="med,p(95),p(99.9)" script.js

使用 handleSummary() 生成自定义报告

对于完全自定义的测试结束摘要报告,k6 提供了 handleSummary() 函数。

测试结束时,k6 会自动创建一个包含所有汇总统计数据的对象。handleSummary() 函数可以将此对象处理为任何文本格式的自定义报告:JSON、HTML、XML 等。

时间序列和外部输出

文档实时指标

精简的测试结束摘要提供了测试的顶层视图。为了进行更深入的分析,您需要查看细粒度的时间序列数据,其中包含测试中每个点位的指标和时间戳。

您可以通过两种方式访问时间序列指标:

  • 将其写入 JSON 或 CSV 文件。
  • 将其流式传输到外部服务。

在这两种情况下,您都可以使用 --out 标志,并将您的导出格式声明为标志参数。如果您想将指标发送到多个来源,可以使用多个标志和多个参数

sh
k6 run \
--out json=test.json \
--out influxdb=https://:8086/k6

可用的内置输出包括: