1、性能测试目的
验证软件系统是否能够达到用户提出的性能指标,同时发现性能瓶颈,优化软件,起到优化系统的目的。主要包括以下几个方面:
(1)评估系统能力:测试中得到的负载和响应事件数据可以被用于验证所计划的模型的能力,并帮助做出策划。
(2)设别系统中的弱点:受控的负载可以被增加都一个极端的水平,并突破它,从而暴露体系的瓶颈或薄弱的地方。
(3)系统调优:调节系统瓶颈,并重复运行测试,使其符合预期结果。
(4)验证稳定性和可靠性:在一个生产负载下执行测试一定事件时评估系统稳定性和可靠性是否满足要求的唯一方法。
2、性能测试分类
性能测试分为基准测试、负载测试、压力测试、并发性测试、疲劳强度测试、大数据量测试、配置测试
(1)基准测试也叫单用户测试,测试环境确认后,对业务模型中主要业务单独的测试,获取单用户运行时的各项性能指标,为多用户并发测试和综合场景测试等性能分析提供参考依据。
(2)负载测试,在保证系统正常运作下,不断增加负载,确认系统各种负载下的各种表型。
(3)压力测试,在负载测试的基础上,继续增加负载,直到系统出现瓶颈或不能接受的性能点,来获取系统能提供的最大服务级别的测试。
(4)并发性测试的过程,是一个负载测试和压力测试的过程,即逐渐增加并发用户数负载,直到系统的瓶颈或不能接受的性能点出现。
(5)疲劳强度测试,通常是采用系统稳定运行的情况下能够支持的最大并发用户数或者日常运行用户数,持续执行业务一段时间,通过综合分析交易执行指标和资源监控指标,来确认系统处理最大工作量强度性能的过程。
(6)大数据量测试,通过构造海量数据来验证系统是否能正确执行。
(7)配置测试,通过测试找到系统各项资源的最优分配原则,产生的结果是系统生产环境参数配置的重要依据,通过测试不断调整应用服务器的各项参数,达到较好性能。
3、性能常见指标概念
(1)并发用户数是在同一时刻与服务器交互的在线用户数量。一般有两种计算方式
第一种百分比计算:C=n*(5%~20%)
第二种泊松分布:C=nl/T
C平均并发用户数,n使用系统用户数,l平均使用时长,T系统考察时长
最大并发用户数:c=C+3*根号C
(2)请求响应时间:从客户端发出请求到响应的整个过程的时间。
(3)事物响应时间:为了向用户说明业务响应而提出的。
(4)吞吐量:系统单位时间内,处理业务的数量。系统吞吐量越大,说明系统在单位时间内完成的用户或系统请求越多,资源得到充分利用。
(5)TPS:每秒种系统能够处理的交易或事物的数量。
(6)点击率(HPS):体现用户端对服务器的压力。HPS越大,表名服务器的压力越大。
(7)资源利用率:对不同系统资源的利用程度,例如:cpu利用率、磁盘利用率等。
4、获取有效的性能需求
(1)客户方提出:客户方明确提出的需求。
(2)根据历史数据:面向用户的独特产品,可以运行一段时间后,收集资料,再评估系统性能指标。
(3)需求分析与定位:根据需求分析与定位。如幼儿园管理系统,可以统计全省有多少家幼儿园。
(4)参考历史项目或其它同行项目:根据公司同类项目或同行的同类项目考察。
(5)参考其它资料数据:市场上没有类似的产品,只能通过与产品相关的资料中寻找。
(6)分析被测试系统特性:1)旧系统升级通过旧系统的运行数据来确认负载。2)新系统根据系统的设计需求来确定负载。
5、测试点的选取
(1)关键业务
(2)用户常用的功能
(3)访问量大的功能点
(4)占用系统资源较多的功能点
(5)与金钱相关的业务
(6)影响业务主流程的场景
(7)可能造成系统瓶颈的业务流程
6、性能瓶颈分析
查看性能瓶颈是一般是由易到难,如下:
服务器硬件瓶颈(内存、cpu等)>网络瓶颈>服务器操作系统瓶颈(参数配置)>中间件瓶颈(参数配置)>应用软件瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
常见的瓶颈:
(1)硬件瓶颈:一般指CPU、内存、磁盘I/O方面的问题,分为服务器硬件瓶颈、网络瓶颈(局域网不考虑)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、web服务器等)
(2)软件瓶颈:一般指应用服务器、web服务器等应用软件,包括数据库系统。
(3)应用程序瓶颈:一般指开发人员新开发的应用系统(SQL语句、数据库设计、业务逻辑、算法等)
(4)操作系统瓶颈:windows、UNIX、Linux等操作系统。
(5)网络瓶颈:一般指防火墙、动态负载均衡器、交换机等设备。
7、曲线拐点模型
从左到右分别是轻压区、重压力区、拐点区。轻压区响应时间变化不大,进入重压力区呈现增长趋势,拐点区倾斜率增大,响应时间急剧增大。吞吐量稳步增加,直到重压力区趋于平稳,到拐点区急剧下降。资源利用率逐步上升,到重压力区达到饱和状态,趋于平稳。