性能测试概念文档格式.docx

上传人:b****3 文档编号:6885757 上传时间:2023-05-07 格式:DOCX 页数:13 大小:29.25KB
下载 相关 举报
性能测试概念文档格式.docx_第1页
第1页 / 共13页
性能测试概念文档格式.docx_第2页
第2页 / 共13页
性能测试概念文档格式.docx_第3页
第3页 / 共13页
性能测试概念文档格式.docx_第4页
第4页 / 共13页
性能测试概念文档格式.docx_第5页
第5页 / 共13页
性能测试概念文档格式.docx_第6页
第6页 / 共13页
性能测试概念文档格式.docx_第7页
第7页 / 共13页
性能测试概念文档格式.docx_第8页
第8页 / 共13页
性能测试概念文档格式.docx_第9页
第9页 / 共13页
性能测试概念文档格式.docx_第10页
第10页 / 共13页
性能测试概念文档格式.docx_第11页
第11页 / 共13页
性能测试概念文档格式.docx_第12页
第12页 / 共13页
性能测试概念文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

性能测试概念文档格式.docx

《性能测试概念文档格式.docx》由会员分享,可在线阅读,更多相关《性能测试概念文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

性能测试概念文档格式.docx

这种问题的解决要借助于科学的软件测试手段和先进的测试工具。

举例说明:

电信计费软件

  众所周知,每月20日左右是市话交费的高峰期,全市几千个收费网点同时启动。

收费过程一般分为两步,首先要根据用户提出的电话号码来查询出其当月产生费用,然后收取现金并将此用户修改为已交费状态。

一个用户看起来简单的两个步骤,但当成百上千的终端,同时执行这样的操作时,情况就大不一样了,如此众多的交易同时发生,对应用程序本身、操作系统、中心数据库服务器、中间件服务器、网络设备的承受力都是一个严峻的考验。

决策者不可能在发生问题后才考虑系统的承受力,预见软件的并发承受力,这是在软件测试阶段就应该解决的问题。

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

其结果就是导致公司收益的损失。

  如何模拟实际情况呢?

找若干台电脑和同样数目的操作人员在同一时刻进行操作,然后拿秒表记录下反应时间?

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

  测试的基本策略是自动负载测试,通过在一台或几台PC机上模拟成百或上千的虚拟用户同时执行业务的情景,对应用程序进行测试,同时记录下每一事务处理的时间、中间件服务器峰值数据、数据库状态等。

通过可重复的、真实的测试能够彻底地度量应用的可扩展性和性能,确定问题所在以及优化系统性能。

预先知道了系统的承受力,就为最终用户规划整个运行环境的配置提供了有力的依据。

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

  测试环境:

配置测试环境是测试实施的一个重要阶段,测试环境的适合与否会严重影响测试结果的真实性和正确性。

测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备以及打印机/扫描仪等辅助硬件设备所构成的环境;

软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。

  一个充分准备好的测试环境有三个优点:

一个稳定、可重复的测试环境,能够保证测试结果的正确;

保证达到测试执行的技术需求;

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

  测试工具:

并发性能测试是在客户端执行的黑盒测试,一般不采用手工方式,而是利用工具采用自动化方式进行。

目前,成熟的并发性能测试工具有很多,选择的依据主要是测试需求和性能价格比。

著名的并发性能测试工具有QALoad、LoadRunner、BenchmarkFactory和Webstress等。

这些测试工具都是自动化负载测试工具,通过可重复的、真实的测试,能够彻底地度量应用的可扩展性和性能,可以在整个开发生命周期、跨越多种平台、自动执行测试任务,可以模拟成百上千的用户并发执行关键业务而完成对应用程序的测试。

  测试数据:

在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试案例,在正式的测试开始以前对测试案例进行调试,将正式测试开始时的错误降到最低。

在测试进行到关键过程环节时,非常有必要进行数据状态的备份。

制造初始数据意味着将合适的数据存储下来,需要的时候恢复它,初始数据提供了一个基线用来评估测试执行的结果。

  在测试正式执行时,还需要准备业务测试数据,比如测试并发查询业务,那么要求对应的数据库和表中有相当的数据量以及数据的种类应能覆盖全部业务。

  模拟真实环境测试,有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现。

如测试杀毒软件的扫描速度时,硬盘上布置的不同类型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义。

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

  并发性能测试的种类取决于并发性能测试工具监控的对象,以QALoad自动化负载测试工具为例。

软件针对各种测试目标提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、JavaScript等不同的监控对象,支持Windows和UNIX测试环境。

  最关键的仍然是测试过程中对监控对象的灵活应用,例如目前三层结构的运行模式广泛使用,对中间件的并发性能测试作为问题被提到议事日程上来,许多系统都采用了国产中间件,选择JavaScript监控对象,手工编写脚本,可以达到测试目的。

  采用自动化负载测试工具执行的并发性能测试,基本遵循的测试过程有:

测试需求与测试内容,测试案例制定,测试环境准备,测试脚本录制、编写与调试,脚本分配、回放配置与加载策略,测试执行跟踪,结果分析与定位问题所在,测试报告与测试评估。

  并发性能测试监控的对象不同,测试的主要指标也不相同,主要的测试指标包括交易处理性能指标和UNIX资源监控。

其中,交易处理性能指标包括交易结果、每分钟交易数、交易响应时间<

Min:

最小服务器响应时间;

Mean:

平均服务器响应时间;

Max:

最大服务器响应时间;

StdDev:

事务处理服务器响应的偏差,值越大,偏差越大;

Median:

中值响应时间;

90%:

90%事务处理的服务器响应时间)、虚拟并发用户数。

应用实例:

“新华社多媒体数据库V1.0”性能测试

  中国软件评测中心<

CSTC)根据新华社技术局提出的《多媒体数据库<

一期)性能测试需求》和GB/T17544《软件包质量要求和测试》的国家标准,使用工业标准级负载测试工具对新华社使用的“新华社多媒体数据库V1.0”进行了性能测试。

  性能测试的目的是模拟多用户并发访问新华社多媒体数据库,执行关键检索业务,分析系统性能。

  性能测试的重点是针对系统并发压力负载较大的主要检索业务,进行并发测试和疲劳测试,系统采用B/S运行模式。

并发测试设计了特定时间段内分别在中文库、英文库、图片库中进行单检索词、多检索词以及变检索式、混合检索业务等并发测试案例。

疲劳测试案例为在中文库中并发用户数200,进行测试周期约8小时的单检索词检索。

在进行并发和疲劳测试的同时,监测的测试指标包括交易处理性能以及UNIX<

Linux)、Oracle、Apache资源等。

  测试结论:

在新华社机房测试环境和内网测试环境中,100M带宽情况下,针对规定的各并发测试案例,系统能够承受并发用户数为200的负载压力,最大交易数/分钟达到78.73,运行基本稳定,但随着负载压力增大,系统性能有所衰减。

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

  通过对系统UNIX<

Linux)、Oracle和Apache资源的监控,系统资源能够满足上述并发和疲劳性能需求,且系统硬件资源尚有较大利用余地。

  当并发用户数超过200时,监控到HTTP500、connect和超时错误,且Web服务器报内存溢出错误,系统应进一步提高性能,以支持更大并发用户数。

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

疲劳强度与大数据量测试

  疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。

  疲劳强度测试可以采用工具自动化的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。

  一般情况下以服务器能够正常稳定响应请求的最大并发用户数进行一定时间的疲劳测试,获取交易执行指标数据和系统资源监控数据。

如出现错误导致测试不能成功执行,则及时调整测试指标,例如降低用户数、缩短测试周期等。

还有一种情况的疲劳测试是对当前系统性能的评估,用系统正常业务情况下并发用户数为基础,进行一定时间的疲劳测试。

  大数据量测试可以分为两种类型:

针对某些系统存储、传输、统计、查询等业务进行大数据量的独立数据量测试;

与压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试方案。

大数据量测试的关键是测试数据的准备,可以依靠工具准备测试数据。

  速度测试目前主要是针对关键有速度要求的业务进行手工测速度,可以在多次测试的基础上求平均值,可以和工具测得的响应时间等指标做对比分析。

·

应用在网络上性能的测试

  应用在网络上性能的测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。

网络应用性能分析

  网络应用性能分析的目的是准确展示网络带宽、延迟、负载和TCP端口的变化是如何影响用户的响应时间的。

利用网络应用性能分析工具,例如ApplicationExpert,能够发现应用的瓶颈,我们可知应用在网络上运行时在每个阶段发生的应用行为,在应用线程级分析应用的问题。

可以解决多种问题:

客户端是否对数据库服务器运行了不必要的请求?

当服务器从客户端接受了一个查询,应用服务器是否花费了不可接受的时间联系数据库服务器?

在投产前预测应用的响应时间;

利用ApplicationExpert调整应用在广域网上的性能;

ApplicationExpert能够让你快速、容易地仿真应用性能,根据最终用户在不同网络配置环境下的响应时间,用户可以根据自己的条件决定应用投产的网络环境。

网络应用性能监控

  在系统试运行之后,需要及时准确地了解网络上正在发生什么事情;

什么应用在运行,如何运行;

多少PC正在访问LAN或WAN;

哪些应用程序导致系统瓶颈或资源竞争,这时网络应用性能监控以及网络资源管理对系统的正常稳定运行是非常关键的。

利用网络应用性能监控工具,可以达到事半功倍的效果,在这方面我们可以提供的工具是NetworkVantage。

通俗地讲,它主要用来分析关键应用程序的性能,定位问题的根源是在客户端、服务器、应用程序还是网络。

在大多数情况下用户较关心的问题还有哪些应用程序占用大量带宽,哪些用户产生了最大的网络流量,这个工具同样能满足要求。

网络预测

  考虑到系统未来发展的扩展性,预测网络流量的变化、网络结构的变化对用户系统的影响非常重要。

根据规划数据进行预测并及时提供网络性能预测数据。

我们利用网络预测分析容量规划工具PREDICTOR可以作到:

设置服务水平、完成日网络容量规划、离线测试网络、网络失效和容量极限分析、完成日常故障诊断、预测网络设备迁移和网络设备升级对整个网络的影响。

  从网络管理软件获取网络拓扑结构、从现有的流量监控软件获取流量信息<

若没有这类软件可人工生成流量数据),这样可以得到现有网络的基本结构。

在基本结构的基础上,可根据网络结构的变化、网络流量的变化生成报告和图表,说明这些变化是如何影响网络性能的。

PREDICTOR提供如下信息:

根据预测的结果帮助用户及时升级网络,避免因关键设备超过利用阀值导致系统性能下降;

哪个网络设备需要升级,这样可减少网络延迟、避免网络瓶颈;

根据预测的结果避免不必要的网络升级。

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

  对于应用在服务器上性能的测试,可以采用工具监控,也可以使用系统本身的监控命令,例如Tuxedo中可以使用Top命令监控资源使用情况。

实施测试的目的是实现服务器设备、服务器操作系统、数据库系统、应用在服务器上性能的全面监控,测试原理如下图。

UNIX资源监控指标和描述

  监控指标描述

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

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

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

  CPU利用率CPU占用率<

%)

  磁盘交换率磁盘交换速率

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

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

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

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

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

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

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

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

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

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

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

  系统CPU利用率系统的CPU占用率<

  用户CPU利用率用户模式下的CPU占用率<

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

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

目的是验证软件系统是否能够达到用户提出的性能指标(需求规格说明书>

,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。

包括以下几个方面

1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。

2.识别体系中的弱点:

受控的负荷可以被增加到一个极端的水平<

峰值),并突破它,从而修复体系的瓶颈或薄弱的地方。

3.系统调优:

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

检测软件中的问题:

长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。

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. 

分析测试结果

制定目标和分析系统

每一个性能测试计划中第一步都会制定目标和分析系统构成。

只有明确目标和了解系统构成才会澄清测试范围,知道在测试中要掌握什么样的技术。

目标:

确定客户需求和期望

实际业务需求

系统需求

系统组成

系统组成这里包含几方面含义:

系统类别,系统构成,系统功能等。

了解这些内容的本质其实是帮助我们明确测试的范围,选者适当的测试方法来进行测试。

系统类别:

分清系统类别是我们掌握什么样的技术的前提,掌握相应技术做性能测试才可能成功。

例如:

系统类别是bs结构,需要掌握http协议,java,html等技术。

或者是cs结构,可能要了解操作系统,winsock,com等。

所以甄别系统类别对于我们来说很重要。

系统构成:

硬件设置,操作系统设置是性能测试的制约条件,一般性能测试都是利用测试工具模仿大量的实际用户操作,系统在超负荷情形下运作。

不同的系统构成性能测试就会得到不同的结果。

系统功能:

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

经过第一步,将会对系统有清醒的认识。

接下来我们将把精力放在软件度量上,收集系统相关的数据。

度量的相关方面:

*制定规范

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

*制定改进策略

*制定结果对比标准

学习的相关技术和工具

性能测试是通过工具,模拟大量用户操作,对系统增加负载。

所以需要掌握一定的工具知识才能进行性能测试。

大家都知道性能测试工具一般通过winsock,http等协议纪录用户操作。

而协议选择是基于软件的系统架构实现<

web一般选择http协议,cs选择winsock协议),不同的性能测试工具,脚本语言也不同,比如rationalrobot中vu脚本用类c语言实现。

开展性能测试需要对各种性能测试工具进行评估,因为每一种性能测试工具都有自身的特点,只有经过工具评估,才能选择符合现有软件架构的性能测试工具。

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

任何测试的目的都是确保软件符合预先规定的目标和要求。

性能测试也不例外。

所以必须制定一套标准。

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

*线性投射:

用大量的过去的,扩展的或者将来可能发生的数据组成散布图,利用这个图表不断和系统的当前状况对比。

*分析模型:

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

*模仿:

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

*基准:

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

设计测试用例是在了解软件业务流程的基础上。

设计测试用例的原则是受最小的影响提供最多的测试信息,设计测试用例的目标是一次尽可能的包含多个测试要素。

这些测试用例必须是测试工具可以实现的,不同的测试场景将测试不同的功能。

因为性能测试不同于平时的测试用例,尽可能把性能测试用例设计的复杂,才有可能发现软件的性能瓶颈。

通过性能测试工具运行测试用例。

同一环境下作的性能测试得到的测试结果是不准确的,所以在运行这些测试用例的时候,需要用不同的测试环境,不同的机器配置上运行。

运行测试用例后,收集相关信息,进行数据统计分析,找到性能瓶颈。

通过排除误差和其他因素,让测试结果体现接近真实情况。

不同的体系结构分析测试结果的方法也不同,bs结构我们会分析网络带宽,流量对用户操作响应的影响,而cs结构我们可能更关心会系统整体配置对用户操作的影响。

四、性能测试方法

  对于企业应用程序,有许多进行性能测试的方法,其中一些方法实行起来要比其他方法困难。

所要进行的性能测试

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2