一个测试工程师的真实案例分享 —— 从手动分析 K6 JSON 到一键生成专业可视化报告
做性能测试的同学都知道,K6 跑完测试后输出的 JSON 文件动辄几千行,手动分析是一件极其痛苦的事:
核心问题:能不能让 AI 帮我把这整套流程自动化?
我使用 Kiro(一款 AI IDE)的两个核心能力,构建了一套完整的性能测试分析工具链:
┌─────────────────────────────────────────────────────┐
│ Kiro IDE │
│ │
│ ┌─────────────────────┐ ┌──────────────────────┐ │
│ │ Skill(技能) │ │ Steering(引导) │ │
│ │ │ │ │ │
│ │ performance-test- │ │ ui-ux-pro-max │ │
│ │ analyzer │ │ │ │
│ │ ┌───────────────┐ │ │ 67 种 UI 风格 │ │
│ │ │ analyze.js │──┼──┤ 96 套配色方案 │ │
│ │ │ 数据分析引擎 │ │ │ 57 组字体搭配 │ │
│ │ └───────────────┘ │ │ 99 条 UX 准则 │ │
│ │ ┌───────────────┐ │ │ 25 种图表类型 │ │
│ │ │ generate- │──┼──┤ 13 个技术栈支持 │ │
│ │ │ html-report.js│ │ │ │ │
│ │ │ 报告生成器 │ │ └──────────────────────┘ │
│ │ └───────────────┘ │ │
│ └─────────────────────┘ │
│ │
│ 用户只需一句话:「分析 test_result.json」 │
│ Kiro 自动完成:解析 → 计算 → 生成报告 │
└─────────────────────────────────────────────────────┘
Skill 是 Kiro 中可复用的自动化能力单元。你可以把它理解为「教会 AI 一项专业技能」。我创建的 performance-test-analyzer Skill 包含:
.kiro/skills/performance-test-analyzer/
├── SKILL.md # Skill 定义入口(Kiro 自动识别)
├── README.md # 使用文档
├── analyze.js # K6 JSON 数据分析引擎
├── generate-html-report.js # Dark Mode HTML 报告生成器
└── generate-i18n-report.js # 中英双语报告生成器
Steering 是 Kiro 中的「引导规则」,可以在所有对话中自动注入上下文。我使用了 ui-ux-pro-max 这个 Steering,它是一个完整的 UI/UX 设计知识库,让 AI 在生成报告时自动遵循专业的设计规范。
整个工具链不是一次性写完的,而是通过与 AI 的多轮对话逐步迭代完成的。以下是真实的演进过程:
我说: "分析 test_result_9.json"
AI 自动完成了:
_analysis.json 和 _concurrent_analysis.json
发现问题: test_result_9.json 数据不完整(只有 VU 指标,没有 HTTP 请求数据),AI 主动诊断并给出了可能原因(网络问题、脚本配置、服务端问题)。
我说: "分析 test_result_11.json,生成 HTML 报告"
AI 生成了包含以下内容的可视化报告:
我说: "使用 ui-ux-pro-max 这个 steering,去美化一下报告"
这一步是关键的提效点。AI 做了什么:
ui-ux-pro-max 设计系统,搜索适合「数据仪表盘」的设计方案#0A0E1A
#1E40AF,Secondary #3B82F6,CTA #F59E0B
prefers-reduced-motion 无障碍支持一句话指令,AI 完成了一个前端工程师可能需要半天的设计工作。
我说: "帮我整理下整个文件结构,需要符合 skills 的标准结构"
AI 将原来散乱的 12 个文件精简为 5 个,删除了冗余文档和空文件,创建了标准的 SKILL.md 入口文件,确保开箱即用。
我说: "分析 test_result_10.json"
一句话,AI 自动执行了完整流程:
analyze.js → test10_analysis.json → generate-html-report.js → test10_report.html
通过这套工具链,我快速分析了多个测试结果:
| 指标 | test_result_9 | test_result_10 | test_result_11 |
|---|---|---|---|
| 总请求数 | 0(数据不完整) | 72 | 443 |
| 成功率 | — | 100% | 100% |
| 平均响应时间 | — | 318.46s | 64.63s |
| P95 响应时间 | — | 563.97s | 265.28s |
| 吞吐量 | — | 0.04 req/s | 0.29 req/s |
| 最大并发 | 40 VUs | 40 VUs | 50 VUs |
| 并发稳定性 | — | 全部稳定 | 全部稳定 |
从数据可以快速看出:
172.31.103.82)性能明显弱于 test11(localhost)这些洞察在几秒内就得出了,而不是花几十分钟翻 JSON。
| 环节 | 传统方式 | AI 辅助 | 提效倍数 |
|---|---|---|---|
| 解析 K6 JSON | 手动写脚本或 Excel,30-60 min | 一句话指令,10s | ~200x |
| 计算性能指标 | 手动计算百分位数,15-30 min | 自动计算,包含在分析中 | ~100x |
| 生成可视化报告 | Grafana 搭建或手动画图,2-4h | 自动生成 HTML,10s | ~1000x |
| 报告美化 | 前端开发,4-8h | 一句话 + 设计系统,2min | ~200x |
| 工程结构整理 | 手动整理,30min | AI 自动精简,2min | ~15x |
| 端到端总计 | 约 1-2 天 | 约 5 分钟 | ~200x |
不要每次都从零开始跟 AI 对话。把验证过的流程封装成 Skill,下次一句话就能触发完整工作流。
「分析 test_result.json」 → 自动执行 analyze + generate-report
AI 的输出质量取决于它拥有的上下文。通过 Steering 注入设计规范、编码标准、团队约定,让 AI 的输出直接达到交付标准。
不要试图一次性描述完美需求。像我一样分步迭代:
每一步都可以验证和调整,最终得到的工具远超一次性产出的质量。
在这个案例中,AI 做的不仅仅是写代码:
# 1. 跑完 K6 测试
k6 run --out json=test_result.json your_test.js
# 2. 在 Kiro 中说一句话
# 「分析 test_result.json,生成 HTML 报告」
# 或者手动执行
node .kiro/skills/performance-test-analyzer/analyze.js test_result.json
node .kiro/skills/performance-test-analyzer/generate-html-report.js test_analysis.json
# 3. 打开报告
start test_report.html
生成的报告包含:
作为测试工程师,我们的核心价值不在于手动执行重复性工作,而在于:
AI 工具(如 Kiro)可以接管那些耗时但模式化的工作 —— 数据解析、报告生成、代码美化 —— 让我们把时间花在真正需要人类判断力的地方。
这不是 AI 替代 QA,而是 AI 让 QA 更强。
本文基于真实项目实践,工具链代码可以私信我。欢迎交流讨论。