性能测试理论基础培训.pptx
1 什么是软件性能?2软件为什么会有性能?3 什么性能测试?4 如何做性能测试?5 如何定位性能根源,性能的瓶颈究竟在哪儿?6 如何提升性能?请大家衡量,做性能测试都需要哪方面能力?,问题?,软件性能测试,王云鹏,性能测试概述性能测试步骤 测试实践(举例),目录,完成此培训之后:了解性能测试的概念了解性能测试的步骤理解基本的性能指标研发中心内部统一性能测试相关概念,目标,性能测试概述 性能测试的步骤 测试实践(举例),目录,软件的性能是个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等。,什么是软件性能,用户视角的软件性能 管理员视角的软件性能 产品开发人员视角的软件性能,用户视角的软件性能 从用户角度来说,软件性能就是软件对用户操作的响应时间。,什么是软件性能,管理员视角的软件性能 系统的响应时间;系统运行时服务器的状态,如CPU利用情况、内存使用情况等;系统是否能够实现扩展;系统支持多少用户访问;系统性能可能的瓶颈在哪里;系统是否支持7*24小时的业务访问。,什么是软件性能,产品开发人员视角的软件性能 用户关心的响应时间;管理员关心的系统可扩展性等;架构设计是否合理;数据库设计是否合理;代码是否存在性能方面的问题;系统中是否有不合理的内存使用方式。,什么是软件性能,性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试!,性能测试的概念,性能测试的目的,评估系统的能力 识别体系中的弱点 验证系统可伸缩性(resilience)和可靠性(reliability)系统调优,并发用户数响应时间吞吐量资源利用率,性能测试的指标,并发是指在某一给定时间内,某个特定点上进行会话操作的用户数。注意:此处需要区别于A6、A8的并发数概念,我们产品并发的概念实际是在线用户数。,性能测试的指标,响应时间指的是客户端发出请求到得到响应的整个过程所经历的时间。,性能测试的指标,吞吐量是指单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力。一般来说,吞吐量用请求数/秒或页面数/秒来衡量,从业务的角度,吞吐量也可以用访问人数/天或处理的业务数/小时等单位来衡量。从网络的角度来说,也可以用字节数/天等单位来考察网络流量。,性能测试的指标,资源利用率是指系统资源的使用程度,比如服务器的CPU利用率、内存利用率、磁盘利用率、网络带宽利用率等。除了上述资源,我们还应该考虑数据库连接池使用情况,JVM内存使用情况,数据库cpu占用情况等因素,性能测试的指标,性能测试体系,负载测试压力测试容量测试网络性能测试可靠性测试(疲劳测试),性能测试的内容,含义主要用于描述常规的性能测试,通过模拟生产运行的业务压力和使用场景组合来测试系统的性能是否满足生产要求。目的在特定的运行条件下验证系统的能力状况,负载测试,含义压力测试是为了发现在什么条件下应用程序的性能会变得不可接受。压力测试与负载测试的比较实现方法基本相同测试的目的不同,压力测试,含义确定测试对象在给定时间内能够持续处理的最大负载或工作量 使测试对象处理大量的数据,以确定是否达到了将使被测对象发生故障的极限目的 测试单业务在一定数据容量下性能表现,比如通讯录、比如选人,容量测试,含义测试网络带宽、延迟、负载和端口的变化对用户的响应时间的影响 实际应用主要是测试用户数目与网络带宽的关系,评估网络的依赖程度,网络性能测试,含义软件可靠性:在规定条件下,在规定时间内,软件不引起系统失效的概率可靠性测试:在有使用代表性的环境中,持续运行系统某些功能,验证系统稳定性的过程目的尽量模拟客户的使用环境,一定业务压力下,持续运行过程N*24小时,测试系统的稳定性,可靠性测试,性能测试概述 性能测试的步骤 压力测试,目录,性能测试步骤,性能测试流程,测试需求分析主要有以下的几个关键点:测试的目的是什么 评估系统的能力 识别体系中的弱点 验证系统可伸缩性(resilience)和可靠性(reliability)系统调优,测试需求分析,测试要素分析:用户数量 测试执行的功能 用户分布(即执行每种功能的用户数)硬件环境(包括网络环境)软件环境 数据量其它分析 系统运行中所出现的问题有什么特征或规律 疲劳测试执行时间多少 性能需求的指标是什么等,测试需求分析,测试目的不同,则相应的测试策略不同。性能符合性验证负载测试、疲劳强度测试。性能能力验证压力测试、疲劳强度测试。性能调优测试-调整-测试。负载测试、压力测试、疲劳强度测试。,制定测试计划,测试需求测试策略测试场景测试环境测试准备人员及时间安排问题与对策,制定测试方案,测试环境准备测试数据准备测试用例、场景准备测试工具准备,性能测试准备,开发测试脚本布置测试场景执行测试场景,执行测试方案,硬件瓶颈分析方法 内存分析方法 处理器分析方法 磁盘I/O分析方法 网络分析方法,测试结果分析,内存分析方法 1.首先查看可用内存(MemoryAvailable Mbytes)计数器指标。若值较小则可能有内存问题,需进一步分析。2.注意Pages/sec、Pages Read/sec和Page Faults/sec计数器的值。Pages/sec和Page Faults/sec的值持续很高,很可能内存问题,若Pages Read/sec的值超过5,则可判断存在内存问题。3.根据Physical Disk计数器的值分析性能瓶颈。如果磁盘的Average Disk Queue Length计数器增加的同时Pages Read/sec并未降低,则可判断内存有问题。,测试结果分析,处理器分析方法 1.首先查看System%Total Processor Time计数器的值。该值体现的是CPU的平均利用率,若超过90%,则说明存在处理器方面的瓶颈。2.其次查看每个CPU的Processor%User Time计数器的值。若应用服务器的%User Time值较大,可以考虑是否能通过算法优化等方法降低这个值。若数据库服务器的%User Time值较大,可考虑对数据库系统进行优化。3.查看SystemProcessor Queue Length计数器的值。当该值大于CPU数量的总数+1时,说明存在处理器方面的问题。,测试结果分析,网络分析方法 1.查看Network Interface Bytes Total/sec计数器的值。用Bytes Total/sec计数器的值和网络的带宽进行比较,若超过50%,则说明网络存在性能瓶颈问题。,测试结果分析,软件瓶颈分析方法 分析事务响应时间、吞吐量,确定是否存在性能问题,若发现存在性能问题,则找出响应时间不符合要求或者出现多个失败的事务,对其进行分解,然后对其进行网页细分,以确定影响性能的元素。,测试结果分析,测试指标:描述与测试场景对应的事务平均响应时间、事务吞吐率、资源消耗指标、运行的用户数等信息。结果分析与总结:根据测试目标,描述最后分析得到的结果,并给出相应的建议。,编写测试报告,性能测试概述 性能测试的步骤 测试实践(举例),目录,某网站测试需求 可以支持100个并发用户执行各种查询操作,要求各查询操作的响应时间在5秒以内,服务器CPU利用率在80%以下。,性能测试实践,性能需求分析 测试目的:验证是否满足应用要求(性能符合性验证)。测试要素:并发用户数-100。测试功能-仪器信息与使用预约、大型精密仪器机组查询、交流平台搜索、会展信息搜索。用户分布-平均分配。数据量、软件、硬件环境委托方负责准备。,性能测试实践,压力测试用例 明确测试目的 准备测试环境 确定测试数据 确定测试运行程序(脚本等)明确预期结果,性能测试实践,测试场景 场景1:100个用户同时执行仪器信息使用预约操作。场景2:100个用户同时执行大型精密仪器查询操作。场景3:100个用户同时执行交流平台搜索操作。场景4:100个用户同时执行会展信息搜索操作。场景5:100个用户同时执行不同的操作,其中25个用户执行仪器信息与使用预约操作,25个用户执行大型精密仪器机组查询操作,25个用户执行交流平台搜索操作,25个用户执行会展信息搜索操作。,性能测试实践,监测的系统资源网络阻塞情况主机CPU使用情况内存使用情况缓存使用情况数据库系统的数据锁,性能测试实践,LoadRunner介绍 Virtual User Generator 用来录制脚本、编辑脚本 Controller 用来布置测试场景、执行测试场景 Analysis 用来对测试结果进行分析,性能测试实践,测试流程图,CompuWare 公司的QALoad;Mercury Interactive公司的LoadRunner;Microsoft公司的WAS;RadView公司的WebLoad;IBM公司的RPT;开源工具:OPENSTA等。,常见性能测试工具,1、简介 QALoad模拟成百上千的用户并发执行关键业务而完成对应用程序的测试,并针对所发现问题对系统性能进行优化,确保应用的成功部署。QALoad不单单测试WEB应用,还可以测试一些后台的东西,比如SQL Server等,只要是它支持的协议,都可以测试。2、特征1)自动捕获实际执行过程,自动生成测试脚本;2)通过控制台控制各个Agent,进行脚本分配;3)应用广泛,支持多种协议,如DB2、ODBC、WWW、Winsock等等。,QALoad,1、简介LoadRunner 是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能检测来确认和查找问题,能够对整个企业架构进行测试。通过使用Loadrunner,企业能够最大限度的缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner 能支持广范的协议和技术,功能比较强大,可以为特殊环境提供特殊的解决方案。2、特征)轻松创建虚拟用户;)创建真实的负载;)定位性能问题;)分析结果以精确定位问题所在;)重复测试保证系统发布的高性能;)支持Enterprise Java Beans的测试;7)支持无线应用协议;8)支持Media Stream应用。,LoadRunner,、简介:WAS-Web Application Stress是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。、特征:1)可以数种不同的方式建立测试指令:包含以手动、录制浏览器操作步骤、或直接录入IIS的记录文件、录入网站的内容及录入其它测试程序的指令等方式;2)支持多种客户端接口;3)支持多用户:利用多种不同的认证方式仿真实际的情况。,WAS,、简介:WebLoad是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;WebLoad通过模拟真实用户的操作,生成压力负载来测试web的性能。、特征:)用户创建的是基于javascript的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能。)如有需要可以在做负载测试的同时,使用服务器监控工具对服务器端的内容进行记录那样使负载测试更加全面。,WebLoad,1、简介RPT-Rational Performance Tester是IBM基于Eclipse平台开发出来的最新性能测试解决方案。它可以有效地帮助测试人员和性能工程师验证系统的性能,识别和解决各种性能问题。2、特征 在为性能测试员和性能优化人员提供了前面所提到的各种性能测试能力以外,它还提供了可视化编辑器,一方面可以使新的测试人员可以在无需培训和编程的情况下,即可快速上手完成性能测试;另一方面,也为需要高级分析和自定义选项的专家级测试人员,提供了对丰富的测试信息的访问和定制能力、自定义 Java 代码插入执行能力、自动检测和处理可变数据的能力。,RPT,1、简介OpenSTA-Open System Testing Architecture是专用于B/S结构的、免费的性能测试工具,可以模拟很多用户来访问需要测试的网站,它是一个功能强大、自定义设置功能完备的软件。2、特征1)免费、源代码开放;2)自定义功能设置大部分需要通过Script来完成,因此,在真正的使用这个软件之前,必须学习好它的Script编写。,OPENSTA,Thanks!,