性能测试及其实施过程_第1页
性能测试及其实施过程_第2页
性能测试及其实施过程_第3页
性能测试及其实施过程_第4页
性能测试及其实施过程_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 目 录1. 什么是性能测试21.1. 能评测21.2. 性能调优22. 性能测试的目的23. 何时进行性能测试34. 性能测试的关键步骤34.1. 影响系统性能因素分析34.2. 测试前需搜集的信息34.3. 测试过程中的信息收集44.4. 关键点性能诊断44.5. 瓶颈分析44.6. 调优方案的制定55. 性能测试的实施步骤65.1. 性能测试实施步骤概述65.2. 性能测试实施步骤6性能测试及其实施过程 - 魏靖 QQ:381557174 W前言:最近我对性能测试过程有了全新的认识,也有了很大的收获,其中最大的收获是使我有了在进行性能测试之前对影响系统性能的因素进行分析的意识,这种意识的

2、产生是我做性能测试工作从理论走向实践的第一步。1. 什么是性能测试系统的性能是一个比较大的概念,覆盖面非常广泛,对于软件系统来说,包括执行效率、稳定性、安全性、兼容性、资源占用情况、可靠性和可扩展性等。性能测试用来保证产品发布后系统的性能能够满足用户的需求。性能测试在软件质量保证中起重要作用。通常情况下存在性能调优和性能评测两种性能测试策略。1.1. 能评测性能评测主要包括下面两项内容:l 在真实环境下,检查系统服务等级的满足情况,评价并报告整个系统的性能。l 对系统的未来容量做出预测和规划。需要指出的是这里的“容量”是指系统性能的扩展情况。性能评测是性能调优的基础,性能评测能为性能调优提供方

3、向性依据。1.2. 性能调优性能调优的步骤:l 查找形成系统瓶颈或者故障的根本原因;l 进行性能调整和优化;l 评估性能调整的结果;需要注意的是通常为了实现目标性能调优的过程通常是上述几个步骤循环执行的过程。2. 性能测试的目的性能测试的最终目的是为了最大限度的满足用户的需求,我们通常为了达到以下目标而进行性能测试:l 评价软件系统当前的性能。(在真实环境下,检查系统服务等级的满足情况,评价并报告整个系统的性能。)l 预测软件系统未来性能,即根据当前测试环境的配置情况下获得的性能参数,对未来软件系统在实际运行环境下的性能情况进行预测。l 寻找瓶颈,进行系统调优。即通过性能测试找出影响系统整体性

4、能的关键步骤或过程,为系统调优提供方向性依据。3. 何时进行性能测试对测试人员来说,在产品的功能稳定下来后,就应该尽早开始对产品进行性能测试。在此我所想强调的是进行性能测试的前提是功能的稳定,在软件功能不稳定或功能不确定的情况下进行性能测试实施是比较困难的,测试结论也不太可靠。4. 性能测试的关键步骤4.1. 影响系统性能因素分析4.1.1. 硬件l 服务器l 网络设备(交换机、防火墙、路由器、网络是否畅通、进出规则是什么?)l 其他外围设备4.1.2. 软件l 内部应用软件(测试主体)l 第三方应用l 系统软件(中间件、数据库、web服务器)4.1.3. 系统其他配置或处理机制l Sessi

5、on 复制/同步机制l 会话保持机制l F5分发、重定向机制4.2. 测试前需搜集的信息内部应用信息l 内部应用实现逻辑、算法、应用架构图l 接口方式、异常处理、网络协议4.2.1. 配置信息 软件配置.1 中间件配置l Java 虚拟机配置l 连接数配置.2 数据库配置l 数据库连接数l 连接池 硬件配置4.2.2. 网络设备l 服务器及网路拓扑图l 防火墙l 网络设备配置信息4.3. 测试过程中的信息收集在性能测试过程中我们要注意对以下信息进行收集:l 客户端性能指标,如:并发用户数、每分钟的交易数、响应时间、吞吐量等。l 非客户端的

6、性能指标,如操作系统、数据库服务器、中间件、网络状况。4.4. 关键点性能诊断l 响应时间l 并发用户量l 吞吐量l Cpul 内存高速缓存l 磁盘及外设l 中间件服务器性能l 数据库服务器性能等4.5. 瓶颈分析对系统瓶颈分析时我们通常从以下角度去分析:l 客户端l 网络l 服务器l 硬件l 软件l 应用软件l web服务器l 数据库服务器4.5.1. 常用寻找瓶颈方法 分解时序时序分解就是通过分析一个处理过程中各个环节,找出处理过程中的异常环节 范围界定范围界定是通过逐步扩大或缩小测试范围,将对系统性能影响的因素锁定在一定的范围之内,在这个范围内进行瓶颈查找。4

7、.6. 调优方案的制定通常我们从以下角度去制定系统调优方案:4.6.1. 硬件平台l 服务器l Cpul 内存l 硬盘4.6.2. 网络状况l 带宽l 负载l 网络延迟l 传输故障4.6.3. 软件平台l 数据库l 中间件4.6.4. 应用级别l 线程级别l 会话级别l 代码级别5. 性能测试的实施步骤5.1. 性能测试实施步骤概述概括来说性能测试的实施步骤是以下步骤循环执行的过程:制定测试计划测试需求分析测试案例制定测试环境配置(包括软硬件环境、测试工具等)录制测试脚本设计测试场景执行测试获取测试结果测试结果评估和测试报告制定测试计划测试需求分析5.2. 性能测试实施步骤5.2.1. 测试计

8、划的编写过程 分析应用程序应用程序分析可以确保使用的测试环境能够在测试中精确的反映应用程序的环境和配置。通常我们要从以下几个方面对应用程序的分析:.1 系统组件l 如客户机l 网络l 中间件和服务器等建议绘制一份应用程序结构示意图。.2 系统配置l 连接系统的用户数l 应用程序客户端以及服务器的配置情况(包括软件配置和硬件配置)l 数据库服务器和web服务器的类型(硬件、数据库类型、操作系统、文件服务器等)l 服务器与客户端之间的通信方式l 服务器和客户端之间的中间件配置和应用服务器l 可能影响响应时间的其他网络组件(如调制解调器等)l 通信设备的情况

9、.3 应用程序使用模型分析l 哪些用户使用该系统l 每种用户的数量及主要业务类型l 业务处理分布情况等通过对应用程序使用模型的分析我们可以确定需要重点测试的功能。 定义测试目标 简单的说也就是我们要获取哪些性能参数或指标。 方案实施计划.1 定义性能度量的范围度量应用程序中不同点的响应时间,并根绝测试目标确定在哪里运行vuser (虚拟用户),已经运行哪些vuser..2 定义vuser测试需求分析活动根据对vuser 类型的分析以及他们的典型任务和测试目标来创建vuser脚本。.3 选择vuser使用多少gu

10、i用户来模拟每一种类型的典型用户连接等。.4 选择测试软件和硬件软件和硬件应该具有强大的性能和足够快的运行速度,以模拟所需数量的虚拟用户。 测试检查目标计划 l 度量最终用户的响应时间l 定义最优的硬件配置l 检查可靠性l 硬件或软件升级对系统的影响l 对新产品评估l 确定瓶颈l 度量系统容量5.2.2. 测试需求分析l 测试的对象是什么?l 系统配置如何?l 应用系统的使用模式是什么?5.2.3. 测试案例的制定l 测试策略:对比测试环境和真实业务测试环境,真实业务操作环境又可能涉及局域网环境和机房的是环境等。l 测试案例:一个测试案例通常包含的内容有,案例名称、

11、并发用户数、网络环境、数据量、备注等。 l 测试内容:测试内容一般包括并发性能测试、疲劳强度测试、大数据量测试和系统资源监控等。5.2.4. 测试环境、测试工具、和测试数据准备 测试环境直接影响测试效果,所有的测试结果都是在一定的软硬件环境约束下的结果,测试环境不同,测试结果可能会有不同。 测试环境的准备.1 测试环境的基本原则l 要满足软件运行的最低要求,不一定选择将要部署的环境;l 选用与被测系统相一致的操作系统和软件平台;l 营造相对独立的测试环境,即不受其他因素的干扰;l 无毒环境;.2 性能测试环境准备时需要的注意事项l 如果是完全真实的应用

12、运行环境,要尽可能降低测试对现有业务的影响;l 如果建立近似的真实环境,首先要达到服务器、数据库、以及中间件的真实,并且要有一定的数据量,客户端可以次要考虑;l 必须考虑测试工具的硬件和软件配置要求;l 测试和环境中应该包括安装、备份、及恢复过程。.3 测试环境配置l 操作系统的版本(包括各种服务及安装补丁版本) ;l 网络软件的版本;l 传输协议;l 服务器及工作站配置;l 测试工具配置;.4 良好测试环境的标准l 保证达到测试执行的技术需求;l 保证得到稳定的、可重复的、正确的测试结果; 测试工具的准备 网络协议的选择测试工具中的协议

