性能测试执行:
1)同时几千万人同时访问接口,看看页面访问时间,页面是否可正常展现
2)比如说对于这个登陆注册的接口,设计千万个注册登录的接口,看是否页面可以正确的展现,造成服务器负载压力过大;
一)常见的性能问题:
1)系统的内存泄漏或者是资源泄露,分配的内存无法回收或者是忘记回收内存从而导致不停的分配内存,耗尽了内存,从而导致系统运行越来越慢,最终导致系统崩溃
2)线程阻塞,线程死锁,导致系统程序无法继续向下执行
3)查询列表展示的速度越来越慢,刷新页面,软件各个功能的响应时间,页面加载时间和按钮反应时间,页面跳转时间
4)CPU的利用率达到了100%,最多只能占有70%,以及各种资源,内存资源,磁盘资源,网络资源,带宽资源,
5)弱电,弱网以及各个功能使用时候的耗电量
二)为什么要进行性能测试
1)进行基准的性能测试,获取到新系统性能的基准性能指标,比如说开发新功能不能影响到老功能的性能,所以我们需要先知道老功能的性能指标;
2)测试系统是否满足了系统的性能需求,就是是否达到了系统所进行期望的性能指标
2.1)看看系统是否可以进行预期的并发用户数量或者有一定盈余的能力(保证系统在任何情况进行稳定运行)
2.2)看看系统是否能够达到要求的性能指标
2.3)系统是否可以处理预期的事务数量
2.4)系统在预期和非预期的情况下,都是可以稳定的运行的
2.5)系统在任何情况下,用户都会有良好的体验
3)当系统出现性能问题的时候,可以找到系统的性能瓶颈
4)进行性能测试的时候,可以帮助我们的系统规划硬件设备
三)系统性能测试的流程:
1)先知道系统的性能需求:根据性能需求分析出系统性能指标的要求,要量化
2)根据性能需求分析出来的进行性能测试的类型,要确定性能场景,必须知道是进行压力测试还是并发测试,还是可靠性测试,因为不同的测试场景对时间和实际负载是不一样的
3)运行我们的性能测试场景,得出性能测试报告
4)根据性能测试报告找到系统性能测试的瓶颈
四)如何确定性能测试的需求来确定性能测试的指标
1)关键性能指标的分析
1)要支持2亿用户中的1%在线
1.1)所以同一时刻200万用户同时在线,所以说至少要支持200万用户的并发量
1.2)还要支持200亿用户的支持增删改查操作,响应时间低于1s
2)既然每天都支持2000万的次交易,时间在早上的8点到晚上的2点,所以说这个操作系统每秒钟支持的交易次数是(2000W/16*3600=309次/s)
3)高峰期:因为题干已经说了,高峰期系统的处理能力要求是平均值的三倍,所以会支持6000万次交易量,并且响应时间要在3s内,交易成功率(HTTP请求的成功率)不能低于99.9%
2)关键业务分析,分析可能会影响到系统整体性能的功能模块
1)关键业务就是用户频繁使用的业务,比如说淘宝打开首页,搜索商品比较多,用的比较少的功能比如说收藏商品
2)计算量比较大的业务,比如说支付功能,支付卷功能,后台的计算量是很大的
五)衡量软件性能的四个维度
1)软件开发人员
系统架构:架构设计是否合理?
数据库设计:数据库设计是否存在问题,数据查询太慢,索引设计不合理会影响性能
算法:核心算法效率是否高?占用内存之间和速度执行方面取一个综合的值
设计和代码:系统资源分配不合理的问题2)系统运维人员(操作系统、网络、服务器等等)
系统容量以及系统长期的稳定运行,服务器及各种资源分配是否合理,增加服务器
3)用户体验:越快越越好,响应时间快还有稳定提供有效的数据
4)测试人员:以上都要进行考虑
常见误区:
1)性能测试独立于功能测试:一般是在功能测试稳定之后再来进行性能测试,一个功能本身就不稳定,那么当有多个用户进行并发访问的时候肯定就玩完了
2)性能测试通常是在功能测试完成的中后期,等到功能测试稳定之后再来进行性能测试