完整的性能测试流程,详细讲解性能测试
完整的性能测试流程,详细讲解性能测试4.目的【性能测试:不管客户端,只测服务器和数据库】时间特性:表示系统处理用户请求的响应时间【卡和不卡】资源特性:表示系统运行过程中,系统资源的消耗情况。资源包括:CPU、内存、磁盘等【硬件不一样】3.性能测试概念:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估过程
详细讲解性能测试
Ice Scream
性能测试概述1.为什么学习性能测试:满足真实的业务场景(活动场景)、支持大量的用户。满足商用要求
2.性能定义:软件质量属性中的“效率”特性(时间特性和资源特性)
时间特性:表示系统处理用户请求的响应时间【卡和不卡】
资源特性:表示系统运行过程中,系统资源的消耗情况。资源包括:CPU、内存、磁盘等【硬件不一样】
3.性能测试概念:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估过程
【性能测试:不管客户端,只测服务器和数据库】
4.目的
①评估当前系统能力
②寻找性能瓶颈,优化性能
③评估软件是否能够满足未来的需求
5.对比
功能测试:验证软件系统操作功能是否符合产品功能需求规格,主要焦点在功能(正向、逆向)【条件满足和不满足】
性能测试:验证软件系统是否满足业务需求场景【正向】,主要焦点是业务场景的满足(时间、资源)
【一般功能通过后,进行性能测试,后台服务器一堆的都算性能问题,比如网络,不仅仅是开发写的代码】
性能测试策略1.基准测试【参考】
①狭义上:单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。
②广义上:是一种测量和评估软件性能指标的活动。在某个时刻通过基准测试建立一个已知的性能基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
2.负载测试
定义:通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能承受的最大负载量的测试。
3.稳定性测试
定义:在服务器稳定运行(用户正常的业务负载下【以用户要求来,用户要求达不到是bug,先改】)的情况下进行长时间测试(1天~1周等),并最终保证服务器能满足线上业务需求。
作用:系统在用户要求的业务负载下运行达到规定的时间时,系统才能正式上线使用。
负载、处理能力、响应时间变化图:
4.压力测试
定义:在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力。
测试场景:
5.并发测试
定义:并发测试(绝对并发),是在极短的时间内,发送多个请求,来验证服务器对并发的处理能力。
应用场景:抢红包、秒杀、抢购等。【只有这种情况才需要做并发测试,其他情况可以不用做,正常的负载就够了】
性能测试指标1.响应时间【卡不卡】
定义:指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间。
2.并发(用户)数
某一时刻同时向服务器发送请求的用户数
3.吞吐量
指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力。
QPS(Query Per Second)每秒查询数:即控制服务器每秒处理的指定请求的数量
【注意:】QPS的数值没有意义,要基于特定的请求
TPS(Transactions Per Second)每秒事务数:即控制服务器每秒处理的事务请求的数量
事务:即业务,页面上的一次操作,可能对应一个请求/多个请求
4.点击数
指客户端向服务端发送请求时,所有的页面资源元素(如:图片、链接、框架css、js等)的请求总数量。
5.错误率
指系统在负载情况下,失败业务的概率。错误率=失败业务数/业务总数)*100%
6.资源使用率
指系统各种资源的使用情况,一般用"资源的使用量/总的资源可用量×100%"形成资源利用率的数据
性能测试流程1.总体流程
2.需求分析
3.计划和方案
4.测试用例
5.执行
6.分析与调优
7.测试报告
8.总结
性能测试环境最好与生产环境一致;
主流性能测试工具1.Loadrunner
1>简介
①HP Loadrunner是一种工业级标准性能测试负载工具,可以模拟上万用户实施测试,并在测试时可实时检测应用服务器及服务器硬件各种数据,来确认和查找存在的瓶颈
②支持多协议: web(HTTP/HTMT.)、windows Sockets、FTP、ODBC、MS、SQL Server等协议
③采用C语言编写
2>优点
多用户(支持用户以万为单位);详细的分析报表(以秒为单位);支持IP欺骗功能
3>缺点
收费;体积庞大(安装包单位GB);无法定制功能
2.JMeter
1>简介
JMeter是Apache组织开发的基于Java的开源软件,用于对系统做功能测试和性能测试。
它最初被设计用于web应用测试,但后来扩展到其他测试领域,例如静态文件、Java程序、shell脚本、数据库、FTP、 Mai1等。
2>优点
开源免费;小巧(安装包50MB左右);丰富的学习资料和扩展组件
3>缺点
不支持TP欺骗;分析和报表能力相对于LR欠缺精度(以分钟为单位)
对比: