软件测试技术与测试实训教程讲座第12章性能测试和性能测试实训v12学时.ppt_第1页
软件测试技术与测试实训教程讲座第12章性能测试和性能测试实训v12学时.ppt_第2页
软件测试技术与测试实训教程讲座第12章性能测试和性能测试实训v12学时.ppt_第3页
软件测试技术与测试实训教程讲座第12章性能测试和性能测试实训v12学时.ppt_第4页
软件测试技术与测试实训教程讲座第12章性能测试和性能测试实训v12学时.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

软件测试技术与测试实训教程 黎连业 王华 李龙 黎照 北京:机械工业出版社 2012.05,第12讲:第12章 性能测试和性能测试实训,性能测试(Rerformance Testing)分基本性能测试和高级性能测试。基本性能测试的主要内容包括:安全可靠性、资源占用率测试、兼容性、易用性、用户文档、效率、可扩充性。高级性能测试的主要内容包括:并发性能、系统资源监控、大数据量、速度、疲劳等项内容,重点是并发性能测试。 性能测试以自动化测试为主,人工测试为辅。性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试总体来说是来自于客户而又服务于客户的,也就是说性能测试主要是根据客户需求,以达到客户的要求为目的,同时测试的结果又提供给客户使用。 性能尤其对于实时系统、嵌入式系统和在线服务系统要求更高些。这就要求我们要做好系统的性能测试,以保证系统能提供良好的高性能、高可用性。性能测试,一般都通过测试工具来模拟人为的操作而进行。性能测试的重点在于测试环境的建立、前期数据的设计与后期数据的分析。 随着客户对于软件的要求越来越高,在软件测试中,性能测试也随之变得越来越重要。 本章重点讨论以下内容: 性能测试的概述; 性能测试的基本要求; 性能测试的内容; 检查测试环境; 性能测试的执行流程; 性能人工测试常用的测试用例; 性能测试的自动化测试测试实训和操作方法。,12.1 性能测试的概述 12.1.1 性能测试的目的 性能测试主要是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈及问题,找到软件的可扩展点,优化软件,最后起到优化系统的目的。 性能测试的目的主要有以下几点: (1)评估系统的能力 性能测试主要考查系统的能力,它对系统的负荷和响应时间是相当重要的,也是验证系统能力的依据之一。 (2)识别体系中的弱点 性能测试考查系统受控的负荷还存在有哪些缺陷,并为解决这些缺陷提供路径。 (3)系统调优 性能测试的系统调优就是重复运行测试,验证系统的活动是否得到了预期的结果,从而改进系统性能。检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中隐含的问题或冲突。 (4)验证稳定性及可靠性 验证稳定性及可靠性是在一个生产负荷下,执行一定时间的测试,是评估系统稳定性和可靠性是否满足要求的唯一方法。,12.1.2 性能测试的先决条件 性能测试的先决条件包括: (1)针对性能测试对象的技术要成熟; (2)性能测试的测试环境要稳定; (3)进行性能测试的准备要充分; (4)性能测试的目标要明确; (5)性能测试的计划要详细; (6)性能测试的数据要精确以及要有代表性; (7)性能测试的描述要精练。 满足了这些之后我们才能够进入测试阶段。,12.1.3性能测试准备 应该如何做好性能测试的准备工作? 在开始测试前: 要测试什么或测试的对象是谁? 要测试什么问题或我们想要弄清楚或是论证的问题? 哪些因素会影响测试结果? 需要怎样的测试环境? 应该怎样测试? 只有在认真调查测试需求和仔细分析测试任务后,才有可能弄清以上一系例的问题,只有对测试任务非常清楚,测试目标极其明确的前提下,我们才可能制定出切实可行的测试计划。明确测试目标,详尽测试计划在对测试需求充分了解的基础上,制定尽可能详细的测试计划。,1)性能测试技术准备 在目前的环境下,要求测试人员在短时间掌握所有的软、硬件知识是不太现实的,但平时测试人员应抓紧对测试工具和测试理论的研究,在测试计划中,应给研究测试对象和测试工具分配充足的学习时间,只有在充分掌握测试工具,完全了解测试对象的前提下,我们才能够实施测试。 2)配置测试环境 只有在充分认识测试测试对象的基础上,我们才知道每一种测试对象,需要什么样的配置,才有可能配置一种相对公平、合理的测试环境(这在性能对比测压中尤其重要)。考虑到其它因素,如网络锁、网速、显示分辩率,数据库权限、容量等对测试结果的影响。如条件允许,我们最好能配置几组不同的测试环境。,3)测试数据的获取和处理 在所有的测试中,测试数据的收集工作都是较为困难的,每一种软件都有它的文件格式,有的软件还有几种格式。在这种情况下,我们只能把第三方格式 的数据转换成每一种被测试软件自已的格式。同时,还应对数据作一定的处理,如处理数据冗余,处理显示风格等。如在测试时会更新数据,操作前一定要备份数据。其外,还应评估数据格式和数据量对测试的影响,如有必要,应准备多组数据。最后,一定要检查测试数据的有效性,避免损坏数据对测试结果的影响。,12.2 性能测试的基本要求 进行性能测试时所要达到的基本要求有以下几点。 12.2.1 性能测试所需相关文档 在进行性能测试之前我们应掌握的相关文档有: (1)用户需求规格说明及其相关文档; (2)软件开发的前期数据; (3)前期工作的详细资料(单元测试、集成测试、功能测试等的相关文档); (4)在真正进入性能测试之前的软件数据的备份等; (5)性能测试的测试大纲; (6)性能测试的审批文稿及所签署的合同等。,12.2.2 对性能测试相关文档的要求 进行性能测试之前,有关文档资料至关重要,直接影响性能测试的准确性。这就要求所提供的文档尽可能的详细,数据准确无误。 性能测试完成后,形成一系列的报告文档,这些报告文档要经过审批,并且面向客户,所以要做到简单明了,步骤详尽,数据完整。,12.2.3 对进行性能测试人员、软件和系统的要求 对从事性能测试的人员需要他们不仅有性能测试方面的基础知识,而且还需要对系统性能有详细的了解。需要具备: 1. 性能测试的基础知识 (1) 具有扎实的计算机专业基础知识(操作系统的原理、 数据库、web应用服务器、计算机网络等原理); (2) 要具有实际性能测试工作的经验; (3) 要会使用性能测试的相关工具; (4) 要掌握性能测试中的各项原理和测试步骤。,2. 性能测试人员的工作要求 性能测试人员的工作要求主要有以下几点: 性能测试人员应先收集客户需求,了解客户所要求的性能指标; 对系统架构、网络架构要了解; 对系统通信协议要了解; 对系统的开发语言要了解; 对数据库设计和管理要了解; 仔细阅读性能测试相关所有文档,对软件整体有准确详尽的了解; 研究性能测试计划,明确测试内容、测试流程。,12.3 性能测试的内容,12.3.1 性能测试的分类 性能测试主要分为以下三类: (1)应用在客户端性能的测试 应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。 (2)应用在网络上性能的测试 应用在网络上性能的测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。 (3)应用在服务器端性能的测试 对于应用在服务器上性能的测试,可以采用工具监控,也可以使用系统本身的监控命令,例如Tuxedo中可以使用Top命令监控资源使用情况。实施测试的目的是实现服务器设备、服务器操作系统、数据库系统、应用在服务器上性能的全面监控。,12.3.2 性能测试的方法策略 性能测试的方法一般有以下19点: 1. 性能的业务测试 2. 基准测试 3. 负载测试 4. 峰谷测试 5. 压力测试 6. 并发性测试 7. 容量测试 8 渗入测试 9. 配置测试 10 安全控制测试 11 文件系统测试 12 用户测试 13 内存测试 14 交换区SWAP 测试 15 打印机测试 16CPU测试 17 进程测试 18 活动的进程测试 19 对数据库及应用系统的监控,12.3.3 性能测试的调优 当现行的应用满足不了客户的需求时,我们应该对软件进行性能调优。那么性能调优的目标是什么?最大用户数、服务质量、最长响应时间、每秒支持的最大事务数都是性能调优的最终目标。了解了性能调优的目标后测量系统性能,然后根据测量系统性能的结果,分析出系统性能的瓶颈,通过性能调优解决瓶颈问题。而性能测试的调优过程中也是使用工具最多的测试环节。 一个标准的性能调优过程是: (1) 确定基准环境、基准负载和基准性能指标; (2) 调整系统运行环境和实现方法,执行测试。(包括硬件环境的调优、Weblogic调优、Oracle调优); (3) 记录测试结果、进行分析。,12.4 检查测试环境 检查测试环境是性能测试实施的一个重要环节,测试环境是否适合会严重影响性能测试结果的真实性和准确性。测试环境包括硬件环境和软件环境两个方面,硬件环境指测试必需的服务器、客户端、网络连接设备,以及辅助硬件设备(打印机/扫描仪等)所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。并且在测试中我们还要考虑到其它因素(网络锁、网速、数据库权限、容量等)对测试结果的影响。检查测试环境时,我们最好能配置几组不同的测试环境。 如何配置性能测试环境:,1 测试环境规划; 2 测试环境创建 3测试环境配置 4应用程序部署 5测试环境的使用 6 测试环境回收,12.5 性能测试的执行流程 性能测试的执行流程是性能测试的关键问题,这需要充足的测试前准备,性能测试的整体都需要依据测试流程来执行。如图12-1所示。,性能测试的执行流程有以下5点: (1)确定软件系统稳定,达到可以开始的标准后开始性能测试; (2)对软件的应用系统进行详细分析,定义压力测试的对象及目标,从而制定测试计划,然后测试计划进行评审,若通过则开始编写测试案例,若未通过则重复上面操作直到计划评审通过; (3) 编写好测试案例后,开始依据测试案例中所谈及的进行测试环境搭建,准备完整的测试数据,并且准备所需测试工具; (4)做好以上准备,则开始录制性能测试脚本,并逐步增强脚本;在实施方案的过程中,监视系统资源,进行具体测试,得出测试结果; (5)将所有测试数据及结果与客户所要求的性能指标相对比,若不能接受则进行性能调优,通过后结束性能测试。 性能测试常用的模板请参见本书2212 性能测试写作模板。,12.6 性能人工测试常用的测试用例 性能测试常用的测试用例分基本性能测试用例和高级性能测试用例。 1基本性能常用的测试用例 基本性能测试常用的测试用例可分为:安全可靠性测试、资源占用率测试、资源占用率测试、兼容性测试、易用性测试、易用性测试、用户文档测试、用户文档测试、效率测试、效率测试、可扩充性测试。 (1)安全可靠性测试常用的测试用例,(2)资源占用率测试常用的测试用例,(3)兼容性测试常用的测试用例,(4)易用性测试常用的测试用例,(5)用户文档测试常用的测试用例,(6)效率测试常用的测试用例,(7)可扩充性测试常用的测试用例,2 高级性能常用的测试用例 高级性能常用的测试用例主要内容包括:并发性能、系统资源监控、大数据量、速度、疲劳等项内容,重点是并发性能测试。 (1)并发性能 (2) 系统资源监控 (3)大数据量 (4)速度 (5)疲劳测试,性能测试指标一般有2种形式描述:产品需求指标和系统的性能指标。 1产品需求指标 产品需求指标是: 给出产品性能的主要指标,如在100000记录中查询一个特定数据的时间为0.5秒; 以某个已发布的版本为基线,如比上一个版本的性能提高30-50%; 和竞争对手的同类产品比较。 2 系统的性能指标 CPU利用率; 内存占用率; 磁盘I/O ; 响应时间。,12.7 性能测试的自动化测试实训操作方法 提到性能测试就不得不提到LoadRunner ,LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。,LoadRunner 下载地址: 使用LoadRunner完成性能测试一般分为四个步骤: 1)Vitrual User Generator 创建脚本 创建脚本,选择协议; 录制脚本; 编辑脚本; 检查修改脚本是否有误。 2)通过Controller来设置虚拟用户 创建Scenario,选择脚本 设置虚拟用户数 设置Schedule 如果模拟多机测试,需要设置Ip Spoofer 3)运行脚本 分析scenario 4)分析测试结果 下面我们将按照以上几步进行性能测试。,12.7.1待测测试模型介绍 手机信息管理系统,面向管理员及终端客户使用,基于C/S架构MIS系统(客户端/数据库管)本次测试的目的是:进行应用服务器的压力测试,找出应用服务器能够支持的最大客户端数。,1)场景描述一: 管理员登录模块,总共登陆24个用户,所有用户都同时并发操作。 管理员点击“管理员登陆” 登陆成功后后进入DS模块 点击查看用户信息 点击添加用户信息,输入信息并点击确定 点击“退出”按钮,退出系统 测试用例1如表12-2所示。,2)场景描述二: 用户使用手机信息模块,总共登录48个用户,每1秒登录1个用户 用户点选中查询条件 用户点击查询按钮,进行信息查询,进入显示页面。 点击“退出”按钮,退出系统 测试用例2如表12-3所示。,12.7.2 使用LoadRunner进行负载/压力测试 1)录制基本的测试脚本 用VuGen启动Visual User Generator 后, 通过菜单新建一个用户脚本, 选择系统通讯的协议。这里我们需要测试的手机信息管理系统为windows应用程序,后台MS SQL数据库,连接时使用ODBC数据源进行连接,此处我们选择,因ODBC和MS SQL Server 协议不能同时选择,所以我们是使用Winsock +MS SQL Server协议进行录制。如图12-2所示。,脚本录制时需要提到一点就是VuGen 中的脚本分为三部分:vuser_init、vuser_end 和Action。其中vuser_init 和vuser_end 有且仅有,而Action 是脚本中虚拟化部分(通过点击New 按钮,新建Action)。在录制需要登陆的系统时, 我们把登陆部分放到vuser_init 中,把登陆后的操作部分放到Action 中,把注销关闭登陆部分放到vuser_end 中。这样我们就可以通过空值Action 动作使用多个虚拟用户进行服务器访问了。 点击确定后会弹出如图12-3窗口,让我们加载应用程序,点击选项按钮可以进行选项设置,默认一般不需要改动。点确定 后,VuGen 开始录制脚本。录制过程中,在屏幕上会有一个工具条出现。录制的过程十分简单,我们在此不再多介绍。录制完成后, 按下“ 结束录制” 按钮,VuGen 自动生成用户脚本, 退出录制过程。 图12-4 为本次测试中登录后查询手机信息模块测试脚本片段,2)增强测试脚本功能 同QTP一样,当录制完一个基本的用户脚本后, 在正式使用前我们还需要增强测试脚本的功能, 增强脚本的灵活性。一般情况下, 使用如下几种方法来完善测试脚本。插入事务、插入结合点、插入注解、参数化输入。在这里我们不进行一一介绍,假如您有兴趣可以参考LoadRunner中文使用手册(完全版)。 3)执行测试 脚本录制完成后我们的下一步工作就是选择已经录制完成且能够正常运行的脚本,并创建虚拟用户,来展开测试执行工作。 打开Controller工具弹出如图12-5窗口,选择刚才录制并保存好的脚本,添加到方案中,点确定按钮出现如图12-6所示,根据需要修改虚拟用户数量,这里我们根据场景选择“24”,您可以根据不同场景选择不同数字如图12-71所示。,点“编辑计划”细化方案,计划名里选择计划种类:加压,缓慢加压、默认计划或新建立计划。 默认计划:同时加载

温馨提示

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

评论

0/150

提交评论