一个产品经过接口测试,业务测试等一系列测试,看需求是否需要做性能测试,根据综合评估是否达到上线标准。下面是一个比较完整的性能测试流程图。
步骤一:学习项目业务
无论你是做接口测试,功能测试,性能测试,第一步都是熟悉业务,或许有些同学会说:“给我一个接口或者一个功能需求马上就能测试,学习业务?不存在的”,有没有这样的同学?请在评论区自信留言。
步骤二:分析需求
那么性能测试如何去分析需求?一般从以下几个方面进行分析:
1、主要业务流程所涉及到的一些接口;
2、访问量比较大的接口;
3、处理业务逻辑比较复杂的接口,即比较吃CPU的接口(可以问后端开发)。
步骤三:工作评估
因为涉及到后续的性能测试方案,并且性能测试领导一般都挺关心的,所以最好是给她一个进度流,每个节点都需要有明确的时间。
1、首先肯定要申请测试机器,可能很多公司都没有性能测试环境,所以申请机器是需要申请审批采购的时间;
2、部署性能压测环境,比如:用jmeter进行测试,是不是要部署一下,一台机器不够,是不是需要部署分布式压测环境?部署好就能用?是不是还需要调压力机的系统配置?这些时间;
3、部署被测服务器的项目,部署的时间,部署之后能立马测试吗?当然不能,需要进行功能测试,确保没有问题,才可以使用;
4、设计性能测试脚本,在本地进行调试,再上传到压力机;
5、准备铺底数据,如果没有铺底数据,有啥影响?举个例子:一条慢SQL,没有加索引的,进行全表扫描,如果数据库中有铺底数据几十万,那么这条SQL会进行扫表,运气不好会扫几十万条记录,“w c 响应时间这么高,去看看网络ping 测试服务器IP,去后台看看资源top,用户态CPU使用率这么高,往下看mysql进程的CPU使用率高,进一步查看慢SQL日志,把SQL语句copy出来,查看执行计划:explain 慢SQL”--这个思路很有用的(有get到的朋友,点个关注呗);如果你没有铺底数据,只有几条测试数据,那么这个性能问题就被隐藏了,“我们公司开发兄弟各个牛X,PASS PASS PASS”,所以铺底数据很重要
6、执行性能测试脚本,定位问题的时间(测试工程师的核心价值体现在这里)
7、提出的问题,需要进行回归测试(是否达到出口标准-CPU80%↓-内存70%↓-响应时间XX↓等)
8、编写性能测试报告(怎么编写啊,不会啊。有我在怎么能让你不会呢?关注我,评论区留言,发你一份完整的性能测试报告,咳咳,还有完整的性能测试用例一份)
步骤四:编写性能测试方案
略(对照模板写)
步骤五:性能测试方案评审
参会人员:运维、后端、测试的部门领导和负责性能测试的人员,当然上不了产品经理,如果你们公司有项目经理,一起叫上呗(刚刚做测试时,我认为项目经理这个职位没啥用,很久很久以前的想法),以上人员一起评估方案的可行性,确认时间节点,分工等。
步骤六:准备工作
我们测试需要做的就是:
1、性能测试脚本设计、调试;
2、测试环境的准备;
3、铺底数据的准备。
步骤七:检查准备工作的内容
步骤八:执行性能测试,分析问题,提交bug(准确来说是瓶颈)
步骤九:编写性能测试报告
未完待续,点个关注,持续更新。。。