实验三:性能测试与LoadRunner(4学时)一、实验目的1、了解LoadRunner负载测试工具的安装过程,进行安装实验。2、了解LoadRunner负载测试工具的用途和简单的操作。3、掌握LoadRunner负载测试工具测试过程。4、能够使用LoadRunner负载测试工具进行简单的测试工作。二、实验环境操作系统:windows2000XP+SP2应用系统:LoadRunner9.5+负载测试工具三、实验过程:LoadRunner是HP公司开发一款成熟的性能测试工具,LoadRunner作为性能测试的实现者,涉及性能测试流程、性能测试技术和软件体系架构等众多方面的知识点。性能测试的基准大体有以下几方面:—响应时间从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。合理的响应时间取决于实际的用户需求。—并发用户数一般是指同一时间段内访问系统的用户数量。—吞吐量指单位时间内系统处理的客户请求数量。—性能计数器描述服务器或操作系统性能的一些数据指标,比如Windows系统资源管理器。-------------------------------------------------------------------------------本次实验课是针对LoadRunner(以下简称LR)的使用,我们将采用LR自带的HPWEBTours应用程序来进行熟悉。1.启动示例程序在开始程序中启动LoadRunneràsamplesàWebà启动Web服务器,如下图启动后在屏幕右下角会出现如下标识:2.启动WebTours示例程序:在浏览器中点击下图中的Signupnow,进行注册多个账户,过程比较简单这里不再介绍.注册完成后,可以订一张机票,熟悉一下这个应用程序的相关操作,为下一步录制脚本做准备。3.传统手工性能测试中会有一个组织者演示要测试的整个过程给参予者,然后组织者会要求这些参予者在自己的机器上共同执行刚刚的过程,然后收集相关的数据再进行分析,性能是否达到了相关的标准.自动化测试过程中:整个过程--------------------VirtualUserGenerator录制脚本组织者----------------------Controller参予者自己的机器------------------Loadgenerator场景分析--------------------------------------Analysis下面我们一步步来进行首先启动VirtualUserGenerator,如下图启动后出现如下界面,在其中新建一个场景:在弹出的对话框中选定,点击在弹出的对话框中输入以下参数后点击OK:出现如下提示框后,开始录制脚本,此时会弹出IE,然后自动进入到WEBTOURS网站,用刚刚注册的信息进行登录,登录成功后,再定一张票,定票后,输入信用卡信息,然后退出登录,完成后,点击停止录制,此过程较为简单,这里不做说明录制完成后,在下图中点停止,脚本录制完成:稍待一会生成脚本,如下图所示:点击播放按钮,回放一下看有没有问题,回放有两种方式,一种是普通脚本回放,回放时运行到哪一行了,会有箭头指示,另外一种就是回放可以查看回放过程中的页面,方式如下:选择在弹出的对话中选择如下:再次回放就可以看到效果.加入事务:事务就是将整个录制过程分为几部分,比如这个例子中可以分登录,定票两个过程,在测试时就可以查看这两个过程分别的运行效率,从而确定,在整个定票过程中哪一个环节影响了性能。打开代码,在登录代码前我们插入一个事务的开始:并取名”login_学号”在登录成功后处我们插入事务”login”的结束然后在订票开始前插入一个事务:结束处插入一个事务事务配置结束,我们再设定一个集合点,方便在最后分析时查看登录的并发数能达到的数量,如下图:脚本录制和脚本强化到此完成,请点击保存这个脚本,方便继续下一步工作,实测测试活动中,也可以留给回顾测试使用。4.启动Controller,我们来配置场景,说白了就是配置虚拟用户和虚拟用户所使用的机器启动如下图:启动后将刚刚录制好的脚本加入进来,如下图所示,点击OK:在下图中我们可以看到默认会有10虚拟用户,在本地localhost运行,你可以通过按钮打开的对话框中加入更多的用户,但请注意,一台普通的PC机并不能承担太多的虚拟用户,所以我们还要加入更多的“本机”,即装有LR客户端的机器帮助我们产生更多的用户。装有客户端的机器,右下角会有这样的图标:,如果你没有发现,请在客户端的开始菜单中找到LoadRunner-àLoadRunnerAgentProcess,来进行启动在上图中点击,弹出如下对话框,输入组名和要生成的虚拟用户数,以及“本机”的IP地址,点击OK:为了证明本机可用,需要进行验证,如下图:点击后,就可以使用来验证,如下图:接下来我们可以对测试的策略进行设置,比如开始用户数,每分钟增加的用户数等等,不要怕出错大量尝试的去设置,在右侧会出现设置的运行时序图:设置完成后切换到RUN试图:点击开始运行.观察运行中的数据图表,并在运行过程中可以在左侧树形菜单中切换想要查看的视图:测试停止后,我们对测试查看报告并进行分析,如下图操作:生成分析报告的过程:报告生成:参照如下说明进行分析,了解系统瓶颈在什么地方,需要改进,实验完成。LoadRunner分析结果图功能说明Transactions(用户事务分析)用户事务分析是站在用户角度进行的基础性能分析。1、TransationSunmmary(事务综述)对事务进行综合分析是性能分析的第一步,通过分析测试时间内用户事务的成功与失败情况,可以直接判断出系统是否运行正常。2、AverageTransacitonResponseTime(事务平均响应时间)“事务平均响应时间”显示的是测试场景运行期间的每一秒内事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。例:随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势。3、TransactionsperSecond(每秒通过事务数/TPS)“每秒通过事务数/TPS”显示在场景运行的每一秒钟,每个事务通过、失败以及停止的数量,使考查系统性能的一个重要参数。通过它可以确定系统在任何给定时刻的时间事务负载。分析TPS主要是看曲线的性能走向。将它与平均事务响应时间进行对比,可以分析事务数目对执行时间的影响。例:当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈。4、TotalTransactionsperSecond(每秒通过事务总数)“每秒通过事务总数”显示在场景运行时,在每一秒内通过的事务总数、失败的事务总署以及停止的事务总数。5、TransactionPerformanceSunmmary(事务性能摘要)“事务性能摘要”显示方案中所有事务的最小、最大和平均执行时间,可以直接判断响应时间是否符合用户的要求。重点关注事务的平均和最大执行时间,如果其范围不在用户可以接受的时间范围内,需要进行原因分析。6、TransactionResponseTimeUnderLoad(事务响应时间与负载)“事务响应时间与负载”是“正在运行的虚拟用户”图和“平均响应事务时间”图的组合,通过它可以看出在任一时间点事务响应时间与用户数目的关系,从而掌握系统在用户并发方面的性能数据,为扩展用户系统提供参考。此图可以查看虚拟用户负载对执行时间的总体影响,对分析具有渐变负载的测试场景比较有用。7、TransactionResponseTime(Percentile)(事务响应时间(百分比))“事务响应时间(百分比)”是根据测试结果进行分析而得到的综合分析图,也就是工具通过一些统计分析方法间接得到的图表。通过它可以分析在给定事务响应时间范围内能执行的事务百分比。8、TransactionResponseTime(Distribution)(事务响应时间(分布))“事务响应时间(分布)”显示在场景运行过程中,事务执行所用时间的分布,通过它可以了解测试过程中不同响应时间的事务数量。如果系统预先定义了相关事务可以接受的最小和最大事务响应时间,则可以使用此图确定服务器性能是否在可以接受的范围内。WebResources(Web资源分析)Web资源分析是从服务器入手对Web服务器的性能分析。1、HitsperSecond(每秒点击次数)“每秒点击次数”,即使运行场景过程中虚拟用户每秒向Web服务器提交的HTTP请求数。通过它可以评估虚拟用户产生的负载量,如将其和“平均事务响应时间”图比较,可以查看点击次数对事务性能产生的影响。通过对查看“每秒点击次数”,可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。2、Throughput(吞吐率)“吞吐率”显示的是场景运行过程中服务器的每秒的吞吐量。其度量单位是字节,表示虚拟用在任何给定的每一秒从服务器获得的数据量。可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。“吞吐率”图和“点击率”图的区别:“吞吐率”图,是每秒服务器处理的HTTP申请数。“点击率”图,是客户端每秒从服务器获得的总数据量。3、HTTPStatusCodeSummary(HTTP状态代码概要)“HTTP状态代码概要”显示场景或会话步骤过程中从Web服务器返回的HTTP状态代码数,该图按照代码分组。HTTP状态代码表示HTTP请求的状态。4、HTTPResponsesperSecond(每秒HTTP响应数)“每秒HTTP响应数”是显示运行场景过程中每秒从Web服务器返回的不同HTTP状态代码的数量,还能返回其它各类状态码的信息,通过分析状态码,可以判断服务器在压力下的运行情况,也可以通过对图中显示的结果进行分组,进而定位生成错误的代码脚本。5、PagesDownloaderperSecond(每秒下载页面数)“每秒下载页面数”显示场景或会话步骤运行的每一秒内从服务器下载的网页数。使用此图可依据下载的页数来计算Vuser生成的负载量。和吞吐量图一样,每秒下载页面数图标是Vuser在给定的任一秒内从服务器接收到的数据量。但是吞吐量考虑的各个资源极其大小(例,每个GIF文件的大小、每个网页的大小)。而每秒下载页面数只考虑页面数。注:要查看每秒下载页数图,必须在R-T-S那里设置“每秒页面数(仅HTML模式)”。6、RetriesperSecond(每秒重试次数)“每秒重试次数”显示场景或会话步骤运行的每一秒内服务器尝试的连接次数。在下列情况将重试服务器连接:A、初始连接未经授权B、要求代理服务器身份验证C、服务器关闭了初始连接D、初始连接无法连接到服务器E、服务器最初无法解析负载生成器的IP地址7、RetriesSummary(重试次数概要)“重试次数概要”显示场景或会话步骤运行过程中服务器尝试的连接次数,它按照重试原因分组。将此图与每秒重试次数图一起使用可以确定场景或会话步骤运行过程中服务器在哪个时间点进行了重试。8、Connections(连接数)“连接数”显示场景或会话步骤运行过程中每个时间点打开的TCP/IP连接数。借助此图,可以知道何时需要添加其他连接。例:当连接数到达稳定状态而事务响应时间迅速增大时,添加连接可以使性能得到极大提高(事务响应时间将降低)。9、ConnectionsPerSecond(每秒连接数)“每秒连接数”显示方案在运行过程中每秒建立的TCP/IP连接数。理想情况下,很多HTTP请求都应该使用同一连接,而不是每个请求都新打开一个连接。通过每秒连接数图可以看出服务器的处理情况,就表明服务器的性能在逐渐下降。10、SSLsPerSecond(每秒SSL连接数)“每秒SSL连接数”显示场景或会话步骤运行的每一秒内打开的新的以及重新使用的SSL连接数。当对安全服务器打开TCP/IP连接后,浏览器