SuperAPI AI 工具集

k6-trend-analysis

测试与质量

查看项目

更新于 10-15 21:55

技能介绍

用途:对 Grafana Cloud k6 同一测试的多次运行做跨时间趋势分析,在阈值被突破、告警触发之前发现性能退化。适用于温度指标缓慢漂移、需要判断是服务侧回归还是脚本变更的场景。

工作流程:先确定测试(通过 URL、测试 ID 或名称),默认分析最近 30 天;列出窗口内所有运行,丢弃未达到 finished 状态的运行,可用运行少于 3 次时提示样本不足。随后获取全部指标及其类型(counter、gauge、trend、rate),按类型选择聚合方法:trend 用 histogram_quantile(0.95) 等分位数,counter 用 increase,rate 用 ratio,gauge 用 max。对多目标测试默认按请求分组(如 browser_web_vital_* 按 url,http_req_duration 按 name/status 或 url/status,iteration_duration 按 scenario),需先用标签端点发现可用标签。

分析要点:提取脚本中的 thresholds 定义,计算余量(headroom_pct),划分为 Comfortable(>50%)、Adequate(20-50%)、Thin(<20%)、Breached(<0%)。检测趋势时比较前后半段均值,劣化/改善阈值设为 10%,波动按标准差是否超过均值 25% 判断,并计算每周变化率与预计突破周数。检测到拐点时用 sha256 对比运行内脚本快照,脚本相同则说明退化来自外部;脚本不同则按时间划分为不同分析阶段。必要时可交给 debug-with-grafana 做服务侧关联,或对比浏览器测试的 Tempo 追踪、协议测试的 http_req_waiting 与 http_req_receiving 定位。

使用方式:通过 gcx 调用 GCk6 API,具体认证、路径构建、分页与指标查询语法参考 k6-manage。示例查询:gcx --context <ctx> api "/api/plugins/k6-app/resources/cloud/cloud/v5/load_tests/$LT/query_aggregate_k6(query='histogram_quantile(0.95)',metric='http_req_duration',test_run_ids=[$IDS])" -o json。最终输出结构化报告(运行摘要、指标趋势、问题项、阈值建议),不直接应用变更。

限制:不深入单次运行失败(用 k6-cloud-investigate-test),不编辑脚本或应用阈值(用 k6-test-maintenance),不创建测试脚本,不直接查询服务侧指标。阈值建议默认只收紧不放松,以近期 P95 的 10-20% 余量为目标。