内置指标
每个 k6 测试都会发出内置指标和自定义指标。每个支持的协议也有其特定的指标。
标准内置指标
无论测试使用何种协议,k6 始终会收集以下指标
指标名称 | 类型 | 描述 |
---|---|---|
checks | Rate | 检查成功的速率。 |
data_received | Counter | 接收到的数据量。此示例涵盖了如何跟踪单个 URL 的数据。 |
data_sent | Counter | 发送的数据量。跟踪单个 URL 的数据来跟踪单个 URL 的数据。 |
dropped_iterations | Counter | 由于缺少 VU(针对到达率执行器)或时间不足(基于迭代的执行器中 maxDuration 过期)而未启动的迭代次数。有关更多详细信息,请参阅丢弃的迭代。 |
iteration_duration | Trend | 完成一次完整迭代所需的时间,包括在 setup 和 teardown 中花费的时间。要计算特定场景的迭代函数的持续时间,请尝试此变通方法。 |
iterations | Counter | VU 执行 JS 脚本(即 default 函数)的总次数。 |
vus | Gauge | 当前活跃的虚拟用户数 |
vus_max | Gauge | 可能的最大虚拟用户数(VU 资源是预分配的,以避免在扩大负载时影响性能)。 |
HTTP 特定内置指标
这些指标仅在测试发出 HTTP 请求时生成。
注意
对于所有
http_req_*
指标,时间戳在请求结束时发出。换句话说,时间戳发生在 k6 接收到响应体结束时,或者请求超时时。
指标名称 | 类型 | 描述 |
---|---|---|
http_req_blocked | Trend | 在发起请求之前被阻塞(等待空闲的 TCP 连接槽)的时间。float |
http_req_connecting | Trend | 与远程主机建立 TCP 连接所花费的时间。float |
http_req_duration | Trend | 请求总时间。它等于 http_req_sending + http_req_waiting + http_req_receiving (即远程服务器处理请求和响应所需的时间,不包括初始 DNS 查找/连接时间)。float |
http_req_failed | Rate | 根据setResponseCallback的失败请求率。 |
http_req_receiving | Trend | 从远程主机接收响应数据所花费的时间。float |
http_req_sending | Trend | 向远程主机发送数据所花费的时间。float |
http_req_tls_handshaking | Trend | 与远程主机进行 TLS 握手所花费的时间 |
http_req_waiting | Trend | 等待远程主机响应所花费的时间(也称为“首字节时间”,或“TTFB”)。float |
http_reqs | Counter | k6 生成的 HTTP 请求总数。 |
浏览器指标
k6 browser 模块根据核心 Web 指标发出自己的指标。
这些核心指标将随着技术的变化而演变,但目前,k6 跟踪以下核心 Web 指标
指标名称 | 描述 |
---|---|
browser_web_vital_cls | 通过量化可见页面内容意外布局偏移的量来衡量网页的视觉稳定性。有关更多信息,请参阅累计布局偏移 (Cumulative Layout Shift)。 |
browser_web_vital_fid | 通过量化用户首次互动(例如点击按钮)与浏览器响应之间的延迟来衡量网页的响应速度。有关更多信息,请参阅首次输入延迟 (First Input Delay)。 |
browser_web_vital_lcp | 测量页面上最大内容元素变为可见所需的时间。有关更多信息,请参阅最大内容绘制 (Largest Contentful Paint)。 |
其他 Web 指标
除了核心 Web 指标外,浏览器模块还报告其他 Web 指标。
指标名称 | 描述 |
---|---|
browser_web_vital_fcp | 测量浏览器渲染页面上第一个 DOM 元素(无论是文本、图像还是标题)所需的时间。有关更多信息,请参阅首次内容绘制 (First Contentful Paint)。 |
browser_web_vital_inp | 衡量页面响应速度的实验性指标。有关更多信息,请参阅下一次绘制的互动时间 (Interaction to Next Paint)。 |
browser_web_vital_ttfb | 测量浏览器请求与服务器响应开始之间的时间。有关更多信息,请参阅首字节时间 (Time to First Byte)。 |
内置 WebSocket 指标
k6
通过experimental
或传统 websockets API 与 WebSocket 服务交互时会发出以下指标。
指标名称 | 类型 | 描述 |
---|---|---|
ws_connecting | Trend | WebSocket 连接请求的总持续时间。 |
ws_msgs_received | Counter | 收到的消息总数 |
ws_msgs_sent | Counter | 发送的消息总数 |
ws_ping | Trend | Ping 请求与其 Pong 接收之间的持续时间 |
ws_session_duration | Trend | WebSocket 会话的持续时间。连接开始到 VU 执行结束之间的时间。 |
ws_sessions | Counter | 启动的 WebSocket 会话总数。 |
内置 gRPC 指标
k6 通过gRPC
API 与服务交互时会发出以下指标。
指标名称 | 类型 | 描述 |
---|---|---|
grpc_req_duration | Trend | 从远程主机接收响应所需的时间 |
grpc_streams | Counter | 启动的流总数 |
grpc_streams_msgs_received | Counter | 收到的消息总数 |
grpc_streams_msgs_sent | Counter | 发送的消息总数 |
注意
流相关指标(
grpc_streams*
)仅在k6
版本0.49.0
或更高版本中可用,或在使用k6
版本0.45.0
中可用的k6/experimental/grpc
模块时可用。