小A接到个网站设计需求,由于是感兴趣的领域,拿到手可开心了。哼哧哼哧画了好几天原型,又拿着菜刀架在开发脖子上猛干了几天,终于在一个月黑风高的晚上上线了这个网站。
至今,被采访的小A都表示“现在就是后悔,非常后悔,怎么就没盯下性能测试呢?”为了避免过早和小A合伙送外卖,我们一起来学习下性能测试吧。
01什么是性能测试?
性能测试是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
在产品上线前,我们无法知道用户数量,而且用户场景也存在不确定性,一旦用户多了就可能整出各种幺蛾子,所以需要进行系统性能测试。
性能测试可以告诉我们用户数量增加、系统负载增加时,系统能承受的并发用户数量,以及带宽是否够用、cpu是否够用、内存是否够用、硬盘速度是否跟得上等问题。
02性能测试测什么?
性能测试的类型和划分网上有很多定义,我这取比较常见的几个
1.外部指标
可以看出一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降。
05测试报告长啥样?
1.测试概述
1.1测试目标
本次测试的目的在于探查XXX项目二期重构环境的系统业务处理性能,以及在高负载情况下的系统表现。
1.2指标和术语
描述本次测试中涉及到的性能指标术语
2.环境、工具
2.1测试环境
服务器:
客户机:
2.2测试工具
3.测试方案
3.1测试类型
本次性能测试将主要采用以下几种测试类型:
3.2业务模型
针对系统接口,究竟哪些需要被纳入压测范畴?不同事务应该以何种比例被调用,这是需要建模设计的,也是性能测试的难点之一。
通过对于项目架构和业务场景分析,设计以下业务模型进行模拟和测试:
场景1:简单业务场景
场景2:混合业务场景
3.3加密验签处理
由于系统对于所有事务请求都进行了加密验签处理,因此在本次性能测试中,需要对请求报文进行一致的加密和签名。处理逻辑如下:
3.4压力梯度
对于3.2所述场景,分别进行梯度加压,从100并发开始,每次递增100并发数,直至到达系统瓶颈。
4.测试结果
4.1聚合报告
场景1-10并发-循环5次
场景1-500并发-循环1次
场景1-550并发-循环1次
4.2系统吞吐量
场景2-450并发-循环10次
4.3资源占用率
最优负载条件下:CPU使用率
内存占用率
磁盘使用率
5.分析和建议
5.1测试结论分析
经过多次测试和数据报表分析,可以得出如下结论:
5.2问题
测试过程中发现了如下显著问题:
作者:阿宅的产品笔记;公众号:阿宅的产品笔记
本文由@阿宅的产品笔记原创发布于人人都是产品经理。未经许可,禁止转载。