基于AI的全链路性能测试提效:7个 Skill技能,亲测好用,实现全链路压测落地

你最近一次做性能测试,从接到需求到输出报告,花了多长时间?

我上个月帮一个业务团队做了一次完整的性能回归验证。完整记录时间后,发现了一个有意思的数字分布:

压测执行本身只占 8%。剩下 92% 的时间,全部花在准备、沟通、整理和写文档上。

这还不是最要命的。真正要命的是这些环节环环相扣,前面一步没踩实,后面全得返工


踩过的坑

做性能测试这些年,我整理了一个「返工清单」, 每次压测前都会拿出来看一遍,提醒自己别在同一个地方栽两次:

需求阶段

  • SLA 没和业务方书面确认,压测完说”响应时间要求不是 500ms 是 200ms”,重跑
  • 并发数直接拍脑袋定了 1000,结果是日活用户的 10 倍,测试结论完全失真
  • 测试环境数据库是 1C2G,生产是 8C32G,环境差异没评估,结果无法折算

计划阶段

  • 场景参数全写的 X,实际填的时候并发数、Ramp-up、持续时间全是凭感觉
  • 目标并发 800,单机 JMeter 压到 600 时压测机 CPU 已经 95%,结果失真还不知道
  • 100 个测试账号支撑 500 并发跑了 15 分钟,数据耗尽后缓存命中率 100%,TPS 虚高 3 倍

执行阶段

  • 没做数据预热,冷缓存下第一次压测 RT 是 warmed-up 状态的 3~5 倍
  • 压测写到测试库,污染了其他测试团队的数据
  • 第三方接口没做 Mock,对方服务波动导致 RT 抖动,判断不出是自己的问题还是外部问题

报告阶段

  • 报告结构每次都不一样,领导问”和上次的报告对比呢”,发现口径不统一
  • 容量评估不会写,领导问”现在能支撑多少用户”,答不上来
  • 基线对比漏掉,本次优化后到底提升多少、有没有退化,没数据支撑

这些坑的共同点是:和压测工具本身无关,全部是流程和决策层面的问题。

JMeter 你肯定会用。但需求怎么澄清、场景怎么设计、数据量怎么评估、瓶颈怎么定位、容量怎么写,这些才是决定一次压测有没有价值的关键。


这套 Skill 能解决什么

我把性能测试全流程拆成 7 个环节,每个环节做了一个 Skill,用 AI 辅助完成标准化输出。

不是替代你做决策,而是把重复性、模板化的工作压缩到最小,让你把时间花在真正需要专业判断的地方。

7 个 Skill 全景图

这些 Skill 支持的平台

这套 Skill 最初在 WorkBuddy 中开发,但每个 Skill 都提供了跨平台通用 Prompt 模板,你可以直接在以下平台使用:

平台使用方式
WorkBuddy@skill:perf-requirement-clarifier 直接调用,最完整的文件输出和自动化能力
Cursor复制 Skill 内置的 Prompt 模板,粘贴到 Chat 或 .cursorrules 文件
Trae复制 Prompt 模板到侧边栏 AI 助手,直接对话使用
Claude / ChatGPT / DeepSeek新建对话,粘贴 Prompt 模板,继续输入具体需求

核心设计:一个文件,多平台使用。

每个 Skill 文件同时包含两部分内容:

  • WorkBuddy 专用格式:YAML frontmatter + 完整执行规则,供 WorkBuddy 识别和自动化调用
  • 跨平台 Prompt 模板:提取核心流程、SLA 推荐值、负载默认值、验收标准等关键规则,压缩成各平台通用的 Prompt,复制粘贴即可使用

这意味着你不需要为了换平台而重写一套 Prompt。无论在哪个工具里,拿到的输出质量是一致的。

每个 Skill 都有明确的输入、输出和边界,串起来就是完整的性能测试工作流。下面逐个展开每个 Skill 具体能解决什么、输入输出是什么。


P01 需求澄清 — perf-requirement-clarifier

第二节需求阶段的坑,SLA 没书面确认、并发数拍脑袋、环境差异没评估,就是 P01 要解决的。

先说一个真实场景。

周四下午 4 点,你收到消息:明早 10 点压测。

你打开需求文档,发现只有一句话:「对订单接口进行压测,并发 1000。」

你挨个问:
• 开发:「1000 并发是哪里来的?」开发:「业务方说的。」
• 业务方:「1000 是我们峰值,行吗?」你:「峰值持续多久?」业务方:「就…峰值啊。」
• 运维:「测试环境数据库是生产的一半规格,结果要折算吗?」你:「……」
• 开发:「这个接口还调了库存服务和支付网关,你们压吗?」你:「……」

晚上 9 点,你还在微信上追着三个人要信息。明早的压测,SLA 没定、环境差异没评估、链路范围没对齐、数据没准备好。

P01 做的事,就是把这种混乱局面,变成一份所有人事前签字确认的标准化需求文档


怎么使用

触发词:在 WorkBuddy 中输入以下任意一个,Skill 自动启动:

性能需求澄清
压测需求确认
perf requirement clarifier
确认压测目标

三步完成需求澄清:

第一步:把你手里的材料直接扔给它

不用提前整理格式,直接把接口文档、PRD、或者业务方的话复制进去:

「我想对 AIO 平台的用例查询接口做压测,大概有 200 个并发用户,要求 P95 在 500ms 以内」

这就够了。P01 会自动解析接口信息,提取业务场景,识别链路关系,发现缺失字段。

第二步:回答 P01 的补充问题

Skill 会先做前置条件检查,确认 7 项基本条件是否就绪:

任何一项不满足,P01 直接建议暂停,不让你在一个有问题的基础上继续往下走。

检查通过后,P01 会追问几个关键问题:

第三步:拿到输出文件,直接用

P01 不再强制输出 4 个文件,而是根据场景自动判断输出数量:

图片

输出文件说明:

① 需求澄清文档(主文档)
模块固化成 10 大固定章节,编号 ①~⑩,不得遗漏、不得调换顺序:

① 项目基本信息(含 plan_id 命名规范)→ ② 压测目标分类(4 类目标说明)→ ③ 压测范围(接口清单 + 链路拓扑 + 参数场景 + 异常场景)→ ④ 负载模型(按目标类型自动选择)→ ⑤ 全量 SLA 指标 → ⑥ 环境说明(含差异折算)→ ⑦ 验收标准 → ⑧ 前置风险 & 待确认项 → ⑨ 业务约束 → ⑩ 历史基线

文档里最有价值的三个地方:

SLA 推荐值表,业务方说不出 SLA 时,把这个表甩过去。

场景类型测试环境 P95生产环境 P95错误率
简单查询(单条)≤ 300ms≤ 200ms≤ 0.1%
列表查询(普通分页)≤ 800ms≤ 500ms≤ 0.1%
列表查询(大数据分页)≤ 1500ms≤ 1000ms≤ 0.5%
游标分页 / 深度分页≤ 2000ms≤ 1500ms≤ 1%
写入操作≤ 800ms≤ 500ms≤ 0.1%
RPC 跨服务调用≤ 1000ms≤ 800ms≤ 0.5%
MQ 异步回调≤ 5000ms≤ 3000ms≤ 1%
文件上传/下载(<10MB)≤ 3000ms≤ 2000ms≤ 1%

测试环境阈值比生产放宽 30%~50%,避免直接把测试指标当生产 SLA 用。

环境差异折算公式:测试环境 2C4G,生产环境 4C8G
  → CPU ×1.8,内存 ×1.2
  → 测试环境 TPS=500 → 预估生产 TPS ≈ 500 × 1.8 × 1.2 ≈ 1080负载默认值规则——业务方只给并发不给时长时,P01 自动填充:

压测类型默认持续时长Ramp-up 默认规则
基线测试5 分钟ramp-up = 并发数 / 5(秒),最低 60 秒
容量规划每阶梯 5~10 分钟每阶梯 ramp-up = 阶梯并发增量 / 5
稳定性测试12 小时ramp-up = 总并发 / 5,最低 5 分钟

② 待确认项清单(防甩锅专用,P0/P1 分级)
P01 自动扫描文档里所有「假设/默认值/未验证」的字段,按风险等级分级:

序号待确认问题风险等级建议确认人
1并发数的数据来源?峰值还是均值?P0产品经理
2P95/P99 及错误率是否与业务方书面确认?P0产品经理
3吞吐量目标 QPS/TPS 是否已确定?P0产品经理
4测试环境数据库/中间件是否与生产同规格?P0运维
5压测是否涉及写操作?数据清理方案?P0开发
6写接口幂等性、事务回滚是否已实现?P0开发
7依赖的外部系统是否参与压测?Mock 方案?P1架构师
8压测时间段是否有业务限制?P1运维
9监控大盘是否已覆盖资源类指标?P1运维
10分页/批量/文件等特殊参数场景是否已对齐?P1开发/产品

P0 项为阻塞项:任何一项未确认,压测不得启动。 这张清单是 P01 最有价值的输出——它把「还没定下来的事」强行暴露出来,不让你带着盲区启动压测。

③ 业务方确认函(可直接转发)

我们计划对 [订单接口] 进行压测,预计 [下周五] 执行,核心接口包括:POST /api/order/create 等 3 个。

需要你确认:
1. 并发数 1000 及吞吐量目标 [X QPS] 是否合理?是否等于业务峰值流量?
2. 响应时间要求 P95 ≤ 500ms / P99 ≤ 1000ms 是否可接受?
3. 压测范围是否完整?参数场景(分页/批量/文件)是否已对齐?
4. 写接口验收标准是否可接受?(库存最终一致性、幂等性、事务回滚正确性)
5. 是否接受测试环境结果作为参考?(测试环境性能约为生产的 60-70%,结果需折算)

请回复:✅ 确认以上内容,可按计划执行  /  ❓ 有以下修改意见:[请填写]

确认函有回复记录,压测完不会有人跳出来说「我当初没同意这个方案」。

④ 需求摘要(一页纸版本)
只保留核心指标,给领导或跨团队同事看,一页 A4 能打完。


版本管控:需求变更怎么办?

plan_id 命名规范:{项目}-{模块}-{接口}-{压测类型}-{日期}-{版本}

示例:aio-testcase-query-baseline-20260605-v1

变更类型版本规则
首次澄清v1.0
需求变更(并发/SLA/范围调整)v1.1 → v1.2
重大变更(压测目标类型改变)v2.0

每次变更保留历史版本,plan_id 同步更新。如果下游 perf-readiness-checker 就绪检查失败,发现是需求理解偏差,可以回流 P01 重新澄清,版本号自动递增。


完整示例:AIO 平台用例查询接口

你的输入:我想对 AIO 平台的用例查询接口做压测,大概有 200 个并发用户,要求 P95 在 500ms 以内perf-requirement-clarifier会根据需求复杂度输出2个文档或者4个文档。

图片

以上实操案例需求摘要文档如下:

需求澄清文档:

业务方确认函:

典型节省:3.5h(主要是来回沟通的时间)


P02 测试计划 — perf-test-planner

第二节计划阶段的坑——场景参数凭感觉、压测机资源没估算、数据量没评估,P02 逐一解决。输入:P01 的需求澄清文档 / 直接提供的压测参数输出:
• 场景参数推导规则:根据目标并发和 QPS 自动推导线程数、Ramp-up、持续时间
• 场景组合推荐:单接口基线 → 混合场景 → 极限容量 → 稳定性,四段式递进
• 压测机资源估算:根据目标并发和协议类型估算需要的 JMeter 节点数
• 数据量风险评估:计算并发 × 持续时间需要消耗多少数据,提前预警数据耗尽
• 数据预热环节:明确是否需要数据预热,避免冷缓存导致 RT 虚高
• 基线对比计划:本次压测和哪个版本对比,口径提前对齐


P03 数据构造 — perf-data-builder

P03 解决的是第二节里没展开的问题:造数据慢、参数化 CSV 手工拼、数据量不足导致压测中途数据耗尽。输入:数据库表结构 / 接口文档 / 数据量需求输出:
• DDL 模式:直接生成 INSERT SQL,按表依赖顺序批量造数据
• 接口模式:生成 CSV 参数化文件 + 配套请求体模板,直接喂给 JMeter
• 数据量计算公式:按并发 × 持续时间 × 去重系数自动计算需要造多少条数据


P04 就绪检查 — perf-readiness-checker

P04 解决的是第二节执行阶段的前置问题:环境不稳定、监控没配、脚本跑不通,导致压测中途中断或结果失真。输入:环境信息 / 脚本文件 / 监控配置 / 数据准备状态输出:
• 4 大维度 34 项检查清单:环境维度(服务状态、数据库连接、网络连通)/ 脚本维度(参数化、断言、关联提取)/ 监控维度(JMeter 监听器、服务器监控大盘、日志采集)/ 数据维度(数据量、数据分布、脏数据)
• 环境问题排查思路:检查项不通过时,给出具体的排查步骤和常见根因


P05 JMX 脚本 — perf-jmx-generator

P05 解决的是工具层面最耗时的事:在 JMeter GUI 里手动配置场景、断言、参数化,一个场景配半小时,还容易配错。输入:接口列表 / 参数化需求 / SLA 指标输出:
• 场景模板库:查询类、下单类、登录类、搜索类——每类带推荐的线程组配置
• 完整 JMX 文件:包含线程组、HTTP 请求、断言(响应码 + 业务码 + 响应时间)、参数化、监听器
• 参数化配置:CSV Data Set Config + 变量引用,直接可用
• 跨平台 Prompt 模板:复制到 Cursor / Trae 也能生成同样质量的脚本


P06 报告分析 — perf-report-analyzer

P06 解决的是压测完成后最头疼的事:JMeter 报告 20 多列指标不知道先看哪个,瓶颈定位靠猜,优化建议写不具体。输入:JMeter 聚合报告 / 服务器监控数据 / 应用日志输出:
• JMeter 报告解读:哪些指标异常、异常程度、优先级排序
• 瓶颈定位决策树:按 TPS/RT/错误率/资源占用四象限定位,缩小到具体组件
• 根因分析:数据库慢查询、GC 停顿、线程阻塞、连接池耗尽——给出具体判断依据
• 优化建议:每个瓶颈给出 2~3 个优化方向,带预期收益估算


P07 报告生成 — perf-report-writer

第二节报告阶段的三个坑——报告结构不统一、容量评估不会写、基线对比漏掉——P07 逐一解决。输入:P02 测试计划 / P06 分析结论 / 压测原始数据 / 监控数据输出:
• 10 大模块标准结构:基本信息 → 测试概述 → 环境 → 场景 → 结果 → 瓶颈 → 容量 → 基线对比 → 结论 → 附件
• 三种报告类型:标准性能测试报告 / 性能回归报告 / 性能验收报告,按需选择
• Pass/Fail/Pass with risk 判定:基于 SLA 自动判定,不模棱两可
• 容量评估:当前配置下最大支撑并发数、建议扩容方案
• 基线对比表格:本次 vs 历史版本,TPS/RT/错误率变化一目了然
• HTML 可视化报告:暗色主题、指标卡片、趋势图表,直接发邮件或贴 Wiki


Skill协作链路

这 7 个 Skill 不是孤立的工具,它们构成一条完整的协作链路:


核心设计逻辑:前 5 项聚焦压测前置筹备,后 2 项负责压测后数据分析,压测执行环节始终由人操控 JMeter。压测流量直连业务服务,启停、监控、终止必须人工决策;AI 只负责标准化产出,不接管实操。


专栏内容

这个专栏共 10 篇,结构如下:


专栏特色

  1. 工具导向,摒弃空谈原理:不讲空洞性能理论,聚焦落地提速、避坑实操;
  2. 量化数据,落地可算 ROI:每篇附带工时、产出数据,方便测试团队核算投入收益;
  3. 轻量化 AI 落地:无浮夸 AI 营销话术,全部依托真实项目沉淀方案与模板。

总结

性能测试是测试工程师进阶的必经之路,也是最容易被低估的环节。

很多团队的做法是:开发说”压一下”,测试就随便写个 JMX 跑一跑,出了个 TPS 数字就交差。但这种做法的产出只有一个数字,对系统能撑多少、瓶颈在哪、怎么优化——没有回答。

好的性能测试应该输出三个东西:

1. 能不能撑住:在当前配置下,目标并发能不能稳定跑完,SLA 是否达标

2. 瓶颈在哪:CPU、内存、IO、网络、数据库、代码,到底哪个是短板

3. 怎么优化:针对瓶颈给出具体的优化方向和预期收益

这 7 个 Skill 就是围绕这三个输出设计的:P01~P02 确保「能不能撑住」有客观依据;P03~P06 确保「瓶颈在哪」能定位到具体组件;P07 确保「怎么优化」能写进正式报告交付给业务方。

Skill 不能替代你对业务的理解和技术判断,但能把 92% 的准备工作时间压缩到 30% 以下,让你把时间集中在真正有价值的事情上。

下一篇我们讲讲如何用skill做性能测试的测试计划。

声明:来自AI应用案例库,仅代表创作者观点。链接:https://eyangzhen.com/8521.html

AI应用案例库的头像AI应用案例库

相关推荐

添加微信
添加微信
Ai学习群
返回顶部