软件性能测试

xiaoxiao2021-02-28  8

  性能测试用来保证产品发布后系统的性能满足用户的需求。性能测试方法是指通过模拟生产环境运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。这种性能测试的特点有:

主要目的是验证系统是否有系统宣称的具体的能力。需要了解被测系统的典型场景(具有代表性的用户业务操作),并具有确定的性能目标。要求在已确定的环境下运行。

性能测试的目标

  性能测试的目标是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈、优化软件,最后起到优化系统的目的,主要包括:

评估系统能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助做出决策。识别体系的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。验证稳定性和可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

性能测试术语

响应时间:指应用系统从发出请求开始到客户端接收到所有数据所消耗的时间。(强调所有数据都已经被呈现到客户端。)并发用户数:指同一时刻与服务器进行数据交互的所有用户数量。吞吐量:指单位时间内服务器处理客户请求的数量,吞吐量通常使用请求数/秒来衡量,并直接体现服务器的承载能力。当系统没有遇到性能瓶颈时,吞吐量=虚拟用户个数*每个虚拟用户发出的请求数/性能测试所用的时间。如果系统遇到性能瓶颈,公式不再适用。通常,吞吐量在增长到一定数量时,软件系统出现性能瓶颈,此时,吞吐量不会随着用户数量的增加而增大,而是趋于平衡。吞吐率:指单位时间内从服务器返回的字节数。也可以指单位时间内服务器处理客户提交的请求数。它是衡量网络性能的一个重要指标。吞吐率的值越大,系统的负载能力越强。TPS:表示服务器每秒处理的事务数,它是衡量系统处理能力的重要指标。点击率:指每秒钟用户向服务器提交的HTTP数量。(如果把每次点击当作一次事务来提交,那么点击率与TPS的概念是等同的。另:客户每点击一次,都会向服务器端发出多个HTTP请求。)资源利用率:指服务器系统中不同硬件资源被使用的程度。资源利用率=资源实际使用量/总的可用资源量。包括CPU,内存,磁盘,网络等。资源利用率是分析系统性能进而改善性能的主要依据。性能计数器:是描述服务器或者操作系统性能的一些数据指标,主要通过添加计数器来观察系统资源的使用情况。性能计数器包括操作系统性能计数器、数据库计数器、应用服务器计数器等。在分析系统的可扩展性和对性能瓶颈进行定位的时候,计数器阈值起着非常重要的作用。思考时间:指用户在进行操作时,每个请求之间的时间间隔。

软件性能测试方法论

SEI负载测试计划过程

  SEI负载测试计划过程是一个关注于负载测试计划的方法,其目标是产生清晰、易理解、可验证的负载测试计划。包括6个关注的区域:目标、用户、用例、生产环境、测试环境和测试场景。重点关注以下部分:

1)生产环境与测试环境不同:由于负载测试环境与实际的生产环境存在一定的差异,因此,在测试环境上对应用系统进行的负载测试结果很可能不能准确反映该应用系统在生产环境上的实际性能表现,为了规避这个风险,必须仔细设计测试环境。

2)用户分析:用户是对被测应用系统性能表现最关注和受影响最大的对象,因此,必须通过对用户行为进行分析,依据用户行为模型建立用例和场景。

3)用例:用例是用户使用某种顺序和操作方式对业务过程进行实现的过程。对负载测试来说,用例的作用主要在于分析和分解出关键的业务,判断每个业务发生的频度、业务出现性能问题的风险等。

RBI方法

  Empirix公司提出的一种用于快速识别系统性能瓶颈的方法,该方法基于以下一些事实:

1)发现的80%系统的性能瓶颈都由吞吐量制约。

2)并发用户数和吞吐量瓶颈之间存在一定的关联。

3)采用吞吐量测试可以更快速地定位问题。

  RBI方法首先访问服务器上的“小页面”和“简单应用”,从应用服务器、网络等基础的层次上了解系统吞吐量表现;其次选择不同的场景,设定不同的并发用户数,使其吞吐量保持基本一致的增长趋势,通过不断增加并发用户数和吞吐量,观察系统的性能表现。

  在定位具体的性能瓶颈时,RBI将性能平静的定位按照一种“自上而下”的分析方式进行分析,首先确定是由并发还是由吞吐量引发的性能表现限制,然后从网络、数据库、应用服务器和代码本身4个环节确定系统性能具体的瓶颈。

性能下降曲线分析法

  性能下降曲线实际上描述的是性能随用户数增加而出现下降趋势的曲线。

  单用户区:对系统的一个单用户的响应时间。

  性能平坦区:在不进行更多性能调优的情况下所能期望达到的最佳性能。

  压力区域:应用轻微下降的区域。典型的、最大的建议用户负载时压力区域的开始。

  拐点:性能开始急剧下降的点。

LoadRunner的性能测试过程

  LoadRunner将性能测试过程分为计划测试(测试需求的收集、典型场景的确定)、测试设计(测试用例的设计)、创建虚拟用户脚本(根据设计的用例创建脚本)、创建测试场景(测试场景的设计和设置,包括监控指标的设定)、运行测试场景(对已创建的测试场景进行执行,收集相关数据)和分析结果(进行结果分析和报告工作)六个步骤。

Segue提供的性能测试过程

  Segue公司SilkPerformer提供的性能测试过程。从确定性能基线开始,通过单用户对应用的访问获取性能取值的基线,然后设定可接收的性能目标,用不同的并发用户数等重复进行测试。逐一找到可能导致性能瓶颈的地方并对其进行优化。

敏捷性能测试

  敏捷开发方法:将开发定义为短时间内的迭代,在每个迭代周期中定义迭代目标,通过轻量级的管理方式管理迭代目标的完成。

  敏捷性能测试特点:

在每个迭代目标中包含明确的性能目标建立不同层次的性能测试完全或接近完全自动化的性能测试使用测试驱动的方法保证性能与优化性能。

转载请注明原文地址: https://www.6miu.com/read-2400325.html

最新回复(0)