《《性能测试目的》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《性能测试目的》PPT课件.ppt(37页珍藏版)》请在三一办公上搜索。
1、第二章 软件性能测试目的,1.1 为什么要进行性能测试1.2 性能测试的目标1.3 性能测试的方法,1.1 为什么要进行性能测试,目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。包括以下几个方面:1评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。2识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。3系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露
2、引起的失败,揭示程序中的隐含的问题或冲突。4验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。,1.优化性能2.最小化成本3.最小化风险4.交付高质量的系统,1.2 性能测试的目标,评价系统当前性能寻找瓶颈,优化性能预测系统未来性能,可扩展性,性能测试目标-评价系统当前性能,系统刚刚上线,处于试运行,用户需要确定当前系统是否满足验收要求。系统已经运行一段时间,如何保证能够一直具有良好的运行性能。,性能测试目标-寻找瓶颈,优化性能,用户提出业务操作响应时间长,如何定位问题,调整性能。系统运行一段时
3、间后,速度变慢,如何寻找瓶颈,进而优化性能。,性能测试目标-预测系统未来性能,可扩展性,系统用户数增加时,当前系统是否能满足需求,如果不能,需要进行哪些调整?增加应用服务器?提高数据库服务器的配置?或是需要对代码进行调整?,1.3 性能测试的方法,性能测试(Performance Testing)负载测试(Load Testing)压力测试(Stress Testing)配置测试(Configuration Testing)并发测试(Concurrency Testing)可靠性测试(Reliability Testing)失效恢复测试(Failover Testing),性能测试,1.思想:
4、通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。且其是一种最常见的测试方法,通俗地说,这种测试方法就是要在特定的运行条件下验证系统的能力状况。2.特点:a.这种方法的主要目的是验证系统是否具有系统宣称的能力。(该方法包括确定用户场景、给出需要关注的性能指标、测试执行和测试分析这几个步骤,这是一种完全确定了系统运行环境和测试行为的测试方法,其目的只能是依据事先的性能规划,验证系统有没有达到其宣称具有的能力。),b.这种方法需要事先了解被测试系统典型场景,并具有确定的性能目标。典型场景:具有代表性的用户业务操作 性能目标的描述方式(一般情况):”要求系统在100个并
5、发用户的条件下进行某业务操作,响应时间不超过5秒“。,c.这种方法要求在已确定的环境下运行。(该方法的运行环境必须是确定的。软件系统的性能表现与非常多的因素相关,无法根据系统在一个环境上的表现去推断其在另一个不同环境中的表现,因此对这种验证性的测试,必须要求测试时的环境(硬件设备、软件环境、网络条件、基础数据等)都已经确定),负载测试,1.思想:通过在被测系统上不断增加压力,直到性能指标,例如“响应时间”超过预定指标或者某种资源使用已经达到饱和状态。这种测试方法可以找到系统处理的极限,为系统调优提供依据。在某些情况下,该方法也称为可量性测试。,2.目标:测试在一定负载情况下系统性能。【注:不关
6、注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可】实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载),观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统在不同负载情况下的性能指标。,3.特点:a.这种性能测试方法的目的是找到系统处理能力的极限。实现方式:通过“检测-加压-直到性能指标超过预期”的手段,其主要目的是找到系统处理能力的极限。极限描述方式:“在给定条件下最多允许120个并发用户访问”或是“在给定条件下最多能够在1小时内处理2100笔业务”。预期性能指标描述方式:”响应时间不超过10秒“、”服务器平
7、均CPU利用率低于65%等指标“。),b.这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义。(该方法由于涉及到”预定的性能指标“等需要进行比较的数据,也必须在给定的测试环境下进行。另外,该方法在”加压“的时候,必须选择典型的场景,在增加压力时保证这种压力具有业务上的意义。),c.这种性能测试方法一般用来了解系统的性能容量,或是配合性能调优来使用。性能容量:系统在保证一定响应时间的情况下能够允许多少并发用户的访问。配合性能调优来使用:比较调优前后的性能差异。,压力测试,1.思想:该方法是在一定饱和状态下,例如CPU、内存等在饱
8、和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。目的是找到系统在哪里失效以及如何失效。2.目标:是测试在一定的负载下系统长时间运行的稳定性,尤其关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复),3.特点:a.该测试方法的主要目的是检查系统处于压力情况下,应用的表现。实现方式:通过增加访问压力(例如:增加并发的用户数量等),使应用系统的资源使用保持在一定的水平,检验此时的应用表现。重点:检查有无出错信息产生,系统对应用的响应时间等。,b.该性能测试一般通过模拟负载等方法使得系统的资源使用达到较高的水平。实现方式:一般情况下,
9、会把压力设定为“CPU使用率达75%以上、内存使用率达到70%以上”这样的描述,在这种情况下测试系统响应时间、系统有无产生错误。以下这些都可以作为压力的依据:JVM(Java Virtual Machine,Java虚拟机一个虚构的操作平台)的可用内存 数据库的连接数 数据库服务器利用率等,c.这种性能测试方法一般用于测试系统的稳定性 该方法考察系统的稳定性体现在:如果一个系统能够在压力环境下稳定运行一段时间,那么这个系统在通常的运行条件下应该可以达到令人满意的稳定程度。在压力测试中,会考察系统在压力下是否会出现错误,测试中是否有内存等方面的问题。,负载测试与压力测试的区别:负载测试:在一定的
10、工作负荷下,给系统造成的负荷及系统响应的时间。是测试软件本身所能承受的最大负荷的性能测试;压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。是一种破坏性的性能测试。,性能测试、负载测试和压力测试三者的关系和区别:负载测试和压力测试,都属于性能测试的子集。下面举个跑步的例子进行解释。性能测试,表示在一个给定的基准下,能执行的最好情况。例如,在没有负重的情况下,你跑100米需要花多少时间?(这里,没有负重是基准)负载测试,也是性能测试,但是他是在不同的负载下的。对于刚才那个例子,如果扩展为:在50公斤、100公斤等负载的情况下,你跑100米需要花多少时间?压力测试,是在强度情况
11、下的性能测试。对于刚才那个例子,如果改为:在一阵强风的情况下,你在负重或没有负重的情况下,跑100米需要花多少时间?性能测试是动力,负载测试是载重,压力测试是强度,配置测试,1.思想:通过对被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。2.目标:主要用于性能调优,在经过测试获得了基准测试数据后进行环境调整(包括硬件资源,网络,应用服务器等),再将测试结果与基准测试数据进行对比,判断是否达到最佳状态。,3.特点:a.这种性能测试方法的主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行调优的操作。配置测试(功能测试):是针
12、对软件而言,其主要目的是验证软件能否在不同的软硬件环境中正常运行,其主要是功能上的验证。配置测试(性能测试):是在性能测试领域内的配置测试方法,其主要目的是了解各种因素对系统性能的影响程度,从而判断出对性能影响最大的因素。,b.这种性能测试方法一般在对系统性能状况有初步了解后进行。实现条件:在确定的环境和操作步骤、确定的压力条件下进行。实现方式:在每次执行测试时更换、扩充硬件设备,调整网络环境,调整应用服务器和数据库服务器的参数设置,比较每次测试结果,从而确定各个因素对系统性能的影响,找出影响最大的因素。,c.这种性能测试方法一般用于性能调优和规划能力。性能调优领域:该方法可以实现调优的持续进
13、行。规划能力领域:该方法也常被用来评估“该如何调整才能实现系统的扩展性”。,并发测试,1.思想:通过模拟用户的并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。2.特点:a.这种性能测试方法的主要目的是发现系统中可能隐藏的并发访问时的问题。eg:我们的应用在实验室一切正常,但一交付给用户,在用户量增大以后,就经常会出现各种莫名其妙的问题。解决这类问题的方法:在实验室进行仔细的并发模拟测试。,b.这种性能测试方法主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题。(该测试在测试过程中主要关注系统中的内存泄漏、死锁等问题。下
14、表给出了并发测试主要关注的问题。),c.这种性能测试方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持。该方法可以针对整个系统进行,也可以仅仅为了验证某种架构或是设计的合理性进行,因此其可以在开发的各个阶段使用。一般来说,并发测试除了需要性能测试工具进行并发负载的产生外,还需要一些其他工具进行代码级别的检查和定位。Compuware公司的DevPartner工具,ej-technologie公司的JProfile工具,Quest公司的JProbe工具等可以在这方面发挥作用。),可靠性测试,1.思想:通过给系统加载一定的业务能力(例如:资源在70%-90%的使用率)的情况下,让应用持续
15、运行一段时间,测试系统在这种条件下是否能够稳定运行。注:这里所说的“可靠性测试”并不等同于“获得软件的可靠性”。软件的可靠性是一个很大的课题,我们不能也不打算在这里展开讲解,总而言之,这里的“可靠性测试”仅仅是让软件在大压力环境下运行较长的时间,从而估算系统是否能在平均压力下持续正常工作。,2.特点:a.这种性能测试方法的主要目的是验证系统是否支持长期稳定的运行。从直观上来说,在大的压力下进行一个较长时间的测试,如果系统在测试中不出现问题或是不好的征兆,基本上可以说明系统具备长期稳定运行的条件。,b.这种性能测试方法需要在压力下持续一段时间的运行。既然是稳定性测试,肯定需要至少让系统在压力下运
16、行一段时间。这段时间的具体数值需要根据系统的稳定性要求确定。对一般的非关键的大型应用来说,一般让系统处于可能的峰值压力下,进行2-3天的稳定性测试基本上就已经够了。,c.测试过程中需要关注系统的运行状况。在运行过程中,一般需要关注系统的内存使用状况,系统的其他资源使用有无明显的变化,以及系统响应时间有无明显变化。如果测试过程中发现,随着时间的推移,响应时间有明显的变化,或是系统资源使用率有明显波动,都可能是系统不稳定的征兆,需要重点关注。,失效恢复测试,1.思想:针对有冗余备份和负载均衡的系统设计的,这种测试方法可以用来检验如果系统局部发生故障,用户是否能够继续使用系统;以及如果这种情况发生,
17、用户将受到多大程度的影响。2.特点:a.这种性能测试方法的主要目的是验证在局部故障情况下,系统能否继续使用。(一般的关键业务系统都会采用热备份或是负载均衡的方式来实现。这种业务系统一般要求即使有一台或几台服务器出现问题,应用系统仍然能够正常执行业务。该方法可以在测试中模拟一台或几台设备故障,验证预期的恢复技术是否能够发挥作用。),b.这种性能测试方法还需要指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。(当一台或多台服务器出现问题后,系统一定会受到性能甚至是功能上的部分损失。因此,必须在测试中明确得出“当问题发生时,系统还能支持多少用户的并发访问?是否要采取某些必要措施?”这种问题的明确答案。)c.一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。(不是所有的系统都需要进行这种类型的测试,尤其是并没有明确给出系统持续运行指标的系统。),本章小结:1.掌握性能测试的目标2.理解性能测试中常用的几种测试方法:性能测试、负载测试、压力测试、配置测试、并发测试、可靠性测试和失效恢复测试。,
链接地址:https://www.31ppt.com/p-5510486.html