性能测试规范神州数码系统集成服务有限公司2018年10月目录1概述..............................................................................................................................................31.1编写目的...........................................................................................................................31.2适用范围...........................................................................................................................32性能测试指标..............................................................................................................................32.1响应时间............................................................................................................................32.1.1定义.........................................................................................................................32.1.2测试方法.................................................................................................................42.1.3分析评估.................................................................................................................52.2TPS(QPS)、并发用户数...............................................................................................72.2.1定义.........................................................................................................................72.2.2测试方法.................................................................................................................72.2.3分析评估.................................................................................................................82.3请求成功率........................................................................................................................92.3.1定义.........................................................................................................................92.3.2测试方法.................................................................................................................92.3.3分析评估.................................................................................................................92.4CPU使用率、内存使用率、IOWAIT.............................................................................92.4.1定义.........................................................................................................................92.4.2测试方法...............................................................................................................102.4.3分析评估...............................................................................................................112.5GC.....................................................................................................................................112.6进程级别的资源占用......................................................................................................111概述1.1编写目的本文档在对性能指标的概念、测试及分析方法、评判标准以及工具的使用进行说明,旨在指导性能测试工程师更好的理解各个性能指标,并对系统的性能质量做出准确的评价和分析。1.2适用范围本规范适用范围:性能测试、性能调优和性能验收活动。2性能测试指标2.1响应时间2.1.1定义响应时间通常是指客户发出请求到得到响应的整个过程所耗费的时间,通常被定义TTLB(TimetoLasterByte),代表从发起一个请求开始,到客户端收到响应的最后一个字节所耗费的时间。响应时间根据所耗费的时间段可以做细致的拆解,我们可以把它拆解为三部分,系统处理时间、数据传输时间、呈现时间(Web页面特有,接口类请求无呈现时间),每个部分的时间消耗影响的因素有所不同。呈现时间:主要是浏览器对接收到的数据渲染展示的过程,呈现时间不止于浏览器有关,和操作系统、电脑的硬件配置也有关系。数据传输时间:请求、响应数据在网络中传输消耗的时间,和网络的时延、带宽有关系。系统处理时间:系统接收到请求后,对请求处理,并将结果返回的时间,和系统服务器的软硬件配置有关系。2.1.2测试方法一、测试前提1)前提一:性能测试中响应时间的测试,需要保持一个稳定的网络环境。不建议在办公网络中搭建“施压设备”,不稳定的办公网络环境会影响对测试结果的评判。建议在以下两种环境下测试:①施压设备与被测系统在同一局域网中,更能够排除网络情况对响应时间的影响,能够更准确的衡量“系统处理时间”。②施压设备和被测系统在不同的机房环境中通过公网测试,这种场景更能准确的模拟并评估系统在生产环境中的表现。测试工程师可以根据测试的目的,选择后两种环境进行测试。2)前提二:确定一定的并发量来测试响应时间最优并发用户场景、最高并发用户场景两种场景测试,响应时间的表现是不同的,最高并发场景的响应时间将会比最优并发的响应时间大得多,测试前我们需要确定我们测试的场景是最优并发还是最高并发。二、测试步骤1)找到最高的吞吐量(TPS)。测试前确定一个响应时间的标准(如:小于100ms),然后进行基准测试,通过虚拟并发用户数为1的方式测试,记录测试的TPS、响应时间测试结果,将该响应时间与标准比较,若大于标准响应时间,那么则说明系统有问题无法满足标准,若该响应时间小于标准时间,则继续下面的测试。通过压力测试找到最大的吞吐量:在基准测试响应时间的限制下,找到系统最大的吞吐量(TPS),该状况下响应时间满足要求、吞吐量最大,可确定为“最佳并发用户数”。方法是按照一定的步长,不断增加虚拟并发用户数,直至响应时间超过限制、吞吐量不在增长、任意节点资源使用率超过要求(如:70%)。2)负载测试:保持最大吞吐量,执行负载测试,持续30分钟,记录测试TPS、响应时间测试结果。3)稳定性测试:保持最大吞吐量,执行稳定性测试,持续3*24小时,记录测试TPS、响应时间。三、测试对象的分类1)接口接口类响应时间只包含数据传输时间、系统处理时间,不包含呈现时间,ApacheJmeter支持该类响应时间的统计,共有min、max、avg三种统计结果,分别代表最小、最大、平均值,其他的性能测试工具均有对接口类响应时间的精确统计。2)Web页面有3种方法可以统计Web页面的响应时间:①浏览器抓包工具统计页面响应时间②录屏软件抓取屏幕计算响应时间③JS打点统计页面响应时间。注意:目前还无法通过大量并发访问的采样统计页面的响应时间,在通过浏览器测试Web页面响应时间时,要确保通过Jmeter对系统相对应接口保持一定压力的并发用户访问(通常在最优并发下测试)。2.1.3分析评估一、Web页面响应时间分析遵循258原则在互联网上对于用户响应时间有一个普遍的标准(2/5/8原则),一般认为响应时间超过5s是系统是需要优化,如果超过8s是不可接受的。2s之内响应被认为非常有吸引力的用户体验。5s之内响应被认为比较不错的用户体验。8s之内响应被认为非常糟糕的用户体验。超过8s没有响应,用户通常认为请求失败。需要特殊说明的一点,对于用户来说,响应时间是否被接受带有一定的主观色彩,例如一个系统报表的功能,每个月才会有用户使用一次,那么每次花费1个小时,用户是可以接受的,但是一个常用的登录按钮提交1分钟后才返回登录成功,我们也难以接受。因此响应时间的“长”和“短”并没有绝对的定义,合理的响应时间取决于用户实际需求,而不能依据测试人员的设想或者标准的硬性规定。二、Web页面响应时间分析评估时需要考虑有无浏览器缓存的两种情况Web页面响应时间测试,要分为浏览器有缓存和无缓存的两种情况(无缓存的情况由于资源的下载响应时间会稍长),一般通过有浏览器缓存的场景的结果表现来评估响应时间对用户体验的影响。三、接口类响应时间,参考系统需求规格定义评估最优并发情况下,性能测试结果平均响应时间不得高于系统需求规格定义。建议:需求规格的定义,单接口响应时间应小于100ms。响应时间的标准一般定义:99.9%响应时间必须在100ms以下(非平均值,99.9%取样响应时间均在100ms以下)或者平均响应时间在100ms以下,目前工具只能统计平均响应时间指标。四、响应时间与历史版本比较当前系统实测响应时间的指标不得高于历史版本的实测结果。注意:两者的测试结果的比较,一