结果输出
k6 在为您的测试生成负载时,也会产生衡量系统性能的*指标*。您可以通过两种主要方式分析指标:
- 在*测试结束*摘要报告中,作为摘要统计数据。
- 以精细的详情,包含测试中(以及时间戳)每个数据点的测量。
您几乎可以自定义结果输出的方方面面:
- 创建自定义指标
- 配置新的摘要统计数据,并将其打印为任何文本格式。
- 将结果流式传输到您选择的一个或多个服务(例如,InfluxDB 或 Prometheus)。
指标
文档:使用指标
k6 带有衡量测试负载和系统响应的内置指标。主要指标包括:
http_req_duration
,所有请求的端到端时间(即总延迟)http_req_failed
,失败请求的总数iterations
,迭代总数
测试结束摘要
文档:测试结束摘要
默认情况下,k6 将摘要结果打印到 stdout
。
运行测试时,k6 会输出一个纯文本标志、您的测试进度和一些测试详情。测试完成后,k6 会打印测试指标的完整详情和摘要统计数据。
测试结束摘要显示了您的结果指标的汇总统计值,包括:
- 中位数和平均值
- 最小值和最大值
- p90、p95 和 p99 值
您可以使用 --summary-trend-stats
选项配置要报告的统计数据。例如,此命令仅显示中位数、p95 和 p99.9 值。
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
标志,并将您的导出格式声明为标志参数。如果您想将指标发送到多个来源,可以使用多个标志和多个参数
k6 run \
--out json=test.json \
--out influxdb=https://:8086/k6
可用的内置输出包括: