AI 赋能性能测试:全流程辅助 Skill 实践方案.....
传统性能测试从需求梳理、脚本编写、压测配置到结果分析,整套流程环节繁杂、落地周期长,对测试人员经验门槛要求偏高。因此,我尝试使用AI 能力搭建全流程性能测试辅助方案,配套自研的全套Skill;有性能落地经验的同学,可基于这套技能,结合自身项目的压测规范二次改造适配,没经验的测试新手也能参考方案理顺完整压测逻辑。下面就带大家一步步拆解落地实践。
整体流程

整套方案覆盖需求梳理、测试计划制定、测试数据构造、压测执行、报告分析等全环节,流程中保留必要的人工校验节点,整体使用下来,是有一定的效率提升。
实操步骤
1、Skill下载
解压后,放在自己的skills目录下

Skill介绍

2、需求澄清
输入:

这里可以上传接口文档、需求文档、或产品提供的一些压测要求等都可以。我这里以接口文档为例。
AI输出:

这里分析了提供的接口文档,之后提供模板向你确认你想要进行的压测目标、范围以及压测的要求等
我这边按照AI提供的建议,重新输入了一版我的要求,我调整了我的压测持续时间,不需要那么长,期望3分钟内处理完即可,具体输入如下:
plan_id: demo-shop-api-baseline
压测目标: baseline
压测范围: P0下单链路
SLA: P95 <= 500ms,P99 <= 1000ms,错误率 <= 1%,目标吞吐 50 QPS
负载规模: 并发线程数 50,持续 3分钟,ramp-up 1 分钟
验收标准: P95/P99/错误率全部达标,且无明显库存扣减异常
AI输出两份文件:

内容有:基本信息、压测范围、SLA与负载目标、负载模型、验收标准等,基本上都是自然语言&中文的方式,目的就是提供给人类查看,能够更加容易理解和阅读
2、生成计划
在生成完需求澄清文档之后,下一步就是生成基础计划
输入:

会生成两份文件

md文件的内容,在实际的使用过程中,我们直接这份即可,逐一确认计划是否满足我们压测的要求

3、造数据
在压测的过程中,数据是十分关键的一环,那么这里,我们也可以利用AI进行数据的制造,主要提供两种方式,分别是:
1、提供数据库表结构进行制造;2、通过接口进行制造
输入:

AI输出:

AI会进行提问和咨询
方式一: ddl
我选择A,之后有相关的其他问题

AI输出:

我的输入:我将我相关的表提供给它

AI输出:生成了三个文件,分别是insert.sql文件、删除sql文件、以及一个提供给jmeter执行使用的csv文件

之后,可以将insert.sql文件在mysql中进行执行,之后进行下一步的处理
方式二:接口造数(另外一种方式)
另外一种造数方式,如果已经使用了方式一,则可以不需要执行这一步了

生成文件:
1、造数手册

2、造数脚本

3、清除数据手册

执行脚本

执行成功,数据正常创建

4、压测就绪检查
在造数完成之后,可进行环境的检查,如:
1、jmeter是否存在
2、数据是否准备周全
3、其他事项是否准备好


5、生成jmx脚本
输入:

输出:

6、jmeter导入脚本
确认完解析没问题之后,打开jmx文件

导入后效果

这里可以检查一下参数的内容,可以配合着生成的JMX-EXPLAIN.md文件进行阅读
也可以自己添加结果树和汇总报告

7、执行脚本
确认没问题之后,点击启动

最终会生成一个报告结果,可以将其复制到项目中

8、报告分析

输出结论

总体指标:

失败和瓶颈定位

9、可观测分析
如果具备这些数据的话,可以提供给该skill,分析的效果会更好
应用:P95/P99、error rate、GC pause、线程池、连接池
主机:CPU、内存、磁盘 I/O、网络
数据库:慢 SQL、连接数、锁等待
时间同步:压测机和服务机 NTP 对齐(非常重要)
之后执行该skill

输出报告:

可以分析出原因,并且将报告给到开发,让开发使用其进行分析和性能优化
小结
本文内容较长,也花费了较多的时间去进行实践,目的是想要我们在实际压测的流程中,在各个环节中进行提效,当然,如果有一些定制化的要求的话,也可以基于当前的skill做优化和调整,希望能够帮助到你

浙公网安备 33010602011771号