13、是指工具提供给我们的测试接口,也可以认为测试类型。客户端于服务器之间的通信协议是选择测试协议的唯一标准。常见的错误认识: B/S 运行模式用的一定是http 协议,C/S 运行模式用的一定是Winsocket 协议。 测试数据的准备 实施性能测试时,需要运行系统相关的业务,这时需要一些数据支持才可以运行业务,这部分数据即为测试数据。5.2.5. 测试脚本的录制和编辑调试录制脚本是要注意录制用户在客户端应用程序中执行的典型业务流程。脚本越小运行效率越高,不建议录制包含多个业务处理过程的大脚本。 测试脚本分配所遵循的几个原则 l 脚本是越小越好,就像写code一样的,不

14、要太长,尽量做到一个功能(Transaction)一个脚本。如果有些功能是连续的,必须先做上一个,才能工作下一个,那就只好放在一起了。l 要结合用户实际使用情况,一般在一个系统中是多个用户使用多个功能,某些功能使用的频率更大一些,我们在录制脚本之前就要设计好,某个脚本会跑几个用户,一共需要多少个脚本,能满足性能测试的需求有些人喜欢在LR中测试几乎所有的功能,其实这样不合适,我们把最常用的、使用频率最高的、最多人用的拿出来测试。 对脚本的编辑过程中需要注意的几个概念l 事务:事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结

15、束位置插入这样一个范围,这样就定义了一个transaction,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner 运行在脚本中插入不限数量的事务。比如一个单据,把从登录到保存成功退出整个作为一个脚本,对于需要关注的保存,输入的帮助定义为单独的事务,以取得响应时间,需要响应时间的设事务。 l 集合点:集合点是一个并发访问的点,在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可

16、以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,并发访问的目的。 注意:集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。l 检查点:(Text/Image)检查点对于查询类的脚本,一定要添加检查点,以保证在测试时结果的正确性.因为LR只要检测到

17、网页的响应,就认为是pass而并不管当前网页内容的正确性在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Imag 检查点,这些检查点验证网页上是否存在指定的Text或者Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。l 关联:在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。当客户端的某个请求是随着服务器端的相应而动态变化的时候,我们就需要用到关联

18、。如:客户端发出获得登录页面的请求服务器端得到该请求后,返回登录页面,同时动态生成一个Session Id 当用户输入用户名密码,请求登录时,该Session Id同时被发送到服务器端如果该Session Id在当前会话中有效,那么返回登录成功的页面,如果不正确则登录失败在第一次录制过程中loadrunner把这个值记录了下来,写到了脚本中,但再次回放时,客户端发出同样的请求,而服务器端再一次动态的生成了Session Id,此时客户端发出的请求就是错误的,为了获得这个动态的Session Id我们这里用到了关联。l 参数化:函数中参数的值就是在录制过程中输入的实际值。例如,你录制了一个 We

19、b 应用程序的脚本。脚本生成器生成了一个声明,该声明搜索名称为 “软件测试” 的图书的数据库。当你用多个虚拟用户和迭代回放脚本时,也许你不想重复使用相同的值“软件测试”,还需要其他的值如“项目管理”。例如平常经常用到的,登陆界面输入用户名和密码,那么,你就可以用参数来取代这个常量。结果就是你可以用指定的数据源的数值来取代参数值。数据源可以是一个文件,也可以是内部产生的变量。5.2.6. 场景制定 创建Vuser组 方案由Vuser组构成,Vuser模拟与应用程序进行交互的实际用户。运行方案时Vuser会在服务器上生成负载,测试工具会监视服务器和事务性能。 配置Vuser中的Vuser 其实就是为定义的Vuser组中的各个Vuser定义属性。对于每个Vuser,可以分配不同的脚本和负载生成器计算机。 配置Vuser运行时的设置 也就是对脚本运行时的情况进行设置。 配置负载生成器 指出哪些负载生成器将在方案中运行Vuser。 配置终端服务设置5.2.7. 测试执行 运行场景 在执行期间察看Vuser5.2.8. 获取测试结果在场景执行期间,Vuser会在执行事务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论