《软件测试与质量保证 (33).pdf》由会员分享,可在线阅读,更多相关《软件测试与质量保证 (33).pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2018-6-181软件测试自动化知识点2:性能测试内容性能测试的定义性能测试的指标性能测试的方法性能测试的应用2018-6-182什么是软件性能性能是一种指标,表明软件系统或者构件对其及时性要求的复合程度,性能又是软件的一种特性,可以用时间来进行度量比如响应时间3性能测试定义性能测试就是通过使用自动化的测试程序或者测试工具模拟系统软件多种正常、峰值以及异常负载条件来对系统的各种性能指标进行监控、分析和验证,进而判断系统软件在各种模拟条件下能否正常运行和做出合理的反应,从而判定软件在正式交付使用之后的工作能力。性能测试的目的是检测系统在一定的工作环境中,能否达到预期的性能要求,同时发现软件系统
2、中存在的系统瓶颈,提出软件优化建议,最后起到优化软件性能,使软件能够安全、可靠、稳定运行。性能测试通常是在功能测试之后进行的。常见的性能测试指标响应时间吞吐率 资源利用率业务成功率 负载每秒点击数(HPS)每秒事务数(TPS)注册用户数在线用户数并发用户数1.响应时间定义:响应时间指的是从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。响应时间通常用时间单位来衡量秒(seconds)或者毫秒(milliseconds)在某些工具中,响应时间通常会称为“TTLB”,即“time to last byte”,意思是从发起一个请求开始,到客户端收到最后一个字节的
3、响应所耗费的时间。响应时间 vs 负载图形中的拐点:表示响应时间突然增加意味着一种或者多种系统资源的利用达到了极限响应时间达到瓶颈例如:很多Web服务器可以设置固定数量的threads来处理用户同时发出的请求。当这些并发的请求数量超过当前有效的threads数量时,任何新到的请求将会被放入一个队列中等待系统的处理。这个在队列中等待的时间将会使响应时间大大的增加。响应时间的分解响应时间=网络响应时间+应用程序响应时间网络响应时间指的是数据从一个服务器到另一个服务器在网络上传输所需花费的时间。应用程序响应时间指的是服务器处理数据所需花费的时间。响应时间=(N1+N2+N3+N4)+(A1+A2+A
4、3)2.吞吐量定义吞吐量指的是单位时间内处理的客户端请求数量。通常情况下,吞吐量用 请求数/秒 Or 页面数/秒来衡量。从业务角度看,吞吐量也可以用访问人数/天 Or 页面访问量/天 来衡量。吞吐量 vs 负载3.资源利用率定义资源利用率指的是对不同系统资源的使用程度,例如服务器的CPU(s),内存,网络带宽等。资源利用率通常以占用最大值的百分比来衡量。资源利用率一般可以在操作系统下的性能计数器来实时表征出来,不如内存数量、进程时间等性能计数器,这些只是单一性能计数器,而性能测试需要基于多性能计数器资源利用率 vs 负载性能瓶颈当某个资源利用率随着负载的增加最终在100%居高不下时,就可能意味
5、着这个资源变成了系统的性能瓶颈所在。提高这个资源的量,将会提高系统的吞吐量,同时降低交易的响应时间,即改进了系统的性能。当你要衡量或者测试的某个资源总是无法达到100%的利用时,很有可能这时其他的某个或者某些资源已经达到了最大的使用率。它们已经变成了系统的性能瓶颈定位瓶颈的所在,是一个漫长而又艰苦的过程 不能孤立的看问题性能瓶颈分析现象:响应时间骤增到45秒,但是CPU的利用率只达到60%。说明:如果在测试中单独的观察CPU或者是内存的利用率,对于分析定位性能瓶颈是没有什么帮助的。应用程序的负载绝大部分的传统应用程序是针对单个用户的,而现在的Web应用程序都是被设计来能够支持大量的并发用户。性
6、能测试已经成为部署Web应用程序及其他类似程序的不可或缺的步骤。性能测试类型负载测试:确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,如响应时间、CPU使用、内存的使用等来决定系统的性能。压力测试:通过确定系统的瓶颈或不能再接收的性能点,来获得系统能提供的最大服务级别的测试。负载测试与压力测试示例负载测试示例:测试登录邮箱系统,先用10个用户登录,再用15个,再用20个,不断增加并发用户数,检查和记录服务器的资源消耗情况,直至达到临界值(假如CPU占有率限为90%,内存占用率限为80%),停止增加并发,这个测试活动属于负载测试的范畴。压力测试示例:在临界值
7、的基础上,继续施压(即增加用户数),检测软件崩溃前的极限值,即测试系统所能承受的最大压力。性能测试类型疲劳测试,又叫疲劳强度测试测试系统稳定运行情况下,能够支持的最大并发用户数。即,被测系统持续运行一段时间,能够支持的最大并发用户数示例接前面登录邮件系统例子,通过负载测试,我们得到了服务器资源在合理范围内的最大并发用户数,然后我们保持这个并发用户数让系统运行一段时间,看服务器资源是否仍在合理范围,这就属于疲劳测试的范畴。并发性能测试并发性能测试包括负载测试、压力测试和疲劳测试通过并发性测试,我们通常可以得出类似这样的结论:测试组针对某软件的某个业务进行了并发行测试得出结论:系统能够承受多少个并
8、发用户持续运行多长时间的疲劳压力,基本能够稳定运行。性能测试的应用领域系统的负载能力规划系统的性能瓶颈确认与调优软件缺陷修复系统能力规划应该如何使系统具有我们要求的性能能力比如:系统能否支持未来一段时间内的用户增长用该如何调整系统配置,使系统能够满足增长的用户数要求系统存在的问题场景在要求平均响应时间小于5秒的前提下,你如何判断系统是否能够支持200万用户/天的访问量?如果你的公司计划在将来的两个月内把业务量提高200%,你如何判断公司的Web应用系统是否需要升级服务器的配置或者是增加服务器的数量?你的网站系统在每个月的纳税期高峰日中,能够承受往常6倍的访问量吗?系统能力规划方法一:负载测试使
9、用测试环境模拟不同程度的负载,收集系统在不同程度负载下的表现情况,依此来了解系统的能力(不同负载级别时的响应时间、吞吐量和资源利用率)。方法二:配置测试在不同硬件配置的情况下对系统进行负载测试。例如CPU数量为1,2,4,6。根据测试结果,确定系统各个参数的最优性能调优性能调优是调整系统的参数和实现方法,使得系统在最优的状态下运行系统的问题场景当系统的用户访问量在不断的快速增加时,运营小组该怎么办?通常的解决方法升级服务器的硬件,换成更快、更大的机器。增加服务器的数量。科学的方法是:对系统和应用程序进行仔细的调优,以提高响应时间、吞吐量和资源利用率的性能指标。对于单个用户的响应时间,1秒的差距
10、可能不显著,甚至被忽视。但是对于一个不间断的被成百上千用户同时访问的服务器来说,每个用户的响应时间都缩短1秒将是非常巨大的区别。性能调优的方法性能调优不仅仅是升级硬件环境,而是要根据性能测试的结果,找到性能瓶颈的所在位置,有针对的调整调优的对象:开发的应用软件系统操作系统平台设置服务器设置调优的方法每次改变一个系统参数或者一个应用逻辑使用固定的负载测试另一个设置之前收集本次性能测试的数据。重复测试过程,直到应用程序的性能达到了期望的状态。缺陷修复通过性能测试的方法来发现修复软件系统的缺陷系统的问题场景某些缺陷只有在高负载的情况下才能暴露出来。例如:内存泄露解决方法负载/压力测试事务资源消耗分析
11、测试缺陷修复步骤第一步:根据用户活动类型定义测试脚本,定义每个测试脚本所占百分比,定义思考时间Think Time(休眠时间,每个请求之间的间隔时间,用来模拟真实用户操作之间的间隔时间)例如:关键字检索11%0s分类浏览 59%1s访问首页 30%5s第二步:使用测试工具执行测试根据应用程序性能和系统配置情况确定虚拟用户数序列50,100,200,300,500,1000预先做短时间测试,估计序列的合适范围第三步:收集测试数据,制作分析图形1、响应时间 vs 负载2、吞吐量 vs 负载3、资源利用率 vs 负载第四步:理解性能状况,找到缺陷位置,修复缺陷事务资源消耗分析测试Transaction Cost Analysis(TCA)把事务和资源消耗联系起来的方法TCA的主要思想是确定一个事务的吞吐量和资源利用率之间的关系TCA的方法针对一个特定的事务进行负载测试在测试的同时收集度量数据根据度量数据计算单元资源消耗成本/单元事务吞吐量根据计算结果,估算针对特定吞吐量目标而需要的CPU能力级别谢 谢29