什么是性能测试

什么是性能测试

2023年6月29日发(作者:)

什么是性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别

一、概述

性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结能全面的分析和瓶颈的预测。

·应用在客户端性能的测试

试和速度测试等,其中并发性能测试是重点。

并发性能测试是重点

应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能执行指标和资源监控指标来确定系统并发性能的过程。负载测试(LoadTesting)是确定在各种工作负载下系负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(StressTest统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于

当一家企业自己组织力量或委托软件公司代为开发一套应用系统的时候,尤其是以后在生产环境中实际使用起来这套系统能不能承受大量的并发用户同时访问?这类问题最常见于采用联机事务处理(OLTP)方式数据库应用、W统。这种问题的解决要借助于科学的软件测试手段和先进的测试工具。

举例说明:电信计费软件

众所周知,每月20日左右是市话交费的高峰期,全市几千个收费网点同时启动。收费过程一般分为两步,首先要来查询出其当月产生费用, 然后收取现金并将此用户修改为已交费状态。一个用户看起来简单的两个步骤,但当行这样的操作时,情况就大不一样了,如此众多的交易同时发生,对应用程序本身、操作系统、中心数据库服务器设备的承受力都是一个严峻的考验。决策者不可能在发生问题后才考虑系统的承受力,预见软件的并发承受力,这该解决的问题。

目前,

大多数公司企业需要支持成百上千名用户,各类应用环境以及由不同供应商提供的元件组装起来的复杂产品,难来愈复杂的应用程序,使公司担忧会发生投放性能差、用户遭受反应慢、系统失灵等问题。其结果就是导致公司

方法不切实际,且无法捕捉程序内部变化情况,这样就需要压力测试工具的辅助。

如何模拟实际情况呢?找若干台电脑和同样数目的操作人员在同一时刻进行操作,然后拿秒表记录下反应时间?这测试的基本策略是自动负载测试,通过在一台或几台PC机上模拟成百或上千的虚拟用户同时执行业务的情景,同时记录下每一事务处理的时间、中间件服务器峰值数据、数据库状态等。通过可重复的、真实的测试能够彻底和性能,确定问题所在以及优化系统性能。预先知道了系统的承受力,就为最终用户规划整个运行环境的配置提

并发性能测试前的准备工作

测试环境:配置测试环境是测试实施的一个重要阶段,测试环境的适合与否会严重影响测试结果的真实性和正确环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备以及打印机/扫描仪等辅助硬件设备所被测软件运行时的操作系统、数据库及其他应用软件构成的环境。

证得到正确的、可重复的以及易理解的测试结果。

一个充分准备好的测试环境有三个优点:一个稳定、可重复的测试环境,能够保证测试结果的正确;保证达到测测试工具:并发性能测试是在客户端执行的黑盒测试,一般不采用手工方式,而是利用工具采用自动化方式进行能测试工具有很多,选择的依据主要是测试需求和性能价格比。著名的并发性能测试工具有QALoad、LoadRBenchmarkFactory和Webstress等。这些测试工具都是自动化负载测试工具,通过可重复的、真实的测试可扩展性和性能,可以在整个开发生命周期、跨越多种平台、自动执行测试任务,可以模拟成百上千的用户并发应用程序的测试。

测试数据:在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试案以前对测试案例进行调试,将正式测试开始时的错误降到最低。在测试进行到关键过程环节时,非常有必要进行初始数据意味着将合适的数据存储下来,需要的时候恢复它,初始数据提供了一个基线用来评估测试执行的结果

应能覆盖全部业务。

度时,硬盘上布置的不同类

型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义。

并发性能测试的种类与指标

在测试正式执行时,还需要准备业务测试数据,比如测试并发查询业务,那么要求对应的数据库和表中有相当的模拟真实环境测试,有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现。如并发性能测试的种类取决于并发性能测试工具监控的对象,以QALoad自动化负载测试工具为例。软件针对各WWW、JavaScript等不同的监控对象,支持Windows和UNIX测试环境。

DCOM、ODBC、 ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、最关键的仍然是测试过程中对监控对象的灵活应用,例如目前三层结构的运行模式广泛使用,对中间件的并发性议事日程上来,许多系统都采用了国产中间件,选择JavaScript监控对象,手工编写脚本,可以达到测试目的

采用自动化负载测试工具执行的并发性能测试,基本遵循的测试过程有:测试需求与测试内容,测试案例制定,本录制、编写与调试,脚本分配、回放配置与加载策略,测试执行跟踪,结果分析与定位问题所在,测试报告与

并发性能测试监控的对象不同,测试的主要指标也不相同,主要的测试指标包括交易处理性能指标和UNIX资性能指标包括交易结果、每分钟交易数、交易响应时间(Min:最小服务器响应时间;Mean:平均服务器响应响应时间;StdDev:事务处理服务器响应的偏差,值越大,偏差越大;Median:中值响应时间;90%:90%时间)、虚拟并发用户数。

应用实例:“新华社多媒体数据库V1.0”性能测试

中国软件评测中心(CSTC)根据新华社技术局提出的《多媒体数据库(一期)性能测试需求》和GB/T17544试》的国家标准,使用工业标准级负载测试工具对新华社使用的“新华社多媒体数据库V1.0”进行了性能测试。性能测试的目的是模拟多用户并发访问新华社多媒体数据库,执行关键检索业务,分析系统性能。

性能测试的重点是针对系统并发压力负载较大的主要检索业务,进行并发测试和疲劳测试,系统采用B/S运行定时间段内分别在中文库、英文库、图片库中进行单检索词、多检索词以及变检索式、混合检索业务等并发测试在中文库中并发用户数200,进行测试周期约8小时的单检索词检索。在进行并发和疲劳测试的同时,监测的能以及UNIX(Linux)、Oracle、Apache资源等。

的负载压力,最大交易数/分钟达到78.73,运行基本稳定,但随着负载压力增大,系统性能有所衰减。

系统能够承受200并发用户数持续周期约8小时的疲劳压力,基本能够稳定运行。

利用余地。

当并发用户数超过200

测试结论:在新华社机房测试环境和内网测试环境中,100M带宽情况下,针对规定的各并发测试案例,系统能够通过对系统UNIX(Linux)、Oracle和Apache资源的监控,系统资源能够满足上述并发和疲劳性能需求,时,监控到HTTP500、connect和超时错误,且Web服务器报内存溢出错误,系统应进一步提高性能,以支

建议进一步优化软件系统,充分利用硬件资源,缩短交易响应时间。

疲劳强度与大数据量测试

来确定系统处理最大工作量强度性能的过程。

疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执 疲劳强度测试可以采用工具自动化的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。

一般情况下以服务器能够正常稳定响应请求的最大并发用户数进行一定时间的疲劳测试,获取交易执行指标数据如出现错误导致测试不能成功执行,则及时调整测试指标,例如降低用户数、缩短测试周期等。还有一种情况的性能的评估,用系统正常业务情况下并发用户数为基础,进行一定时间的疲劳测试。

大数据量测试可以分为两种类型:针对某些系统存储、传输、统计、查询等业务进行大数据量的独立数据量测试载性能测试、疲劳性能测试相结合的综合数据量测试方案。大数据量测试的关键是测试数据的准备,可以依靠

标做对比分析。

·应用在网络上性能的测试

网络应用性能分析

速度测试目前主要是针对关键有速度要求的业务进行手工测速度,可以在多次测试的基础上求平均值,可以和工应用在网络上性能的测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预网络应用性能分析的目的是准确展示网络带宽、延迟、负载和TCP端口的变化是如何影响用户的响应时间的。具,例如 ApplicationExpert,能够发现应用的瓶颈,我们可知应用在网络上运行时在每个阶段发生的应用行用的问题。可以解决多种问题:客户端是否对数据库服务器运行了不必要的请求?当服务器从客户端接受了一个花费了不可接受的时间联系数据库服务器?在投产前预测应用的响应时间;利用ApplicationExpert调整应用ApplicationExpert能够让你快速、容易地仿真应用性能,根据最终用户在不同网络配置环境下的响应时间,用决定应用投产的网络环境。

网络应用性能监控

在系统试运行之后,需要及时准确地了解网络上正在发生什么事情;什么应用在运行,如何运行;多少PC正在些应用程序导致系统瓶颈或资源竞争,这时网络应用性能监控以及网络资源管理对系统的正常稳定运行是非常关能监控工具,可以达到事半功倍的效果,在这方面我们可以提供的工具是NetworkVantage。通俗地讲,它主的性能,定位问题的根源是在客户端、服务器、应用程序还是网络。在大多数情况下用户较关心的问题还有哪些哪些用户产生了最大的网络流量 ,这个工具同样能满足要求。

网络预测

考虑到系统未来发展的扩展性,预测网络流量的变化、网络结构的变化对用户系统的影响非常重要。根据规划数网络性能预测数据。我们利用网络预测分析容量规划工具PREDICTOR可以作到:设置服务水平、完成日网络容网络失效和容量极限分析、完成日常故障诊断、预测网络设备迁移和网络设备升级对整个网络的影响。

从网络管理软件获取网络拓扑结构、从现有的流量监控软件获取流量信息(若没有这类软件可人工生成流量数据网络的基本结构。在基本结构的基础上,可根据网络结构的变化、网络流量的变化生成报告和图表,说明这些变的。PREDICTOR提供如下信息:根据预测的结果帮助用户及时升级网络,避免因关键设备超过利用阀值导致设备需要升级,这样可减少网络延迟、避免网络瓶颈;根据预测的结果避免不必要的网络升级。

·应用在服务器上性能的测试

对于应用在服务器上性能的测试,可以采用工具监控,也可以使用系统本身的监控命令,例如Tuxedo中可以使用情况。实施测试的目的是实现服务器设备、服务器操作系统、数据库系统、应用在服务器上性能的全面监控,

UNIX资源监控指标和描述

监控指标描述

平均负载系统正常状态下,最后60秒同步进程的平均个数

冲突率在以太网上监测到的每秒冲突数

进程/线程交换率进程和线程之间每秒交换次数

CPU利用率CPU占用率(%)

磁盘交换率磁盘交换速率

接收包错误率接收以太网数据包时每秒错误数

包输入率每秒输入的以太网数据包数目

中断速率CPU每秒处理的中断数

输出包错误率发送以太网数据包时每秒错误数

包输入率每秒输出的以太网数据包数目

读入内存页速率物理内存中每秒读入内存页的数目

写出内存页速率每秒从物理内存中写到页文件中的内存页数

目或者从物理内存中删掉的内存页数目

内存页交换速率每秒写入内存页和从物理内存中读出页的个数

进程入交换率交换区输入的进程数目 进程出交换率交换区输出的进程数目

系统CPU利用率系统的CPU占用率(%)

用户CPU利用率用户模式下的CPU占用率(%)

磁盘阻塞磁盘每秒阻塞的字节数

二、为什么进行性能测试?

包括以下几个方面

3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。

的唯一方法。

性能测试类型包括负载测试,强度测试,容量测试等

目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性 负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。

强度测试:强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。

容量测试:确定系统可处理同时在线的最大用户数 观察指标:性能测试主要是通过自动化的测试工具模拟多种条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统性能点,来获得系统能提供的最大服务级别的测试。

在实际中作中我们经常会对两种类型软件进行测试:bs和cs,这两方面的性能指标一般需要哪些内容呢?

Bs结构程序一般会关注的通用指标如下(简):

Web服务器指标指标:

*AvgRps:平均每秒钟响应次数=总请求时间/秒数;

*Avgtimetolastbyteperterstion(mstes):平均每秒业务角本的迭代次数,有人会把这两者混淆;

*SuccessfulRounds:成功的请求;

*FailedRounds:失败的请求;

*SuccessfulHits:成功的点击次数;

*FailedHits:失败的点击次数;

*HitsPerSecond:每秒点击次数;

*SuccessfulHitsPerSecond:每秒成功的点击次数;

*FailedHitsPerSecond:每秒失败的点击次数;

*AttemptedConnections:尝试链接数;

CS结构程序,由于一般软件后台通常为数据库,所以我们更注重数据库的测试指标:

*User0Connections:用户连接数,也就是数据库的连接数量;

*Numberofdeadlocks:数据库死锁;

*ButterCachehit:数据库Cache的命中情况

当然,在实际中我们还会察看多用户测试情况下的内存,CPU,系统资源调用情况。这些指标其实是引申出来测试。什么是竞争测试,软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力

按照系统架构分成几种类型:

c/s

client/Server客户端/服务器架构

我们知道软件架构在实际测试中制约着测试策略和工具的选择。如何选择性能测试策略是我们在实际工作中需要基于客户端/服务器的三层架构

基于客户端/服务器的分布式架构

>

b/s

基于浏览器/Web服务器的三层架构

基于中间件应用服务器的三层架构l

基于Web服务器和中间件的多层架构l

三、性能测试的步骤

在每种不同的系统架构的实施中,开发人员可能选择不同的实现方式,造成实际情况纷繁复杂。我们不可能对每里只是介绍一种方法提供给你如何选择测试策略,从而帮助分析软件不同部分的性能指标,进而分析出整体架构

1.制定目标和分析系统

2.选择测试度量的方法

3.学习的相关技术和工具

4.制定评估标准

5.设计测试用例

由于工程和项目的不同,所选用的度量,评估方法也有不同之处。不过仍然有一些通用的步骤帮助我们完成一个 6.运行测试用例

7.分析测试结果

·制定目标和分析系统

性能测试的目标

么样的技术。

目标:

1.确定客户需求和期望

2.实际业务需求

3.系统需求

选者适当的测试方法来进行测试。

每一个性能测试计划中第一步都会制定目标和分析系统构成。只有明确目标和了解系统构成才会澄清测试范围系统组成:系统组成这里包含几方面含义:系统类别,系统构成,系统功能等。了解这些内容的本质其实是帮助系统类别:分清系统类别是我们掌握什么样的技术的前提,掌握相应技术做性能测试才可能成功。例如:系统类http协议,java,html等技术。或者是cs结构,可能要了解操作系统,winsock,com等。所以甄别系统类别系统构成:硬件设置,操作系统设置是性能测试的制约条件,一般性能测试都是利用测试工具模仿大量的实际情形下运作。不同的系统构成性能测试就会得到不同的结果。

系统功能:系统功能指系统提供的不同子系统,办公管理系统中的公文子系统,会议子系统等,系统工能是性能了解这些是必要的。

·选择测试度量的方法

经过第一步,将会对系统有清醒的认识。接下来我们将把精力放在软件度量上,收集系统相关的数据。

度量的相关方面:

*制定规范

*制定相关流程,角色,职责

*制定改进策略

*制定结果对比标准

·学习的相关技术和工具

具一般通过winsock,http等协议纪录用户操作。而协

rationalrobot中vu脚本用类c语言实现。

件架构的性能测试工具。确定测试工具后,需要组织测试人员进行工具的学习,培训相关技术。

·制定评估标准

性能测试是通过工具,模拟大量用户操作,对系统增加负载。所以需要掌握一定的工具知识才能进行性能测试议选择是基于软件的系统架构实现(web一般选择http协议,cs选择winsock协议),不同的性能测试工具,开展性能测试需要对各种性能测试工具进行评估,因为每一种性能测试工具都有自身的特点,只有经过工具评

任何测试的目的都是确保软件符合预先规定的目标和要求。性能测试也不例外。所以必须制定一套标准。

通常性能测试有四种模型技术可用于评估:

*分析模型:用排队论公式和算法预测响应时间,利用描述工作量的数据和系统本质关联起来

*模仿:模仿实际用户的使用方法测试你的系统

*基准:定义测试和你最初的测试作为标准,利用它和所有后来进行的测试结果进行对比

·设计测试用例

*线性投射:用大量的过去的,扩展的或者将来可能发生的数据组成散布图,利用这个图表不断和系统的当前状设计测试用例是在了解软件业务流程的基础上。设计测试用例的原则是受最小的影响提供最多的测试信息,设计尽可能的包含多个测试要素。这些测试用例必须是测试工具可以实现的,不同的测试场景将测试不同的功能。因的测试用例,尽可能把性能测试用例设计的复杂,才有可能发现软件的性能瓶颈。

·运行测试用例

的测试环境,不同的机器配置上运行。

·分析测试结果

通过性能测试工具运行测试用例。同一环境下作的性能测试得到的测试结果是不准确的,所以在运行这些测试

运行测试用例后,收集相关信息,进行数据统计分析,找到性能瓶颈。通过排除误差和其他因素,让测试结果体的体系结构分析测试结果的方法也不同,bs结构我们会分析网络带宽,流量对用户操作响应的影响,而cs结构整体配置对用户操作的影响。

四、性能测试方法

对于企业应用程序,有许多进行性能测试的方法,其中一些方法实行起来要比其他方法困难。所要进行的性能测到的结果。例如,对于可再现性,基准测试是最好的方法。而要从当前用户负载的角度测试系统的上限,则应该文将介绍几种设置和运行性能测试的方法,并讨论这些方法的区别。

如果不进行合理的规划,对J2EE应用程序进行性能测试将会是一项令人望而生畏且有些混乱的任务。因为对于都必须收集需求、理解业务需要,并在进行实际测试之前设计出正式的进度表。性能测试的需求由业务需要驱这些用例可以基于历史数据(例如,服务器一周的负载模式)或预测的近似值。弄清楚需要测试的内容之后,就了。

在开发阶段前期,应该使用基准测试来确定应用程序中是否出现性能倒退。基准测试可以在一个相对短的时间内行基准测试的最好方法是,每次测试改变一个且只改变一个参数。例如,如果想知道增加JVM内存是否会影响递增JVM内存(例如,从

1024MB增至1224MB,然后是1524MB,最后是2024MB),在每个阶段收集结果和环境数据,记录信息样在分析测试结果时就有迹可循。下一小节我将介绍什么是基准测试,以及运行基准测试的最佳参数。

开发阶段后期,在应用程序中的bug已经被解决,应用程序达到一种稳定状态之后,可以运行更为复杂的测试模式下的表现。这些测试被称为容量规划测试、渗入测试(soaktest)、峰谷测试(peak-resttest),它们旨在通性、健壮性和可伸缩性来测试接近于现实世界的场景。对于下面的描述应该从抽象的意义上理解,因为每个应用同的。例如,容量规划测试通常都使用较缓慢的ramp- up(下文有定义),但是如果应用程序在一天之中的某流量,那么自然应该修改测试以反映这种情况。但是,要记住,因为更改了测试参数(比如ramp-up周期或用(think-time)),测试的结果肯定也会改变。一个不错的方法是,运行一系列的基准测试,确立一个已知的可行比较。

基准测试

基准测试的关键是要获得一致的、可再现的结果。可再现的结果有两个好处:减少重新运行测试的次数;对测试为确信。使用的性能测试工具可能会对测试结果产生很大影响。假定测试的两个指标是服务器的响应时间和吞吐上的负载的影响。服务器上的负载受两个因素影响:同时与服务器通信的连接(或虚拟用户)的数目,以及每个虑时间的长短。很明显,与服务器通信的用户越多,负载就越大。同样,请求之间的考虑时间越短,负载也越大合会产生不同的服务器负载等级。记住,随着服务器上负载的增加,吞吐量会不断攀升,直到到达一个点。

当测试中所有的用户都同时执行几乎相同的操作时,就会发生这种现象。这将会产生非常不可靠和不精确的结果施防止这种情况的出现。有两种方法可以从这种类型的结果中获得精确的测量值。如果测试可以运行相当长的时取决于用户的操作持续的时间),最后由于随机事件的本性使然,服务器的吞吐量会被“拉平”。或者,可以只选间的测量值。该方法的缺点是可以捕获数据的时间非常短。

性能规划测试

对于性能规划类型的测试来说,其目标是找出,在特定的环境下,给定应用程序的性能可以达到何种程度。此时测试中那么重要了,因为测试中通常都会有随机因子。引入随机因子的目的是为了尽量模拟具有真实用户负载的常,具体的目标是找出系统在特定的服务器响应时间下支持的当前用户的最大数。例如,您可能想知道:如果要间支持8,000个当前用户,需要多少个服务器?要回答这个问题,需要知道系统的更多信息。

要确定系统的容量,需要考虑几个因素。通常,服务器的用户总数非常大(以十万计),但是实际上,这个数字需要知道的是,这些用户中有多少是并发与服务器通信的。其次要知道的是,每个用户的“考虑时间”即请求间时因为考虑时间越短,系统所能支持的并发用户越少。例如,如果用户的考虑时间是1秒,那么系统可能只能支持但是,如果用户的考虑时间是30秒,那

要注意,在现实世界中,用户不会精确地按照间隔时间发出请求。

么系统则可能支持数万个这样的并发用户(假定硬件和应用程序都是相同的)。在现实世界中,通常难以确定用于是就引入了随机性。如果知道普通用户的考虑时间是5秒,误差为20%,那么在设计负载测试时,就要确保/-20%)秒。此外,可以利用“调步”的理念向负载场景中引入更多的随机性。它是这样的:在一个虚拟用户完户暂停一个设定的时间段,或者一个小的随机时间段(例如,2×(1 /-25%)秒),然后再继续执行下一套请法运用到测试中,可以提供更接近于现实世界的场景。

