资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
性能测试1 性能测试概念性能测试是为描述测试对象性能相关的特征,并对其进行评价而实施而执行的一类测试。它主要通过自动化的测试工具模拟多种正常、峰值以及异常条件来对系统的各项性能指标进行测试。通常把负载测试、压力测试、配置测试、并发测试、容量测试、可靠性测试和失败测试等统称为性能测试。性能测试是系统测试的一种。功能测试:某个功能点。性能测试:整个系统,包括软件和硬件。软件效率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。衡量一个软件的性能,需要从软件效率的以下 3 点考虑:时间特性。在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐量的能力。资源利用性。在规定条件下,软件产品执行其功能时,使用合适数量和类别的资源能力。效率依从性。软件产品遵循与效率相关的标准或约定的能力。2 性能测试的分类负载测试(Load Testing) 。负载测试是指在一定的软件、硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的要求范围内,以此确定系统所能承载的最大用户数、最大有效用户数以及不同用户数下的系统响应时间及服务器的资源利用率。压力测试(Stress Testing) 。压力测试是指在一定的软件、硬件及网络环境下,模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下并长时间连续运行,以测试服务器在高负载情况下是否能稳定工作。与负载测试获得峰值性能数据不同,压力测试强调在极端情况下系统的稳定性。容量测试(Volume Testing) 。容量测试是指在一定的软件、硬件及网络环境下,数据库中构造不同数量级别的数据记录,运行一种或多种业务在一定虚拟用户数量的情况下,获取不同数量级别的服务器性能指标,以确定数据库的最佳容量和最大容量。容量测试不仅可以对数据库进行,还可以对硬件处理能力、各种服务器的连接能力等进行,一次来测试系统在不同容量级别下是否能达标指定的性能。容量测试和负载测试的区别在于,容量测试主要关心 how much,而负载测试则同时强调 how much 和 how fast。配置测试(Configuration Testing) 。配置测试是指在不同的软件、硬件以及网络环境配置下,运行一种或多种业务,在一定的虚拟用户数量情况下,获得不同配置的性能指标,用于选择最佳的设备及参数配置。通过产生不同的配置,来得到系统性能的变化状况。基准测试(Benchmark Testing) 。基准测试是指在一定的软件、硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统测评的过程中,通过运行相同的业务场景比较测试结果,确定调优的结果是否达到预期效果或者为系统的选择提供决策数据。基准测试一般基于配置测试,通过配置测试得到数据,并将这个数据作为基准来比较每次调优后的性能是否有所改善(EVEREST Ultimate 工具获取当前内存的读写速度) 。并发测试(Concurrency Testing) 。并发测试是指通过模拟多个用户并发访问同一个应用、存储过程或数据记录及其他并发操作,测试是否存在死锁、数据错误等故障。为了避免数据库或函数方法在并发下的错误,需要专门针对每个模块进行并发测试。理想情况下,性能测试应该在哪些阶段介入,见下图。并 发 测 试压 力 测 试容 量 测 试负 载 测 试基 准 测 试配 置 测 试编码测试编码阶段(压力/并发) ,编码 -测试之间(容量测试) ,测试阶段(负载/配置/基准) 。性能指标:响应时间:响应时间反映完成某个业务所需要的时间。吞吐量:吞吐量反映单位时间内能够处理的事务数目。服务器资源占用:服务器资源占用反映在负载下系统的资源利用率。3 性能测试基本过程性能测试的基本过程如图所示。性 能 测 试 计 划性 能 测 试 用 例测 试 脚 本 编 写测 试 场 景 设 计测 试 场 景 运 行场 景 运 行 监 控运 行 结 果 分 析系 统 性 能 调 优性 能 测 试 总 结性 能 测 试 需 求 分 析可 能 会 存 在 多次 进 行 的 操 作典型的性能测试过程性能测试需求分析:把客户的真正需求搞清楚,是性能测试最关键的过程。性能测试计划:在性能测试计划中,需要阐述产品、项目的背景,将前期的需要测试性能需求明确,并落实到文档中。指出性能测试可参考的文档,并将这些文档的作者、编写时间、获取途径逐一列出,形成一个表格,这些文档包括用户需求规格说明书、会议纪要(内部讨论、与客户讨论等最终确定的关于性能测试内容)等性能测试相关需求内容文档。系统性能测试的环境要尽量和客户上线的环境条件相似。性能测试用例:性能测试用例应结合用户应用系统的场景,设计出相应的性能测试用例,用例应能覆盖到测试需求。测试脚本编写:要着重强调几点,协议的正确选用,测试脚本不仅可以使用性能测试工具来完成,在必要的时候,可以使用其他语言编程完成同样的工作,在应用工具录制或者编写脚本完成以后,还需要去除脚本不必要的冗余代码,对脚本进行完善,需要加入集合点、检查点、事务以及对一些数据进行参数化、关联等处理,在编写测试脚本的时候,需要注意编码的规范和代码的编写质量问题,将脚本纳入配置管理。测试场景设计:测试场景设计是以性能测试用例、测试脚本编写为基础的,脚本编写完成,需要在脚本中进行如下处理,如需要进行并发操作,则加入集合点;考察某一部分业务处理响应时间,则需要插入事务;为检查系统是否进行正确的执行相应功能而设置的检查点;输入不同的业务数据,则需要进行参数化。关于测试场景的设计要着重强调几点,性能测试工具都是用进行或者线程来模拟多个虚拟用户,按进程运行每个虚拟用户,将会占用大量 RAM,按线程运行每个虚拟用户,将共享父驱动进程的内存,场景设计如果存在有执行次序依赖关系的脚本,在场景设计时不要弄错顺序,场景的相关设置项也是需要关注的重要内容,以 LoadRunner 为例,如需要虚拟 IP,需要选中菜单“Enable IP Spoofer”,如应用了集合点,需要单击菜单“Rendezvous.”进行集合点策略的设定,如需要多台负载机进行负载,需要单击“Load Generators”进行负载机的连接测试。工具名称 功能简介JmeterJmeter 可以完成针对静态资源和动态资源(Servlets、Perl 脚本、Java 对象、数据查询、FTP服务等)的性能测试,可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能、提供图形化的性能分析OpenSTAOpenSTA 可以模拟大量的虚拟用户,结果分析包括虚拟用户响应时间、Web 服务器的资源使用情况、数据库服务器的使用情况,可以准确地度量负载测试的结果DbMonster DbMonster 是一个生成随机数据,用来测试 SQL数据库的压力测试工具开源性能测试工具TpTest TpTest 提供测试 Internet 连接速度的简单方法Mercury LoadRunnerMecrury LoadRunner 是一种预测系统行为和性能的工业级标准性能测试负载测试工具。通过模拟上千万用户实施并发负载及实时性能检测的方式来确认和查找问题,LoadRunner 能够对整个架构进行测试。支持 Web(HTTP/HTML) 、Windows Sockets、File Transfer Protocol(FTP) 、Media Player( MMS) 、ODBC、MS SQL Server 等协议商业性能测试工具IBMRational Performance Tester适用于团队验证 Web 应用程序的可伸缩性的负载和性能测试工具,引入了新的技术进行负载测试的创建、修改、执行和结果分析Microsoft Application Center Test它可以对 Web 服务器进行强度测试,分析 Web应用程序(包括 ASPX 页及其使用的组件)的性能和可伸缩性问题。通过打开多个服务器连接并迅速发送 HTTP 请求,Application Center Test 可以模拟大量用户免费性能测试工具Microsoft Web Application Stress Tool由微软公司的网站测试人员开发,专门用来进行实际网站压力测试的一套工具。可以以数种不同的方式建立测试指令:包含以手工、录制浏览器操作的步骤,或直接录入 IIS 的记录文件、录入网工具名称 功能简介站的内容及录入其他测试程序的指令等方式测试场景运行:测试场景运行时关系到测试结果是否准确的一个重要过程。场景运行监控:关于场景的监控需要注意几点,性能测试负载机可能有多少台,负载机的时钟要一致,保证在监控过程中的数据是同步的;场景的运行监控也会给系统造成一定的负担,因为在操作过程中需要搜集大量的数据,且存储到数据库中,所以尽量搜集与系统测试目标相关的参数信息,无关内容不必进行监控;通常,只有管理员才能够对系统的资源等进行监控;运行场景的监控需要对要监控的数据指标有非常清楚的认识,同时还要对性能测试工具非常熟悉。运行结果分析:性能测试执行过程中,性能测试工具搜集相关性能测试数据,待执行完成后,这些数据会存储到数据表或者其他文件中。为了定位系统性能问题,需要系统学习这些性能测试结果。目前,广泛被大家应用的性能分析方法就是“拐点分析” 。 “拐点分析”方法是一种利用性能计数器曲线图上的拐点进行性能分析的方法。它的基本思想就是性能产生瓶颈的主要原因就是因为某个资源的使用达到了极限,此时表现为随着压力的增大,系统性能却出现急剧下降,这样就产生了“拐点”现象。当得到“拐点”附近的资源使用情况时,就能定位出系统的性能瓶颈。系统性能调优:在进行性能调整的时候,最好一次只调整一项内容或者一类内容,避免一次调整多项内容而引起性能提高却不知道是由于调整哪项关键指标而改善性能的。进行系统的调优过程中好的策略是按照由易到难的顺序对系统性能进行调优。系统调优由易到难的先后顺序如下:硬件问题;网络问题;应用服务器、数据库等配置问题;源代码、数据库脚本问题;系统构架问题。很多情况下,系统性能不是十分理想的一个重要原因就是,没有对应用服务器、数据库等软件进行调优和设置引起的,如对 tomcat 系统调整堆内存和扩展内存的大小,数据库引入连接池技术等。但是由于涉及源代码的改变有可能会引入缺陷,所以在调优后,不仅需要性能测试,还要对功能进行验证,以验证是否正确。性能测试总结:性能测试总结不仅使我们能了解到如下内容:性能测试需求覆盖情况;性能测试过程中的问题;如何分析、调优、解决的;测试人员、进度控制与实际执行偏差;性能测试过程中遇到的各类问题是如何控制的。而且,还能描述经过该产品/ 项目性能测试后有哪些经验和教训等内容。通常一份性能测试总结报告需要阐述产品、项目的背景,将前期的性能测试需求明确,并落实到文档中。指出性能测试可参考的一些文档,并将这些文档的作者、编写时间、获取途径逐一列出,形成一个表格,这些文档包括:用户需求规格说明书、会议纪要(内部讨论、与客户讨论等最终确定的关于性能测试内容)等与性能测试相关的需求内容文档。4 Vuser 类型1. 所有协议(All Protocols):所有可用的协议列表。2. 应用程序员部署方案(Application Deployment Solution):适用于Citrix_ICA 协议。3. 客户端/ 服务器( Client/Server):适用于 DB2 CLI、Domain Name Resolution(DNS) 、Informix、MS SQL Server、ODBC、Oracle(2Tier) 、Sybase Ctlib、 Sybase Dblib 和 Windows Sockets 协议。4. 自定义(Custom):适用于 C Vuser、Java Vuser、
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号