资源预览内容
第1页 / 共61页
第2页 / 共61页
第3页 / 共61页
第4页 / 共61页
第5页 / 共61页
第6页 / 共61页
第7页 / 共61页
第8页 / 共61页
第9页 / 共61页
第10页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件性能测试软件性能测试孙晓明孙晓明2018-09-25内容概要n n1.性能测试介绍n n2.性能测试过程n n3.性能测试举例1.性能测试介绍n n1.1什么是软件性能n n1.2性能指标介绍n n1.3什么是性能测试n n1.4性能测试类型n n1.5性能测试模型举例1.1什么是软件性能系统的性能是个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等。n n用户视角的软件性能用户视角的软件性能n n 管理员视角的软件性能管理员视角的软件性能n n 开发开发人员视角的软件性能人员视角的软件性能1.1什么是软件性能n n1.1.1用户视角的软件性能从用户角度来说,软件性能就是用户操作软件的响应时间。访问软件每个功能或页面的响应速度快不快、卡不卡。1.1什么是软件性能n n1.1.2管理员视角的软件性能系统的响应时间;系统的响应时间;系统运行时服务器的状态,如系统运行时服务器的状态,如CPUCPU、内存、磁、内存、磁盘、网络带宽等使用情况;盘、网络带宽等使用情况;系统是否能够实现扩展;系统是否能够实现扩展;系统支持多少用户访问;系统支持多少用户访问;系统支持多大数据量的处理;系统支持多大数据量的处理;系统性能可能的瓶颈在哪里;系统性能可能的瓶颈在哪里;系统是否支持系统是否支持7*247*24小时的业务访问。小时的业务访问。1.1什么是软件性能n n1.1.3产品开发人员视角的软件性能用户关心的响应时间;管理员关心的系统可扩展性等;架构设计是否合理;数据库设计是否合理;代码是否存在性能方面的问题;系统中是否有不合理的内存使用方式。1.2性能指标介绍n n并发用户数-Vusersn n响应时间ResponseTimen n吞吐量Throughputn n事物-Transcationn n事物处理能力-TPS(TranscationPerSecond)(TranscationPerSecond)n n点击率-HPS(HitPerSecond)(HitPerSecond)n n资源利用率SystemResource1.2.1并发用户数(Vusers)n n并发用户数是指在某一给定时间内,某个特定点上进行会话操作的用户并发用户数是指在某一给定时间内,某个特定点上进行会话操作的用户并发用户数是指在某一给定时间内,某个特定点上进行会话操作的用户并发用户数是指在某一给定时间内,某个特定点上进行会话操作的用户数。数。数。数。并发并发并发并发的两种的两种的两种的两种情况:情况:情况:情况:l l一一种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这种操种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这种操作一般指做同一类型的业务。比如,所有用户同一时刻做并发登陆,同一时刻做作一般指做同一类型的业务。比如,所有用户同一时刻做并发登陆,同一时刻做表单提交。表单提交。l l另外另外一种并发是广义范围的并发,这种并发与前一种并发的区别是,尽管多个用一种并发是广义范围的并发,这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或都操作可以是相同的,也户对系统发出了请求或者进行了操作,但是这些请求或都操作可以是相同的,也可以是不同的。比如,在同一时刻有用户在登录,有用户在提交表单。可以是不同的。比如,在同一时刻有用户在登录,有用户在提交表单。求并发用户数公式求并发用户数公式求并发用户数公式求并发用户数公式n n在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务的角度关注应该设置多少个并发数比较合理。从业务的角度关注应该设置多少个并发数比较合理。n n下面找一个典型的上班签到系统,早上下面找一个典型的上班签到系统,早上8 8点上班,点上班,7 7点半到点半到8 8点的点的3030分钟的时间里分钟的时间里用户会登录签到系统进行签到。公司员工为用户会登录签到系统进行签到。公司员工为10001000人,平均每个人,平均每个员工登录员工登录签到系统签到系统的时长为的时长为5 5分钟。可以用下面的方法计算。分钟。可以用下面的方法计算。n nC=1000/30*5=166.7C=1000/30*5=166.7n nC C表示平均并发用户数,那么对这个签到系统每分钟的平均在线用户数为表示平均并发用户数,那么对这个签到系统每分钟的平均在线用户数为166166n n当然,在性能测试上,任何公式都不是严谨的,最重要的是对系统做出有效正确当然,在性能测试上,任何公式都不是严谨的,最重要的是对系统做出有效正确的分析。的分析。1.2.2响应时间(responsetime)n n响应时间响应时间指的是客户端发出请求到得到响应指的是客户端发出请求到得到响应的整个过程所经历的时间。的整个过程所经历的时间。n n一般我们对平均响应时间感兴趣,在负载增大一般我们对平均响应时间感兴趣,在负载增大时响应时间的一贯性也很重要。提高负载后若时响应时间的一贯性也很重要。提高负载后若响应时间曲线出现锯齿,往往说明性能乏善可响应时间曲线出现锯齿,往往说明性能乏善可陈,还有潜在的不稳定。陈,还有潜在的不稳定。1.2.3吞吐量(Throughput)n n吞吐量:指在一次性能测试过程中网络上传输的数据量的总和。吞吐量:指在一次性能测试过程中网络上传输的数据量的总和。吞吐量:指在一次性能测试过程中网络上传输的数据量的总和。吞吐量:指在一次性能测试过程中网络上传输的数据量的总和。n n对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。n n如如一个大型工厂,他们的生产效率与生产速度很快,一天生产一个大型工厂,他们的生产效率与生产速度很快,一天生产10W10W吨的货吨的货物,结果工厂的运输能力不行,就两辆小型三轮车一天拉物,结果工厂的运输能力不行,就两辆小型三轮车一天拉2 2吨的货物,比吨的货物,比喻有些夸张,但我想说明的是这个运输能力是整个系统的瓶颈。喻有些夸张,但我想说明的是这个运输能力是整个系统的瓶颈。n n提示:用提示:用吞吐量来衡量一个系统的输出能力是极其不准确的,用个最简单的例子说明,一个吞吐量来衡量一个系统的输出能力是极其不准确的,用个最简单的例子说明,一个水龙头开一天一夜,流出水龙头开一天一夜,流出1010吨水;吨水;1010个水龙头开个水龙头开1 1秒钟,流出秒钟,流出0.10.1吨水。当然是一个水龙头的吨水。当然是一个水龙头的吞吐量大。你能说吞吐量大。你能说1 1个水龙头的出水能力是个水龙头的出水能力是1010个水龙头的强?所以,我们要加单位时间,看个水龙头的强?所以,我们要加单位时间,看谁谁1 1秒钟的出水量大。这就是吞吐率秒钟的出水量大。这就是吞吐率。n n吞吐率:单位吞吐率:单位吞吐率:单位吞吐率:单位时间内网络上传输的数据量,也可以指单位时间内处理客户时间内网络上传输的数据量,也可以指单位时间内处理客户时间内网络上传输的数据量,也可以指单位时间内处理客户时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。请求数量。请求数量。请求数量。它是衡量网络性能的重要指标,通常情况下,吞吐率用它是衡量网络性能的重要指标,通常情况下,吞吐率用“ “字节字节数数/ /秒秒” ”来衡量,当然,你可以用来衡量,当然,你可以用“ “请求数请求数/ /秒秒” ”和和“ “页面数页面数/ /秒秒” ”来衡量。来衡量。其实,不管是一个请求还是一个页面,它的本质都是在网络上传输的数据,其实,不管是一个请求还是一个页面,它的本质都是在网络上传输的数据,那么来表示数据的单位就是字节数那么来表示数据的单位就是字节数。n n不过以不同的方式表达的吞吐量可以说明不同层次的问题。例如,以字节不过以不同的方式表达的吞吐量可以说明不同层次的问题。例如,以字节数数/ /秒方式表示的吞吐量主要受网络基础设置、服务器架构、应用服务器制秒方式表示的吞吐量主要受网络基础设置、服务器架构、应用服务器制约;以请求数约;以请求数/ /秒方式表示的吞吐量主要受应用服务器和应用代码的制约。秒方式表示的吞吐量主要受应用服务器和应用代码的制约。1.2.4事物(Transaction)n n事物:就是用户某一步或几步操作的集合。不过,我们要保证它有一事物:就是用户某一步或几步操作的集合。不过,我们要保证它有一事物:就是用户某一步或几步操作的集合。不过,我们要保证它有一事物:就是用户某一步或几步操作的集合。不过,我们要保证它有一个完整意义。比如用户对某一个页面的一次请求,用户对某系统的一个完整意义。比如用户对某一个页面的一次请求,用户对某系统的一个完整意义。比如用户对某一个页面的一次请求,用户对某系统的一个完整意义。比如用户对某一个页面的一次请求,用户对某系统的一次登录,淘宝用户对商品的一次确认支付过程。这些我们都可以看作次登录,淘宝用户对商品的一次确认支付过程。这些我们都可以看作次登录,淘宝用户对商品的一次确认支付过程。这些我们都可以看作次登录,淘宝用户对商品的一次确认支付过程。这些我们都可以看作一个事务。那么如何衡量服务器对事务的处理能力。又引出一个概念一个事务。那么如何衡量服务器对事务的处理能力。又引出一个概念一个事务。那么如何衡量服务器对事务的处理能力。又引出一个概念一个事务。那么如何衡量服务器对事务的处理能力。又引出一个概念- -TPS-TPS。1.2.5事物处理能力-TPSn nTPSTPS(TransactionTransactionPerPersecondsecond)每秒钟系统能够处理事务或交易的数每秒钟系统能够处理事务或交易的数每秒钟系统能够处理事务或交易的数每秒钟系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标。量,它是衡量系统处理能力的重要指标。量,它是衡量系统处理能力的重要指标。量,它是衡量系统处理能力的重要指标。1.2.6点击率-HPSn nHPSHPS(HitHitPerPersecondsecond)点击率可以看做是点击率可以看做是TPSTPS的一种特定情况。点击的一种特定情况。点击率更能体现用户端对服务器的压力。率更能体现用户端对服务器的压力。TPSTPS更能体现服务器对客户请求的更能体现服务器对客户请求的处理能力。处理能力。n n每秒钟用户向每秒钟用户向webweb服务器提交的服务器提交的HTTPHTTP请求数。这个指标是请求数。这个指标是webweb应用特应用特有的一个指标;有的一个指标;webweb应用是应用是“请求请求- -响应响应”模式,用户发一个申请,服模式,用户发一个申请,服务器就要处理一次,所以点击是务器就要处理一次,所以点击是webweb应用能够处理的交易的最小单位。应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和如果把每次点击定义为一个交易,点击率和TPSTPS就是一个概念。容易看就是一个概念。容易看出,点击率越大。对服务器的压力也越大,点击率只是一个性能参考出,点击率越大。对服务器的压力也越大,点击率只是一个性能参考指标,重要的是分析点击时产生的影响。指标,重要的是分析点击时产生的影响。n n需要注意的是,这里的点击不是指鼠标的一次需要注意的是,这里的点击不是指鼠标的一次“单击单击”操作,因为一操作,因为一次次“单击单击”操作中,客户端可能向服务器发现多个操作中,客户端可能向服务器发现多个HTTPHTTP请求请求。1.2.7资源利用率(SystemResource)n n资源利用率是指系统资源的使用程度,资源利用率是指系统资源的使用程度,比如应比如应用服务器或数据库服务器的用服务器或数据库服务器的CPUCPU利用率、内存利用率、内存利用率、磁盘利用率、网络带宽利用率等利用率、磁盘利用率、网络带宽利用率等。1.3什么是性能测试n n性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行的一种测试。 1.4性能测试类型n n负载测试n n压力测试(健壮性测试)n n稳定性测试(疲劳强度测试)1.4.1负载测试(loadtest)n n负载负载测试测试:主要用于描述常规的性能测试,通过模拟生产运行的业务压力和使用场景组合来测试系统的性能是否满足生产要求。通俗的说,这种测试方法的目标就是给系统以期望的负载量验证系统的能力。也就是说,没有速度要求的情况下,我的应用能支撑多少的并发用户,这里更多的是考虑容量。1.4.2压力测试(stresstest)n n压力测试:对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收用户请求的性能点,来获得系统能提供的最大的服务级别的测试。通俗地讲,压力测试是为了发现在什么条件下应用程序的性能会变得不可接受。n n超过容量压力下的表现,也关注应用的恢复能力,这里更多的是关注系统的变化。1.4.2压力测试(stresstest)n n用户量压力测试n n数据量压力测试1.4.3稳定性测试(stabilitytest)n n稳定性测试稳定性测试也叫-疲劳强度测试,通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。稳定性测试可以发现一些系统的性能和资源泄漏等问题。1.5性能测试模型举例-1理发店模型之性能测试理发店模型之性能测试理发店模型之性能测试理发店模型之性能测试n n相信大家都进过或见过理发店,一间或大或小的铺面,相信大家都进过或见过理发店,一间或大或小的铺面,1 1个或几个理发师,几张理发用的椅子和供顾客等待个或几个理发师,几张理发用的椅子和供顾客等待的长条板凳的长条板凳n n在这个理发店中,我们事先做了如下的假设:在这个理发店中,我们事先做了如下的假设: n n1.1.理发店共有理发店共有3 3名理发师;名理发师;n n2.2.每位理发师剪一个发的时间都是每位理发师剪一个发的时间都是1 1小时;小时;n n3.3.我们顾客们都是很有时间观念的人而且非常挑剔,我们顾客们都是很有时间观念的人而且非常挑剔,他们对于每次光顾理发店时所能容忍的等待时间他们对于每次光顾理发店时所能容忍的等待时间+ +剪剪发时间是发时间是3 3小时,而且等待时间越长,顾客的满意度小时,而且等待时间越长,顾客的满意度越低。如果越低。如果3 3个小时还不能剪完头发,我们的顾客会个小时还不能剪完头发,我们的顾客会立马生气的走人。立马生气的走人。1.5性能测试模型举例-2通过上面的假设我们不难想象出下面的场景:通过上面的假设我们不难想象出下面的场景:通过上面的假设我们不难想象出下面的场景:通过上面的假设我们不难想象出下面的场景: 1. 1.当理发店内只有当理发店内只有1 1位顾客时,只需要有位顾客时,只需要有1 1名理发师为他提供服务,其他两名名理发师为他提供服务,其他两名理发师可能继续等着,也可能会帮忙打打杂。理发师可能继续等着,也可能会帮忙打打杂。1 1小时后,这位顾客剪完头小时后,这位顾客剪完头发出门走了。那么在这发出门走了。那么在这1 1个小时里,整个理发店只服务了个小时里,整个理发店只服务了1 1位顾客,这位顾位顾客,这位顾客花费在这次剪发的时间是客花费在这次剪发的时间是1 1小时;小时; 2. 2.当理发店内同时有两位顾客,就会同时有两名理发师在为顾客服务,另外当理发店内同时有两位顾客,就会同时有两名理发师在为顾客服务,另外1 1位发呆或打杂。仍然是位发呆或打杂。仍然是1 1小时后,两位顾客剪完头出门。在这小时后,两位顾客剪完头出门。在这1 1小时里,小时里,理发店服务了两位顾客,这两位顾客花费在剪发的时间均为理发店服务了两位顾客,这两位顾客花费在剪发的时间均为1 1小时;小时; 3. 3.很容易理解,当理发店内同时有三位顾客时,理发店可以在很容易理解,当理发店内同时有三位顾客时,理发店可以在1 1小时内同时小时内同时服务三位顾客,每位顾客花费在这次剪发的时间仍然是均为服务三位顾客,每位顾客花费在这次剪发的时间仍然是均为1 1小时小时从上面几个场景中我们可以发现,在理发店同时服务的顾客数量从从上面几个场景中我们可以发现,在理发店同时服务的顾客数量从1 1位增加到位增加到3 3位的过程中,随着顾客数量的增多,理发店的整体工作效率在提高,但是每位位的过程中,随着顾客数量的增多,理发店的整体工作效率在提高,但是每位顾客在理发店内所呆的时间并未延长。顾客在理发店内所呆的时间并未延长。 当然,我们可以假设当只有当然,我们可以假设当只有1 1位顾客和位顾客和2 2位顾客时,空闲的理发师可以帮忙打杂,使得其他理发师的工作效率提高,位顾客时,空闲的理发师可以帮忙打杂,使得其他理发师的工作效率提高,并使每位顾客的剪发时间小于并使每位顾客的剪发时间小于1 1小时。不过即使根据这个假设,虽然随着顾客小时。不过即使根据这个假设,虽然随着顾客数量的增多,每位顾客的服务时间有所延长,但是这个时间始终还被控制在顾数量的增多,每位顾客的服务时间有所延长,但是这个时间始终还被控制在顾客可接受的范围之内,并且顾客是不需要等待的。客可接受的范围之内,并且顾客是不需要等待的。1.5性能测试模型举例-3不过随着理发店的生意越来越好,顾客也越来越多,新的场景出现了不过随着理发店的生意越来越好,顾客也越来越多,新的场景出现了不过随着理发店的生意越来越好,顾客也越来越多,新的场景出现了不过随着理发店的生意越来越好,顾客也越来越多,新的场景出现了。假设假设有一次顾客有一次顾客A A、B B、C C刚进理发店准备剪发,外面一推门又进来了刚进理发店准备剪发,外面一推门又进来了顾客顾客D D、E E、F F。因为。因为A A、B B、C C三位顾客先到,所以三位顾客先到,所以D D、E E、F F三位只好坐在长三位只好坐在长板凳上等着。板凳上等着。1 1小时后,小时后,A A、B B、C C三位剪完头发走了,他们每个人这次剪发所三位剪完头发走了,他们每个人这次剪发所花费的时间均为花费的时间均为1 1小时。可是小时。可是D D、E E、F F三位就没有这么好运,因为他们要先等三位就没有这么好运,因为他们要先等A A、B B、C C三位剪完才能剪,所以他们每个人这次剪发所花费的时间均为三位剪完才能剪,所以他们每个人这次剪发所花费的时间均为2 2小时小时包括等待包括等待1 1小时和剪发小时和剪发1 1小时。小时。 通过通过上面这个场景我们可以发现,对于理发店来说,都是每小时服务上面这个场景我们可以发现,对于理发店来说,都是每小时服务三位顾客三位顾客第第1 1个小时是个小时是A A、B B、C C,第二个小时是,第二个小时是D D、E E、F F;但是对于顾客;但是对于顾客D D、E E、F F来说,来说,“ “响应时间响应时间” ”延长了。如果你可以理解上面的这些场景,就延长了。如果你可以理解上面的这些场景,就可以继续往下看了。可以继续往下看了。 在在新的场景中,我们假设这次理发店里一次来了新的场景中,我们假设这次理发店里一次来了9 9位顾客,根据我们位顾客,根据我们上面的场景,相信你不难推断,这上面的场景,相信你不难推断,这9 9位顾客中有位顾客中有3 3位的位的“ “响应时间响应时间” ”为为1 1小时,小时,有有3 3位的位的“ “响应时间响应时间” ”为为2 2小时(等待小时(等待1 1小时小时+ +剪发剪发1 1小时),还有小时),还有3 3位的位的“ “响应响应时间时间” ”为为3 3小时(等待小时(等待2 2小时小时+ +剪发剪发1 1小时)小时)已经到达用户所能忍受的极限。已经到达用户所能忍受的极限。假如在把这个场景中的顾客数量改为假如在把这个场景中的顾客数量改为1010,那么我们已经可以断定,一定会有,那么我们已经可以断定,一定会有1 1位顾客因为位顾客因为“ “响应时间响应时间” ”过长而无法忍受,最终离开理发店走了过长而无法忍受,最终离开理发店走了2.性能测试过程n n测试需求分析n n制定测试方案n n执行测试方案n n测试结果分析n n系统性能调优n n编写测试报告2.1测试需求分析n n测试需求分析主要有以下的几个关键点:测试的目的是什么测试的目的是什么性能符合性验证:验证是否满足用户和应用的需要。性能能力验证:确定性能极限、是否存在性能瓶颈。性能调优:对系统的性能进行调试、优化。2.1性能测试需求分析性能测试要素分析性能测试要素分析性能测试要素分析性能测试要素分析: 用户访问数量(用户并发数量)用户访问数量(用户并发数量) 需要验证性能的功能点需要验证性能的功能点 需要制定符合实际应用的场景(登陆、注册、查询、需要制定符合实际应用的场景(登陆、注册、查询、新增、上传、下载、购物并发)新增、上传、下载、购物并发) 用户分布(即执行每种功能场景的用户数)用户分布(即执行每种功能场景的用户数) 硬件环境(包括网络环境)硬件环境(包括网络环境) 软件环境软件环境 数据量数据量其它分析其它分析其它分析其它分析系统运行中所出现的问题有什么特征或规律系统运行中所出现的问题有什么特征或规律疲劳测试执行时间多少疲劳测试执行时间多少性能需求的指标是什么等性能需求的指标是什么等2.2制定测试策略n n测试目的不同,则相应的测试策略不同。性能符合性验证负载测试、疲劳强度测试。负载测试、疲劳强度测试。性能能力验证压力测试、疲劳强度测试。压力测试、疲劳强度测试。性能调优测试测试- -调整调整- -测试。负载测试、压力测测试。负载测试、压力测试、疲劳强度测试。试、疲劳强度测试。2.3制定测试方案n n测试需求n n测试策略n n测试场景n n测试环境n n测试准备n n人员及时间安排n n问题与对策2.4执行测试方案n n搭建测试环境n n录制脚本、编辑优化脚本n n布置测试场景n n执行测试场景2.5测试结果分析n n性能符合性验证性能符合性验证:查看测试结果是否满足要求,查看测试结果是否满足要求,比如响应时间、资源利用率、吞吐量等等。比如响应时间、资源利用率、吞吐量等等。n n性能能力验证性能能力验证:查看测试结果是否满足要求,记查看测试结果是否满足要求,记录软件系统的性能变化曲线。录软件系统的性能变化曲线。对于确定是否存在性能瓶颈,首先判断是否存在硬对于确定是否存在性能瓶颈,首先判断是否存在硬件(包括网络)瓶颈问题,若不存在硬件瓶颈问题,件(包括网络)瓶颈问题,若不存在硬件瓶颈问题,则按照应用软件到系统软件(应用服务器、数据库则按照应用软件到系统软件(应用服务器、数据库服务器、操作系统)的顺序进行分析,确定瓶颈点。服务器、操作系统)的顺序进行分析,确定瓶颈点。n n性能调优性能调优:同性能能力验证确定性能瓶颈分析方同性能能力验证确定性能瓶颈分析方法。法。2.5.1测试结果分析n n硬件瓶颈分析方法内存分析方法处理器分析方法磁盘I/O分析方法网络分析方法2.5.1.1测试结果分析n n内存分析方法1. 1.首先查看可用内存(首先查看可用内存(MemoryAvailableMbytesMemoryAvailableMbytes)计数器指标。若值较小则可能有内存问题,需进计数器指标。若值较小则可能有内存问题,需进一步分析。一步分析。2.2.注意注意Pages/secPages/sec、PagesRead/secPagesRead/sec和和PageFaults/secPageFaults/sec计数器的值。计数器的值。 Pages/secPages/sec和和PageFaults/secPageFaults/sec的值持续的值持续很高,很可能内存问题,若很高,很可能内存问题,若PagesRead/secPagesRead/sec的值超的值超过过5 5,则可判断存在内存问题。,则可判断存在内存问题。3.3.根据根据PhysicalDiskPhysicalDisk计数器的值分析性能瓶颈。如计数器的值分析性能瓶颈。如果磁盘的果磁盘的AverageDiskQueueLengthAverageDiskQueueLength计数器增加的计数器增加的同时同时PagesRead/secPagesRead/sec并未降低,则可判断内存有问并未降低,则可判断内存有问题。题。2.5.1.2测试结果分析n n处理器分析方法处理器分析方法 1.1.首先查看首先查看System%TotalProcessorTimeSystem%TotalProcessorTime计数器的计数器的值。该值体现的是值。该值体现的是CPUCPU的平均利用率,若超过的平均利用率,若超过90%90%,则说明存在处理器方面的瓶颈。,则说明存在处理器方面的瓶颈。2.2.其次查看每个其次查看每个CPUCPU的的Processor%UserTimeProcessor%UserTime计数器计数器的值。若应用服务器的的值。若应用服务器的%UserTime%UserTime值较大,可以值较大,可以考虑是否能通过算法优化等方法降低这个值。若考虑是否能通过算法优化等方法降低这个值。若数据库服务器的数据库服务器的%UserTime%UserTime值较大,可考虑对数值较大,可考虑对数据库系统进行优化。据库系统进行优化。3.3.查看查看SystemProcessorQueueLengthSystemProcessorQueueLength计数器的值。计数器的值。当该值大于当该值大于CPUCPU数量的总数数量的总数+1+1时,说明存在处理时,说明存在处理器方面的问题。器方面的问题。2.5.1.3测试结果分析n n磁盘I/O分析方法1. 1.查看查看%DiskTimeDiskTime计数器的值。该值较大,则可能计数器的值。该值较大,则可能存在磁盘瓶颈问题。存在磁盘瓶颈问题。2.2.与与ProcessorPrivilegedTimeProcessorPrivilegedTime合并进行分析。若合并进行分析。若%DiskTimeDiskTime值较大,而值较大,而ProcessorPrivilegedTimeProcessorPrivilegedTime的的值适中,则可判断存在磁盘问题。若值适中,则可判断存在磁盘问题。若ProcessorPrivilegedTimeProcessorPrivilegedTime较大,持续超过较大,持续超过80%80%,则,则可能是内存泄漏。可能是内存泄漏。3.3.根据根据Disksec/TransferDisksec/Transfer进行分析。该值超过进行分析。该值超过6060msms,则磁盘存在问题。则磁盘存在问题。2.5.1.4测试结果分析n n网络分析方法1.查看NetworkInterfaceBytesTotal/sec计数器的值。用BytesTotal/sec计数器的值和网络的带宽进行比较,若超过50%,则说明网络存在性能瓶颈问题。2.5.2测试结果分析n n软件瓶颈分析方法分析事务响应时间、吞吐量,确定是否存在性能问题,若发现存在性能问题,则找出响应时间不符合要求或者出现多个失败的事务,对其进行分解,然后对其进行网页细分,以确定影响性能的元素。2.5.3测试结果分析n nRBI(rapidbottleneckidentify) 是是EmpirixEmpirix公司提出的快速识别系统性能瓶颈的方法。该方法基于公司提出的快速识别系统性能瓶颈的方法。该方法基于以下事实。以下事实。n n1.1.发现的发现的80%80%系统的性能瓶颈都由吞吐量制约;系统的性能瓶颈都由吞吐量制约;n n2 2. .并发用户数和吞吐量瓶颈之间存在一定的关联;并发用户数和吞吐量瓶颈之间存在一定的关联;n n3 3. .采用吞吐量测试可以更快速定位问题。采用吞吐量测试可以更快速定位问题。 通过通过不断增加并发用户数和吞吐量观察系统的性能瓶颈。然后,从不断增加并发用户数和吞吐量观察系统的性能瓶颈。然后,从网络、数据库、应用服务器和代码本身网络、数据库、应用服务器和代码本身4 4个环节确定系统的的性能瓶颈。个环节确定系统的的性能瓶颈。2.6编写测试报告n n测测试试指指标标:描述与测试场景对应的事务平均响应时间、事务吞吐率、资源消耗指标、运行的用户数等信息。n n结结果果分分析析与与总总结结:根据测试目标,描述最后分析得到的结果,并给出相应的建议。3.性能测试举例n n性能测试工具介绍n n性能测试举例3.1性能测试工具介绍n n常见性能测试工具介绍n n性能测试工具的选择3.1.1常见性能测试工具n nApache公司的JMeter;n nHP公司的LoadRunner;n n阿里云的PTS;n nAkamaiCloudTest;n n云智慧-压测宝n nMicrosoftMicrosoft公司的公司的WASWAS;n nRadViewRadView公司的公司的WebLoadWebLoad;n nIBMIBM公司的公司的RPTRPT;n n开源工具:开源工具:OPENSTAOPENSTA等。等。ApacheJMetern nJMeterJMeter简介简介 JmeterJmeter是是ApacheApache组织开发的基于组织开发的基于JavaJava的压力测试工具。它最初被设计用于的压力测试工具。它最初被设计用于WebWeb应用测试但后来扩展到其他测试领域。应用测试但后来扩展到其他测试领域。ApachejmeterApachejmeter可以用于对静态的和动态的资源(文件,接口,可以用于对静态的和动态的资源(文件,接口,ServletServlet,PerlPerl脚本,脚本,javajava对象,数据库和查询,对象,数据库和查询,FTPFTP服务器等等)的性能进行测试。它可服务器等等)的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器的服务器/ /脚本脚本/ /对象对象。n nJMeterJMeter主要主要特性:特性:能够对能够对HTTPHTTP和和FTPFTP服务器进行压力和性能测试,服务器进行压力和性能测试, 也可以对任何数据库进行也可以对任何数据库进行同样的测试(通过同样的测试(通过JDBCJDBC)。)。完全的可移植性和完全的可移植性和100100 纯纯javajava,关键是免费的。,关键是免费的。完全多线程完全多线程 框架允许通过多个线程并发取样和框架允许通过多个线程并发取样和 通过单独的线程组对不同通过单独的线程组对不同的功能同时取样。的功能同时取样。精心的精心的GUIGUI设计允许快速操作和更精确的计时。设计允许快速操作和更精确的计时。缓存和离线分析缓存和离线分析/ /回放测试结果。回放测试结果。高可扩展性:高可扩展性:可链接的取样器允许无限制的测试能力可链接的取样器允许无限制的测试能力。数据分析和可视化插件提供了很好的可扩展性以及数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。以及个性化。具有提供动态输入到测试的功能(包括具有提供动态输入到测试的功能(包括JavascrptJavascrpt)。HPLoadRunnern nLoadRunnerLoadRunner简介简介LoadRunnerLoadRunner是原是原MercuryMercury公司的一款产品,公司的一款产品,20062006年年MecuryMecury被被HPHP收购。收购。是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能检测来确认和查找问题,能够对整个企业架构施并发负载及实时性能检测来确认和查找问题,能够对整个企业架构进行测试。通过使用进行测试。通过使用LoadrunnerLoadrunner,企业能够最大限度的缩短测试时间,企业能够最大限度的缩短测试时间,优化性能和加速应用系统的发布周期。优化性能和加速应用系统的发布周期。LoadRunnerLoadRunner能支持广范的协议能支持广范的协议和技术,功能比较强大,可以为特殊环境提供特殊的解决方案。和技术,功能比较强大,可以为特殊环境提供特殊的解决方案。 n n特征特征)轻松创建虚拟用户;)轻松创建虚拟用户;)创建真实的负载;)创建真实的负载;)定位性能问题;)定位性能问题;)分析结果以精确定位问题所在;)分析结果以精确定位问题所在;)完整的企业应用环境支持;)完整的企业应用环境支持;66)收费,目前)收费,目前V11V11版本有破解版本有破解licenselicense,Web-httpWeb-http协议支持协议支持1000010000个并发个并发n nLoadRunnerLoadRunner和和JmeterJmeter代表着性能测试的第一代,大部分产品属于传统防代表着性能测试的第一代,大部分产品属于传统防火墙内的压测,适用于测试内网系统硬件资源以及服务、数据库在并火墙内的压测,适用于测试内网系统硬件资源以及服务、数据库在并发条件下的性能表现。发条件下的性能表现。阿里云PerformanceTestingn n阿里阿里云性能测试云性能测试(PerformanceTesting)(PerformanceTesting)是一个是一个SaaSSaaS性能测试平台,性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。让应用性能问题无所遁形。PTSPTS平台特色包括提供压测机,无需平台特色包括提供压测机,无需安装软件安装软件; ;脚本场景监控简单化,省时、省力脚本场景监控简单化,省时、省力; ;分布式并发压测,分布式并发压测,施压能力无上限施压能力无上限; ;快速大规模集群扩容、支持几十万用户及百万级快速大规模集群扩容、支持几十万用户及百万级TPSTPS性能压测性能压测;80%;80%以上用户基本不需要花费额外的成本以上用户基本不需要花费额外的成本。n nPTSPTS分为两个版本,分为两个版本,LiteLite版免费,企业版提供资源包月和按量付费版免费,企业版提供资源包月和按量付费两种计费方式,按量付费采用阶梯价计算,满足企业客户多种压两种计费方式,按量付费采用阶梯价计算,满足企业客户多种压测需求测需求。n n官网链接:官网链接:https:/www.aliyun.com/product/ptshttps:/www.aliyun.com/product/ptsAkamaiCloudTestn n阿里云阿里云PTSPTS和和CloudTestCloudTest为代表的第二代压测产品把压测机迁移到为代表的第二代压测产品把压测机迁移到云端,通过云资源在防火墙外部生成规模并发,有效降低了压测云端,通过云资源在防火墙外部生成规模并发,有效降低了压测的成本与准备周期,提高了效率。只是由于压测点限制,国外或的成本与准备周期,提高了效率。只是由于压测点限制,国外或阿里的云压测产品,很难对国内应用,特别是非阿里环境部署的阿里的云压测产品,很难对国内应用,特别是非阿里环境部署的应用发起有效测试应用发起有效测试n nCloudTest CloudTest 是一个集性能和功能测试于一体的综合压力测试云平是一个集性能和功能测试于一体的综合压力测试云平台,专为现代网络和移动应用测试而设计开发,台,专为现代网络和移动应用测试而设计开发,CloudTestCloudTest可以图可以图形化实现判断、循环,整体减轻了测试开发的工作量,缩短了开形化实现判断、循环,整体减轻了测试开发的工作量,缩短了开发时间。发时间。CloudTestCloudTest基于内存的分析引擎,可以实时收集和展示数基于内存的分析引擎,可以实时收集和展示数据,所有数据在据,所有数据在3 3秒内汇聚显示秒内汇聚显示。n nCloudTestCloudTest采用虚拟化技术,完美的配合公有采用虚拟化技术,完美的配合公有/ /私有云计算技术,私有云计算技术,无需过多的硬件,带宽资源的投入,人力维护成本几乎为零,测无需过多的硬件,带宽资源的投入,人力维护成本几乎为零,测试按需获得,远程接入,适合多团队协作。各种规模的模拟成本试按需获得,远程接入,适合多团队协作。各种规模的模拟成本均远远优于传统工具,同时大大缩短了测试周期均远远优于传统工具,同时大大缩短了测试周期。n n官网链接:官网链接: https:/www.akamai.com/cn/zh/https:/www.akamai.com/cn/zh/云智慧-压测宝n n为满足复杂的云端分布式应用交付场景的压力测试需求,第三代以云智为满足复杂的云端分布式应用交付场景的压力测试需求,第三代以云智慧压测宝为代表的压测产品应运而生,从终端用户行为与体验的视角来慧压测宝为代表的压测产品应运而生,从终端用户行为与体验的视角来审视应用性能问题,通过与审视应用性能问题,通过与APMAPM整合深度追踪系统,准确发现影响性能的整合深度追踪系统,准确发现影响性能的问题瓶颈。问题瓶颈。n n压压测宝是云智慧推出的面向真实用户行为与地域分布的全链路云端压力测宝是云智慧推出的面向真实用户行为与地域分布的全链路云端压力测试平台,通过云端服务器产生真实分布式用户访问压力,模拟来自各测试平台,通过云端服务器产生真实分布式用户访问压力,模拟来自各地域用户接入后台所带来的真实流量,无限接近生产环境所面临的各种地域用户接入后台所带来的真实流量,无限接近生产环境所面临的各种复杂因素,测量真实的用户体验。通过集成云智慧应用性能管理和监控复杂因素,测量真实的用户体验。通过集成云智慧应用性能管理和监控产品,帮助实现基于真实用户行为的压测方案定制、压测过程中实时定产品,帮助实现基于真实用户行为的压测方案定制、压测过程中实时定位各环节应用资源及代码瓶颈,现场纠错,分析应用性能肇因。位各环节应用资源及代码瓶颈,现场纠错,分析应用性能肇因。n n特征:压测宝通过独有的开放架构,支持各种主流网络协议特征:压测宝通过独有的开放架构,支持各种主流网络协议; ;同时支持手同时支持手机机APPAPP的脚本录制方式,可以大大降低压测脚本制作的时间和难度。依托的脚本录制方式,可以大大降低压测脚本制作的时间和难度。依托压测宝以及完善的产品线,云智慧为用户提供了一站式压测服务,面向压测宝以及完善的产品线,云智慧为用户提供了一站式压测服务,面向云计算时代的复杂应用提供专业性能压测服务,帮助企业客观评估应用云计算时代的复杂应用提供专业性能压测服务,帮助企业客观评估应用性能容量,发现全链路性能瓶颈,对应用架构的调优及架构容量规划提性能容量,发现全链路性能瓶颈,对应用架构的调优及架构容量规划提供专业咨询服务,满足企业灵活多变的业务需求。目前压测宝已提供高供专业咨询服务,满足企业灵活多变的业务需求。目前压测宝已提供高达达1010万万UVUV并发级别的压测服务并发级别的压测服务。n n官官网链接:网链接:http:/www.yacebao.com/http:/www.yacebao.com/Microsoft-WASn n、简介:简介:简介:简介:WAS-WebApplicationStressWAS-WebApplicationStress是由微软的网站测试人员所开是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的功能强大的压力测试工具,您可以使用少量的ClientClient端计算端计算机仿真大量用户上线对网站服务所可能造成的影响。机仿真大量用户上线对网站服务所可能造成的影响。n n、特征:、特征:、特征:、特征:1 1)可以数种不同的方式建立测试指令:包含以手动、录制)可以数种不同的方式建立测试指令:包含以手动、录制浏览器操作步骤、或直接录入浏览器操作步骤、或直接录入IISIIS的记录文件、录入网站的的记录文件、录入网站的内容及录入其它测试程序的指令等方式;内容及录入其它测试程序的指令等方式;2 2)支持多种客户端接口;)支持多种客户端接口;33)支持多用户:利用多种不同的认证方式仿真实际的情况。)支持多用户:利用多种不同的认证方式仿真实际的情况。 RadView-WebLoadn n、简介:、简介:WebLoadWebLoad是是RadViewRadView公司推出的一个性能测试和分析工具公司推出的一个性能测试和分析工具, ,它让它让webweb应用程应用程序开发者自动执行压力测试序开发者自动执行压力测试; ;WebLoadWebLoad通过模拟真实用户的操作通过模拟真实用户的操作, ,生成压力生成压力负载来测试负载来测试webweb的性能。的性能。n n、特征:、特征:)用户创建的是基于)用户创建的是基于javascriptjavascript的测试脚本的测试脚本, ,称为议程称为议程agenda,agenda,用它来模拟用它来模拟客户的行为客户的行为, ,通过执行该脚本来衡量通过执行该脚本来衡量webweb应用程序在真实环境下的性能。应用程序在真实环境下的性能。)如有需要可以在做负载测试的同时,使用服务器监控工具对服务器)如有需要可以在做负载测试的同时,使用服务器监控工具对服务器端的内容进行记录那样使负载测试更加全面端的内容进行记录那样使负载测试更加全面。IBM-RPTn n1 1、简介简介RPT-RPT-Rational Performance TesterRational Performance TesterRational Performance TesterRational Performance Tester是是IBMIBM基于基于EclipseEclipse平台开平台开发发出来的最新性能出来的最新性能测试测试解决方案。解决方案。它可以有效地它可以有效地帮助测试人员和性能工程师验证系统的性能,识别和解帮助测试人员和性能工程师验证系统的性能,识别和解决各种性能问题。决各种性能问题。n n2 2、特征、特征 在为性能测试员和性能优化人员提供了前面所提到的在为性能测试员和性能优化人员提供了前面所提到的各种性能测试能力以外,它还提供了可视化编辑器,一各种性能测试能力以外,它还提供了可视化编辑器,一方面可以使新的测试人员可以在无需培训和编程的情况方面可以使新的测试人员可以在无需培训和编程的情况下,即可快速上手完成性能测试;另一方面,也为需要下,即可快速上手完成性能测试;另一方面,也为需要高级分析和自定义选项的专家级测试人员,提供了对丰高级分析和自定义选项的专家级测试人员,提供了对丰富的测试信息的访问和定制能力、自定义富的测试信息的访问和定制能力、自定义 Java Java 代码插代码插入执行能力、自动检测和处理可变数据的能力。入执行能力、自动检测和处理可变数据的能力。OPENSTAn n1 1、简介简介OpenSTA-OpenSystemTestingArchitectureOpenSTA-OpenSystemTestingArchitecture是专用于是专用于B/SB/S结构的、免费结构的、免费的性能测试工具,可以模拟很多用户来访问需要测试的网站,它是一的性能测试工具,可以模拟很多用户来访问需要测试的网站,它是一个功能强大、自定义设置功能完备的软件。个功能强大、自定义设置功能完备的软件。n n2 2、特征、特征1 1)免费、源代码开放;)免费、源代码开放;2 2)自定义功能设置大部分需要通过)自定义功能设置大部分需要通过ScriptScript来完成,因此,在真正的使用来完成,因此,在真正的使用这个软件之前,必须学习好它的这个软件之前,必须学习好它的ScriptScript编写。编写。n n官官网链接:网链接:http:/www.opensta.org/http:/www.opensta.org/3.1.2性能测试工具的选择n n创建还是购买n n如何选择一种商业工具3.1.2.1创建还是购买创创 建建购购 买买能够开发出最适合应用的测试工能够开发出最适合应用的测试工具具依赖于工具本身提供的特性,较依赖于工具本身提供的特性,较难扩展难扩展易于学习和使用易于学习和使用依赖于工具的易用性和所提供的依赖于工具的易用性和所提供的文档文档工具的稳定性和可靠性不足工具的稳定性和可靠性不足稳定性和可靠性有一定保证稳定性和可靠性有一定保证可形成组织特有的测试工具体系可形成组织特有的测试工具体系 很难与其他产品集成很难与其他产品集成工具开源免费工具开源免费工具费用较高,根据并发的用户工具费用较高,根据并发的用户数计算费用数计算费用3.1.2.2如何选择一种商业工具需要注意的几点需要注意的几点需要注意的几点需要注意的几点:n n工具是否支持被测系统运行的平台(软硬件环工具是否支持被测系统运行的平台(软硬件环境、数据库环境);境、数据库环境);n n工具能否支持被测系统使用的协议;工具能否支持被测系统使用的协议;n n工具是否能够支持我们的特殊要求,如防火墙、工具是否能够支持我们的特殊要求,如防火墙、负载均衡等;负载均衡等;n n工具是否能够提供对我们关心的服务器类型计工具是否能够提供对我们关心的服务器类型计数器的监控;数器的监控;n n工具的价格。工具的价格。3.2性能测试举例n n某网站测试需求某网站测试需求可以支持100个并发用户执行登陆和各种查询操作,要求登陆响应时间在2秒以内,数据录入响应时间在3秒以内,查询操作的响应时间在4秒以内,查看详情页面响应时间在3秒以内,服务器CPU利用率在70%以下。3.2性能测试举例n n性能需求分析测试目的:验证是否满足应用要求(性能符合性验证是否满足应用要求(性能符合性验证)。验证)。测试要素:并发用户并发用户- -100100个。个。测试功能测试功能- -用户登陆、录入、查询、查看详情。用户登陆、录入、查询、查看详情。用户分布用户分布- -平均分配。平均分配。数据量、软件、硬件环境委托方负责准备。数据量、软件、硬件环境委托方负责准备。3.2性能测试举例n n测试策略负载测试单单项业务模式、混合业务模式。项业务模式、混合业务模式。说明:混合业务模式和实际应用是非常接近的,混合业务模式和实际应用是非常接近的,需要进行测试。需要进行测试。对于单独业务模式,虽然实际情况中很难出现,对于单独业务模式,虽然实际情况中很难出现,但这是一种极限的情况,也应该把这种情况下但这是一种极限的情况,也应该把这种情况下的测试结果呈现给用户。的测试结果呈现给用户。3.2性能测试举例n n测试场景测试场景场景场景场景场景1 1:100100个用户同时执行登陆操作。个用户同时执行登陆操作。场景场景场景场景2 2:100100个用户同时执行查询操作。个用户同时执行查询操作。场景场景场景场景3 3:100100个用户同时执行查看详情页面操作。个用户同时执行查看详情页面操作。场景场景场景场景4 4:100100个用户同时执行数据录入操作。个用户同时执行数据录入操作。场景场景场景场景5 5:100100个用户同时执行不同的操作,其中个用户同时执行不同的操作,其中2525个个用户执行登陆操作,用户执行登陆操作,2525个用户执行查询操作,个用户执行查询操作,2525个个用户执行查看详情页面操作,用户执行查看详情页面操作,2525个用户执行数据录个用户执行数据录入操作。入操作。3.2性能测试举例n n执行测试录制、编辑脚本制定测试场景执行测试场景3.2性能测试举例n nLoadRunner介绍VirtualUserGenerator用来录制脚本、编辑脚本Controller用来布置测试场景、执行测试场景Analysis用来对测试结果进行分析下一节课我们讲LoadRunner工具的使用谢谢!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号