现在该进行实际的容量规划测试了。接下来的问题是:如何加载用户以模拟负载状态?最好的方法是模拟高峰时状况。这种用户负载状态是在一段时间内逐步达到的吗?如果是,应该使用ramp-up类型的测试,每隔几秒增有用户是在一个非常短的时间内同时与系统通信?如果是这样,就应该使用flat类型的测试,将所有的用户同同类型的测试会产生没有可比性的不同测试。例如,如果进行ramp-up类型的测试,系统可以以4秒或更短的用户。而执行flat测试,您会发现,对于5,000个用户,系统的平均响应时间要大于4秒。这是由于ramp-u其不能显示系统可以支持的并发用户的精确数字。以门户应用程序为例,随着门户规模的扩大和集群规模的扩大之显现。 系统能够随着时间不断调整。如果使用快速ramp-up测试,系统就会滞后,从而报告一个较相同用户负载的这不是说不应该使用ramp-up测试。对于系统负载在一段比较长的时间内缓慢增加的情况,ramp-up测试效那么,什么是确定容量的最好方法?结合两种负载类型的优点,并运行一系列的测试,就会产生最好的结果。例测试确定系统可以支持的用户范围。确定了范围之后,以该范围内不同的并发用户负载进行一系列的flat测试量。

渗入测试

渗入测试是一种比较简单的性能测试。渗入测试所需时间较长,它使用固定数目的并发用户测试系统的总体健壮内存泄漏、增加的垃圾收集 (GC)或系统的其他问题,显示因长时间运行而出现的任何性能降低。测试运行的时了解。运行两次测试是一个好主意——一次使用较低的用户负载(要在系统容量之下,以便不会出现执行队列)(以便出现积极的执行队列)。

测试应该运行几天的时间,以便真正了解应用程序的长期健康状况。要确保测试的应用程序尽可能接近现实世界逼真(虚拟用户通过应用程序导航的方式要与现实世界一致),从而测试应用程序的全部特性。确保运行了所有精确地监测并跟踪问题。

峰谷测试

闲、然后再攀升到高负载、再降低的能力。

峰谷测试兼有容量规划ramp-up类型测试和渗入测试的特征。其目标是确定从高负载(例如系统高峰时间的负实现这种测试的最好方法就是,进行一系列的快速ramp-up测试,继之以一段时间的平稳状态(取决于业务需后急剧降低负载,此时可以令系统平息一下,然后再进行快速的ramp-up;反复重复这个过程。这样可以确定是否重现第一次的峰值?其后的每次高峰是等于还是大于第一次的峰值?在测试过程中,系统是否显示了内存或象?测试运行(不停地重复“峰值/空闲”周期)的时间越长,您对系统的长期健康状况就越了解。

结束语

本文介绍了进行性能测试的几种方法。取决于业务需求、开发周期和应用程序的生命周期,对于特定的企业,某合。但是,对于任何情况,在决定进行某一种测试前,都应该问自己一些基本问题。这些问题的答案将会决定哪

这些问题包括:

结果的可重复性需要有多高?

测试需要运行和重新运行几次?

您处于开放周期的哪个阶段?

您的业务需求是什么?

您的用户需求是什么?

您希望生产中的系统在维护停机时间中可以持续多久?

在一个正常的业务日,预期的用户负载是多少?

将这些问题的答案与上述性能测试类型相对照,应该就可以制定出测试应用程序的总体性能的完美计划。

如果你明确了具体的性能目标后,可以开始进行测试,确定应用程序是否满足这些要求。通常性能测试假定这运行。因此,在性能测试中应最大限度的减少影响性能测试的条件。例如,代码中的错误可以导致出现性能问所以要精确地比较不同性能测试的结果,应用程序必须正确地工作。如果调整过程修改了组件的实现,则重新测重要。应用程序必须通过功能性测试后才可以测试性能。除了应用程序更改外,硬件、网络通信量、软件配置、会发生意外的更改。控制应用程序更改很重要。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688021130a67451.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信