资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,LoadRunner,性能测试,黄文高,E-,mail:huangwengao,第一章 性能测试基础知识,该章节主要包括以下部分内容:,什么是软件性能,性能测试相关术语,性能测试划分,性能测试应用领域,第一章 性能测试基础知识,什么是软件性能?,软件性能应该是一种指标,通过这个指标可以,衡量,系统或构件性能达到的程度。也是对软,件性能需求的一个测试和评估,用来验收或评,估软件达到的性能程度。,第一章 性能测试基础知识,性能测试相关术语,响应时间,是用户提交一个请求,系统从开始呈现到将所,有信息都呈现到客户端所需要的时间,第一章 性能测试基础知识,性能测试相关术语,并发用户数,指同一时刻与服务器进行数据交互的所有用户,数量,吞吐量,吞吐量是指单位时间内系统处理客户请求的数,量,其直接体现系统的承载的能力。,第一章 性能测试基础知识,性能测试相关术语,吞吐量作为性能测试时主要关注的一个指标,,与虚拟用户数之间存在一定的关系,当系统没,有遇到性的瓶颈时,可以采用下面这个公式来,计算。,第一章 性能测试基础知识,性能测试相关术语,吞吐率,指单位时间内的数据传输量,即吞吐量,/,传输时,间,也可以是单位时间内处理的客户请求数。,它是衡量网络性能一个重要指标。通常情况下,吞吐量越大,吞吐率的值也越大。吞吐率越大,表示系统的负载能力越强,第一章 性能测试基础知识,性能测试相关术语,TPS,表示每秒系统处理的事务数,它是衡量系统处,理能力的重要指标,在,LoadRunner,中一定要分,析的一个指标,点击率,指每秒钟用户向,Web,服务器提交的,HTTP,的数量,第一章 性能测试基础知识,性能测试相关术语,资源利用率,指的是系统资源被占用的情况,主要包括,CPU,利,用率、内存利用率、磁盘利用率、网络等,性能计数器,是描述服务器或操作系统性能的一些数据指,标。主要是通过添加计数器来观察系统资源的,使用情况,第一章 性能测试基础知识,性能测试相关术语,思考时间,(Think Time),指的是系统资源被占用的情况,主要包括,CPU,利,用率、内存利用率、磁盘利用率、网络等,性能计数器,也称为“休眠时间”,从业务层面来说,这个,时间是指用户在进行操作时,每个请求之间的,时间间隔,第一章 性能测试基础知识,性能测试划分,负载测试,压力测试,配置测试,并发测试,可靠性测试,第一章 性能测试基础知识,性能测试划分,负载测试,是通过对被测试系统不断的加压,直到超过预,定的指标或者是部分资源已经达到了一种饱和,状态不能再加压为止,压力测试,指当系统已经达到一定的饱和程度(如,CPU,、磁,盘等已经处于一种饱和状态),系统处理业务,的能力,系统是否会出现崩溃等,第一章 性能测试基础知识,性能测试划分,配置测试,配置测试,(Configuration Testing),是通过调,整系统软,/,硬件环境,了解在不同环境下系统性,能指标的情况,从而找到系统的最优配置。,压,力测试,第一章 性能测试基础知识,性能测试划分,并发测试,并发测试(,Concurrency Testing,)是通过模拟,用户并发访问,测试多用户同时访问同一应,用、模块或数据,观察系统是否存在死锁、系,统处理速度明显下降等其它的一些性能问题,第一章 性能测试基础知识,性能测试划分,可靠性测试,是当系统在一定的业务压力下,让系统持续运,行一段时间,看系统是否达到我们要求的稳定,性,这里强调在一定业务压力下持续运行的能,力,一定都会有一个明确的要求,例如:持续,运行多少天系统不能出现问题,第一章 性能测试基础知识,性能测试应用领域,能力验证,规划能力,性能调优,缺陷发现,第一章 性能测试基础知识,性能测试应用领域,能力验证,能力验证是性能测试最常用的一个领域。一般能力验证,采用这样的描述方式:“某系统能否在条件,A,下具备,B,性,能”,规划能力,规划能力与能力验证有相似之处,但还是有不一样的地,方,能力验证强调的是在某个条件下具备什么样的能,力,而规划能力体现在系统如何才能达到要求的性能指,标,第一章 性能测试基础知识,性能测试应用领域,能力验证,性能调优是通过测试来调整系统的环境,最终,使系统性能达到最优的状态。这是一个持续调,优的过程,主要调优的对象有数据参数、应用,服务器、系统的硬件资源等,第一章 性能测试基础知识,性能测试应用领域,发现缺陷,性能测试应用领域的主要目标是通过性能测试,的手段来发现系统存在的缺陷,第二章 性能测试基础知识,该章节主要包括以下部分内容:,LoadRunner,工作原理,LoadRunner,工作过程,LoadRunner,内部结构,LoadRunner,测试步骤,第二章 性能测试基础知识,LoadRunner,工作原理,第二章 性能测试基础知识,LoadRunner,工作过程,第二章 性能测试基础知识,LoadRunner,内部结构,第二章 性能测试基础知识,LoadRunner,测试步骤,第三章,Vuser,发生器,该章节主要包括以下部分内容:,脚本录制,Recording Options,设置,Run-Time Setting,设置,脚本完善,第三章,Vuser,发生器,脚本录制,如何选择协议,开始录制脚本,第三章,Vuser,发生器,脚本开发过程,第三章,Vuser,发生器,如何选择协议,各种协议和相关头文件的对应关系,第三章,Vuser,发生器,选择协议的常用方法主要有以下几种:,询问开发工程师数据通讯采用何种协议,当没有开发工程师支持时,可以通过概要或详细,设计,手册获知所使用的协议;,使用协议分析工具捕获包进行分析,然后确定被测对象所使用的协议。,根据以往测试经验来判断被测试对象采用的协议,这种方法具有猜测性,有时候不一定具备;,第三章,Vuser,发生器,协议分类表,应用类型,建议选用协议,Web,网站,(J2EE,、,.NET),Web(HTTP,/HTML),FTP,服务器,File Transfer,Protocol(FTP,),邮件服务器,Internet Messaging Application,Protocol(IMAP,),Post Office Protocol(POP3),Simple Mail Trans,Protocol(SMTP,),C/S,客户端以,ADO,、,OLEDB,方式连接后台数据库,MS SQL Server,Orical,、,Sybase,、,DB2,、,Informix,以,ODBC,方式连接后台数据库,ODBC,没有后台数据库,Socket,分布式组件,COM/DCOM,、,EJB,无线应用,WAP,、,PALM,第三章,Vuser,发生器,LoadRunner,提供三种选择协议的方式,单协议脚本,多协议脚本,最近新建脚本类型使用过的协议,第三章,Vuser,发生器,开始录制脚本,Web,(,HTTP/HTML,)协议为例,第三章,Vuser,发生器,Recording Options,设置,Recording,标签页,Advanced,标签页,Correlation,标签页,第三章,Vuser,发生器,Recording,标签页,第三章,Vuser,发生器,HTML-base script,方式:,是对每个页面录制形成一条语,句,在该模式下,访问一个页面,首先会与服务器之间,建立一个连接获取页面的内容,然后从页面中分解得到,其他的元素(,component,),然后建立几个连接分别获,取相应的元素。,URL-base script,方式:,是将每条客户端发出的请求录,制成一条语句,对在该模式下,一条语句只建立一个到,服务器的连接,并将通讯过程中的很多隐藏的信息都录,制出来(如,session,、,cookie,)。,LoadRunner,提供了,web_concurrent_start,和,web_concurrent_end,函数模拟,URL-base script,的工作方式。,第三章,Vuser,发生器,分别使用这两种模式录制一个登录过程的脚本,HTML,方式录制,第三章,Vuser,发生器,URL,方式录制,第三章,Vuser,发生器,Advanced,标签页,其中“,Save snapshot resources locally”,表,示运行结果中保存一个快照。“,Add comments,to script for HTTP errors while,recording”,表示出现错误时会自动添加注释。,第三章,Vuser,发生器,Advanced,标签页,第三章,Vuser,发生器,Correlation,标签页,Correlation,标签页用来对脚本中的关联属性进,行设置。选中需要的关联规则,这样在时行录,制脚本时会自动的进行关联。当然这里也可以,点击“,New Application”,按钮来新建一个关,联,再点“,New Rule”,按钮为该关联新建一个,规则,第三章,Vuser,发生器,Correlation,标签页,第三章,Vuser,发生器,Run-Time Setting,设置,Run Logic,标签页,Pacing,标签页,Think Time,标签页,Miscellaneous,标签页,第三章,Vuser,发生器,Run Logic,标签页,设置运行脚本的迭代的次数,可以更改,“,Number of iterations”,的值来设置迭代的,次数,第三章,Vuser,发生器,Pacing,标签页,Pacing,选项主要是用来设置脚本迭代过程中,,两次重复执行的时间间隔。,As soon as the previous iteration ends,:在多次迭代时,一次执行完后马上执行下一次。,After the previous iteration ends,:这里有两个选择,Fixed,和,Random,。选择,Fixed,表示上一次执行结束后,等待固定的一段时间后,再执行下一次;选择,Random,表示上次一执行结束后,等待一段随机的时间长度后,再执行下一次,这个随机时的取范围为设置的范围。,At fixed/Random intervals,:这个表示不管上一次执行完与否,到达到规定的时间就开始执行下一次,这里也有两个选择,Fixed,和,Random,。,Fixed,表示固定的一个时间值;,Random,表示取一个随机值,随机值的范围是自己设置的。,第三章,Vuser,发生器,Pacing,标签页,第三章,Vuser,发生器,Think Time,标签页,Think Time,选项用来设置用户操作的思考时,间 。,AsIgnore,think time,:运行脚本的时候忽略思考停顿时间。,Replay think time,:设置思考时间的延迟。,As recorded,:根据录制时的思考时间来运行,Multiply recorded think time by,:根据录制时思考时间的整数倍来运行。,Use random percentage of recorded think time,:设置一个最大值和最小值,从中选出一个随机值。一般在实际使用过程中选择这种模式。,Limit think time to,:设置一个最大的,think time,的值,如果录制值超过最大值,就以最大值为准。,第三章,Vuser,发生器,Think Time,标签页,第三章,Vuser,发生器,Miscellaneous,标签页,Error Handing,选项表示运行时出现错误时的处理,一般不需要改动。,Multithreading,选项表示运行时把虚拟用户当作进程还是线程来处理。,Run,Vusers,as a process,表示把虚拟用户当作进程来处理。,Run,Vusers,as a thread,把虚拟用户当作线程来处理。在这里一般选择把虚拟用户当作进程来处理,这样才更真实的模拟了用户的操作。,Automatic Transactions,选项用来设置事务模式。,Define each action as a transaction,:将一个,action,看作一个事务。,Define each step as a transaction,:将每一个操作步骤看作一个事务。,第三章,Vuser,发生器,Miscellaneous,标签页,第三章,Vuser,发生器,脚本完善,插入事务,插入集合点,插入注释,第三章,Vuser,发生器,插入事务,插入事务的两种方法,:,脚本录制中插入和录制后,插入事务的几种状态,LR_AUTO,、,LR_PASS,、,LR_FAIL,、,LR_STOP,LR_AUTO,:事物的状态被自动设置,如果事务执行成功,状态设置为,PASS,,如果执行失败,状态设置,FAIL,,如果由于异常中断,状态被设置成,STOP,。,LR_PASS,:事务如果执行成功,代码返回的状态是,PASS,。,LR_FAIL,:事务如果执行失败,代码返回的状态是,FAIL,。,LR_STOP,:事务如果由于异常中断,代码返回的状态是,STOP,。,第三章,Vuser,发生器,插入集合点,插入集合点的两种方法,:,脚本录制中插入和录制,后,第三章,Vuser,发生器,插入注释,插入注释的两种方法,:,脚本录制中插入和录制,后,第四章,Controller,控制器,该章节主要包括以下部分内容:,场景类型介绍,场景设计,场景执行,场景监视,第四章,Controller,控制器,场景类型介绍,手动测试场景,面向目标测试场景,第四章,Controller,控制器,手动测试场景,启动,Controller,控制器后,会弹出新建场景对,话框,选择手动测试场景,第四章,Controller,控制器,面向目标测试场景,面向目标场景是一个闭环回馈关系,在这种场,景模式下,首先定义要达到的目标,然后,LoadRunner,会自动基于这些目标创建场景,运,行过程中,会不断的将结果与目标相比较,以,决定下一步怎么走,第四章,Controller,控制器,面向目标测试场景,第四章,Controller,控制器,场景类型介绍,手动场景配置,Schedule,面向目标场景配置,Schedule,配置,View Script,配置,Load Generator,第四章,Controller,控制器,手动场景配置,Schedule,场景名称,可以添加一个场景、对场景进行重,命名、删除某个场景,这里命名时场景名最好,要具有意义,能表示场景动作。,第四章,Controller,控制器,手动场景配置,Schedule,按场景计划,包括,Ramp Up,、,Duration,和,Ramp,Down,三个选项卡,Ramp Up,选项卡,:,设置场景虚拟用户初始加载方,式,第一:刚开始就加载所有虚拟用户。,第二:每隔一段时间加载一定的虚拟用户,最,常用的是这种方式,这种方式最接近用户的真,实使用情况。,第四章,Controller,控制器,Ramp Up,选项卡,第四章,Controller,控制器,Duration,选项卡,:,设置设置场景持续运行的情况,第一:按照设置运行,即每个虚拟用户按照所,指定的迭代次数运行,直到运行结束。,第二:按时间运行:即所有虚拟用户一直在迭,代重复运行脚本,直到指定的时间结束,脚本,迭代次数被忽略,不起作用。,第三:一直运行,不停止,直到人为停止场景,的运行才结束。,第四章,Controller,控制器,Duration,选项卡,第四章,Controller,控制器,Ramp Down,选项卡,第一:持续运行结束后,同时停止所有的虚拟,用户。,第二:每隔一段时间就停止一定量的虚拟用,户,这项和,Ramp Up,中的第二项一样,只是这里是结束,那里设置的是开始。,第四章,Controller,控制器,按用户组计划,按用户组计划多了“,Start Time”,选项,在按,用户组计划中,以组为单位进行计划,每个组,都要设置自已的,Start Time,、,Ramp Up,、,Duration,和,Ramp Down,这里主要来看一下,Start Time,选项卡,第四章,Controller,控制器,Start Time,选项卡,第一:场景运行时开始。,第二:场景开始运行后一段时间才开始。,第三:在某个特定的用户组运行结束后才开始,通俗的,讲就是在某个脚本运行结束后才开始运行。,第四章,Controller,控制器,百分比模式,百分比模式是设定虚拟用户总数,然后以百分,比的形式把虚拟用户分配到各脚本中。这种场,景非常适合业务模型明确的性能测试,第四章,Controller,控制器,初始化虚拟用户,初始化虚拟用户表示必须所有的虚拟用户都准,备好之后,场景才能执行,第四章,Controller,控制器,面向目标场景配置,Schedule,在面向目标场景中,先定义测试达到的目标,,然后,LoadRuner,自动根据这些目标创建场景,第四章,Controller,控制器,Scenario Settings,选项卡,第一:在“,Run Time”,中设置一个时间,当然目标达到,后,该场景还会持续运行设置时间后结束。,第二:“,If target cannot be reached”,设置如果目,标达不到,,Controller,将如何处理场景。这里有两种选,择,可以选择停止场景运行并保存结果(,Stop,Scenario and save results,),或继续运行场景直到,达到目标(,Continue scenario without reaching,goal,),第四章,Controller,控制器,Scenario Settings,选项卡,第四章,Controller,控制器,Load Behavior,选项卡,第一:让,Controller,自动加载用户。,第二:设定一个时间后达到目标。,第三:设置每隔一段时间增加一定的目标量。,第四章,Controller,控制器,目标类型(,Goal Type,),第一:,Virtual Users,目标类型,这种目标类型主要是用来测试服务器对并发用,户的处理能力,这种目标类型与手动设置,第四章,Controller,控制器,第二:,Hit per Second,目标类型,设置的目标是点击数,/,秒。同时要设置最小虚拟,用户数和最大虚拟用户数,当场景执行时,,Controller,会使用最小的虚拟用户来达到定义,的目标。如果最小的用户,达不到目标,那个,Controller,将会增加虚拟用户数,直到定义的,最大的虚拟用户数,第四章,Controller,控制器,第三:,Transactions per Second,目标类型,设置的目标为每秒处理的事务数,但这里要注,意的是,在脚本中一定要定义事务,否则事务,名的地方为空白,第四章,Controller,控制器,第四:,Transactions Response Time,目标类型,这类目标是设置事务的响应时间,在多用户并,发时,事务的响应时间,同时要设置好最大和,最小虚拟用户数,第四章,Controller,控制器,第五:,Pages per Minute,目标类型,设置目标为每分钟处理的页面数,第四章,Controller,控制器,配置,View Script,在场景设计界面,脚本加载后,如需对加载的,脚本修改,选中需要配置的脚本,单击右侧的,“,View Script”,按钮。注意,对脚本修改后,,一定要重新加载脚本,确保修改一定有效。,第四章,Controller,控制器,配置,Load Generator,Load Generator,又叫负载发生器,当控制器发,出执行命令时,,Load Generator,负责和其它的,负载机建立起联系并强制负载机执行,单击,“,Connect”,按钮,测试负载与控制机是否连接,好,第四章,Controller,控制器,场景执行,场景控制,场景执行期间查看场景,第四章,Controller,控制器,场景控制,第四章,Controller,控制器,场景控制,(开始场景):单击该按钮,场景即开,始运行,(停止场景):场景运行停止,在场景,未开始运行时,该按钮为灰,不可用,只有当,场景已经开始运行后,该按钮才是可用状态。,第四章,Controller,控制器,场景控制,(重置,/,复位):将方案中所有的,Vuser,组重置为方案运行前的“关闭”(,Down,)状,态,准备下一次场景的执行,(虚拟用户组):单击该按钮,能打开,Vuser,对话框,可以查看,Vuser,组中每个,Vuser,的,详细状态,如图,4-29,所示。显示出该组中每个,Vuser,的,ID,、运行状态、脚本、负载生成器和所,用时间,第四章,Controller,控制器,场景控制,场景结束运行的三种模式,单击“,Tools”-“Options”,选项,弹出,“,Options”,对话框,选中,Run-time Settings,选项卡,第四章,Controller,控制器,场景控制,第四章,Controller,控制器,场景控制,第一:等当前迭代运行结束后,再停止运行场,景(,Wait for the current iteration to end,before stopping,);,第二:等当前的,Action,运行结束后,再停止运,行场景(,Wait for the current action to,end before stopping,);,第三:不等待,立即停止运行场景(,Stop,immediately,);,第四章,Controller,控制器,在虚拟用户组点击双键,可以对虚拟用户组进行,相关的操作,第四章,Controller,控制器,选择“,Pause”,,可以暂停该,Vuser,,但是暂停,Vuser,将影响其事务响应时间,选择“,Reset”,,可以重置该,Vuser,,使其重新回到“关闭”的状态,选择“,Initialize,Vuser/s,”,,可以初始化该,Vuser,选择“,Renumber”,,可以对该,Vuser,编号重新定义,选择“,Filter,Vusers,”,,可以筛选列出来的,Vuser,,可以使用不同的筛选条件进行筛选,也可以,Vuser,对话框中的筛选器中选择要使用的筛选条件,第四章,Controller,控制器,选择“,Sort,Vusers,”,,再选择不同的排序方式对,Vuser,进行排序,选择“,Show,Vusers,”,,可以查看正在执行所分配脚本的,Vuser,。此时会弹出运行时查看器,并显示返回到,Vuser,的页面快照,可以查看正在执行脚本的,Vuser,。运行时查看器的功能与浏览器的功能不一样,它显示的图像是快照,而不是回放的所有特征,选择“,Show,Vusers,Log”,,会显示出该,Vusers,脚本日志,第四章,Controller,控制器,场景执行期间查看场景,Vuser,运行状态,第四章,Controller,控制器,Vuser,运行状态,状态,含义,关闭(,Down,),Vuser,处于关闭状态,挂起(,Pending,),Vuser,初始化已就绪,正在等待可用的负载生成器,或者正在向负载生成器传输文件,初始化(,Init,),Vuser,正在进行初始化,就绪(,Ready,),Vuser,已经执行了脚本的初始化部分,可以开始运行,正在运行(,Run,),Vuser,正在运行。正在负载生成器上执行,Vuser,脚本,集合点(,Rendezvous,),Vuser,已经到达了集合点,正在等待释放,完成并通过(,Passed,),Vuser,已结束运行。脚本执行通过,完成但失败(,Failed,),Vuser,已结束运行。脚本执行失败,错误(,Error,),Vuser,发生了错误。要了解错误的完整说明,请查看“输出”窗口或“,Vuser,”,对话框中的“状态”字段,逐步退出(,Gradula,Exiting,),Vuser,正在运行退出前的最后一次迭代,退出(,Exiting,),Vuser,运行结束,正在退出,停止(,Stopped,),设置“停止”命令后,,Vuser,即停止,第四章,Controller,控制器,事务详细信息,第四章,Controller,控制器,事务详细信息,状态概要,含义,场景状态(,Scenario Status,),场景处于“正在运行”状态,还是处于“关闭”状态,正在运行的,Vuser,(,Running,Vusers,),负载生成器计算机上正在执行的,Vuser,数,已用时间(,Elapsed Time,),指自场景开始运行到现在所用的时间,每秒点击次数(,Hits/Second,),指每个,Vuser,运行期间,每秒对所测试网站的点击次数(,HTTP,请求数),通过的事务数,场景运行到现在成功通过的事务数,失败的事务数,场景运行到现在失败的事务数,错误数,场景运行到现在发生错误的,Vuser,数,第四章,Controller,控制器,查看“输出”窗口,第四章,Controller,控制器,场景监视,关于联机监控,监控器与度量,联机监视器,第四章,Controller,控制器,关于联机监控,第四章,Controller,控制器,LoadRunner,提供的监视器,“运行时”监视器:显示参与场景的,Vuser,数和状态,以及,Vuser,生成的错误数和类型,“事务”监视器:显示场景运行时,各事务速率和响应时间,“,Web,资源”监控器:监视场景运行时期间,Web,服务器上的信息,主要包括,Web,连接数、吞吐量、,HTTP,响应数、服务器重试次数和下载到服务器的页面数信息,“系统资源”监控器:主要是监控场景运行期间,Windows,、,UNIX,、,Tuxedo,、,SNMP,、,Antara,FlameThrower,和,SiteScope,资源使用情况,“网络延迟”监控器:显示关于系统网络延迟的信息,第四章,Controller,控制器,LoadRunner,提供的监视器,“防火墙”监控器:用来度量场景执行期间防火墙服务器信息统计的情况,“,Web,服务器资源”监控器:用来度量场景运行期间,Apache,、,Microsoft IIS,、,iPlanet,(SNMP),和,iPlanet,/Netscape Web,服务器的统计信息,“,Web,应用程序服务器资源”监控器:度量场景运行期间应用程序服务器,Ariba,、,ATG Dynamo,、,BroadVision,、,ColdFusion,、,Fujitsu INTERSTAGE,、,iPlanet,(NAS),、,Microsoft ASP,、,Oracle9iAS HTTP,、,SilverStream,、,WebLogic,(SNMP),、,WebLogic,(JMX),和,WebSphere,统计信息的情况,第四章,Controller,控制器,LoadRunner,提供的监视器,“数据库服务器资源”监控器:用于度量场景运行期间数据库,DB2,、,Oracle,、,SQL,服务器和,Sybase,统计信息的情况,“流媒体”监控器:用来度量场景运行期间,RealPlayer,和,Media Player,客户端以及,Windows Media,服务器和,RealPlayer,音频,/,视频服务器的统计信息,“,ERP/CRM,服务器资源”监控器:用来度量场景执行期间,SAP R/3,系统、,SAP Portal,、,Siebel Server Manager,、,Siebel Web,服务器和,PeopleSoft (Tuxedo),服务器的统计信息,“,Java,性能”监控器:用于度量,J2EE,对象及,J2EE,和,EJB,服务器对象的统计信息,第四章,Controller,控制器,LoadRunner,提供的监视器,“应用程序组件“监控器:用来度量场景执行期间,Microsoft COM+,和,Microsoft .NET CLR,服务器的统计信息,“应用程序部署解决方案”监控器:用来度量场景执行期间,Citrix,MetaFrame,XP,和,1.8,服务器的统计信息,“中间件性能”监控器:度量场景执行期间,Tuxedo,和,IBM,WebSphere,MQ,服务器的统计信息,“基础结构资源”监控器:用于度量场景执行期间网络客户端数据点的统计信息,第四章,Controller,控制器,监视器与度量,添加计数器,第四章,Controller,控制器,联机监视器,第五章,Analysis,分析器,该章节主要包括以下部分内容:,Analysis,介绍,报告概要,Analysis,常见分析图,Analysis,报告,第五章,Analysis,分析器,Analysis,介绍,Analysis,基础知识,设置选项,Analysis,图,第五章,Analysis,分析器,Analysis,基础知识,Vuser,日志文件,包括每个,Vuser,运行方案的完整跟踪,Controller,输出窗口,输入窗口中错误信息,Analysis,图,分析数据的最主要手段,“图数据”视图和“原始数据”视图以电子表格形式显示用于生成图的实际数据,报告形式,包括,HTML,、,Word,和水晶报表三种形式的报告。,第五章,Analysis,分析器,设置选项,Result Collection,设置,第五章,Analysis,分析器,Set Granularity,设置,第五章,Analysis,分析器,Configure Measurements,设置,第五章,Analysis,分析器,设置筛选条件,第五章,Analysis,分析器,Analysis,图,Analysis,分析器中提供了丰富分析图,常见的,有,8,种:,Vusers,图、错误图、事务图、,Web,资源,图、网页细分图、系统资源图、,Web,服务器资源,图和数据库服务器资源图,第五章,Analysis,分析器,Analysis,图,第五章,Analysis,分析器,报告概要,概要部分,统计部分,事务统计部分,HTTP,响应统计,第五章,Analysis,分析器,概要部分,Analysis,概要总结部分的信息,第五章,Analysis,分析器,统计部分,统计部分显示的信息,第五章,Analysis,分析器,事务统计部分,事务统计部分,的信息,第五章,Analysis,分析器,HTTP,响应统计,HTTP,响应统计,的信息,第五章,Analysis,分析器,Analysis,常见图分析,Vuser,图,每秒点击数图,平均事务响应时间图,吞吐量图,第五章,Analysis,分析器,Vuser,图,第五章,Analysis,分析器,每秒点击数图,“每秒点击数”图显示在方案运行过程中,Vuser,每秒中向,Web,服务器提交的,HTTP,请求数,第五章,Analysis,分析器,平均事务响应时间图,“平均事务响应时间”图显示方案在运行期间,每一秒内执行事务所用的平均时间,第五章,Analysis,分析器,吞吐量图,吞吐量”图显示方案运行过程中服务器上每秒,的吞吐量,第五章,Analysis,分析器,Analysis,报告,HTML,报告,WORD,报告,水晶报表,第五章,Analysis,分析器,HTML,报告,第五章,Analysis,分析器,WORD,报告,Format,选项卡,第五章,Analysis,分析器,WORD,报告,Primary Content,选项卡,第五章,Analysis,分析器,WORD,报告,Additional Graphs,选项卡,第五章,Analysis,分析器,水晶报表,水晶报表包括活动报告和性能报告两类报告。,而活动报告又包括场景执行报告、失败事务报,告和失败虚拟用户报告。性能报告又包括数据,点报告、详细事务报告和事务性能报告,第五章,Analysis,分析器,水晶报表,Scenario Execution Report,第五章,Analysis,分析器,水晶报表,Failed Transaction Report,第五章,Analysis,分析器,水晶报表,Failed,Vusers,Report,第五章,Analysis,分析器,水晶报表,Data Point Report,第五章,Analysis,分析器,水晶报表,Detailed Transaction Report,第五章,Analysis,分析器,水晶报表,Transaction Performance Report,第六章 脚本编写,该章节主要包括以下部分内容:,检查点,Block,块技术,参数化技术,关联技术,第六章 脚本编写,检查点,在进行压力测试时,经常会有页面间数据传递,的操作,页面就有可能会发生传递混乱,或者,客户端与服务端数据传输被中断或传输了错误,的数据等情况。所以我们需要一个检查的过程,检查点返回的值是通过检查点函数将返回值的,结果反映在,Controller,的状态面板上和,Analysis,统计结果中,第六章 脚本编写,插入检查点的步骤,将视图模式设置为“,Tree View”,第六章 脚本编写,插入检查点的步骤,在“,Tree View”,中选择要插入检查点的位置,第六章 脚本编写,插入检查点的步骤,选择检查点类型和插入函数,第六章 脚本编写,插入检查点的步骤,参数化,第六章 脚本编写,常用的检查点函数,web_find,(),web_reg_find,(),第六章 脚本编写,Block,块技术,案例:假如想在一个脚本中,实现注册执行,3,次,登录执行,1,次,查询执行,2,次,怎么办?,首先使用,LoadRunner,录制好脚本,第六章 脚本编写,进入菜单,Vuser,-Run-time Settings,,弹出,Run-time Settings,对话框,选择,General- Run Logic,标签页,第六章 脚本编写,选择,Run,插入一个,Block,块,第六章 脚本编写,选择,Block0,,按,Insert Action,键,弹出,Select Actions,对话框,第六章 脚本编写,重复以上操作,再新建两个,Block,块为,Block1,和,Block2,,并为这两个块插入对应的,Action,第六章 脚本编写,将,Block,外面的,Action,删除,第六章 脚本编写,设置,Block properties,第六章 脚本编写,参数化技术,所谓的脚本参数化,就是针对脚本中的某些常,量,定义一个参数来取代,这个参数中包含很,多数据源,可以是一文本文件也可以是数据,源。,那么为什么要进行参数化呢?,为了减少脚本的大小和脚本数量。,使业务更接近真实的客户业务。,第六章 脚本编写,创建参数,录制好脚本后,选中要参数化的常量点右键,-,Replace with a parameter,第六章 脚本编写,创建参数,当参数化结束后,脚本保存的根目录下会多出,一个参数化的文件。,第六章 脚本编写,创建参数,如果有多个参数文件,可以对参数文件进行合,并,第六章 脚本编写,创建参数,参数文件合并后,可以放到一个专门管理参数,文件的文件夹中,第六章 脚本编写,参数类型属性,“Date/Time”,(日期,/,时间)参数类型,“Group Name”,(组名)参数类型,“Iteration Number”,(迭代编号)参数类型:,“Load Generator Name”,(负载生成器名)参数类型,“Random Number”,(随机编号)参数类型,“Unique Number”,(唯一编号)参数类型,“,Vuser,ID”,参数类型,File,参数类型,第六章 脚本编写,数据文件,Browse,属性,Edit With Notepad,设置,Select column,设置,Column delimiter,设置,File data line,设置,Select next row,设置,Update value on,设置,第六章 脚本编写,导入数据,使用,Microsoft Query,指定数据库连接字符串和,SQL,语句,第六章 脚本编写,关联技术,录制中关联,建立规则,内建关联规则,第六章 脚本编写,录制中关联,建立规则,用户自定义关联规则,第六章 脚本编写,录制中关联,规则,使用,在,Tools-Recording Options,对话框中选中,“,Enable correlation during recording”,复,选框,启用自动关联,第六章 脚本编写,录制后关联,录制后关联与内建关联还是有点区别的,录制,后关联是在执行脚本后才会建立关联,也就是,说,当录制完脚本后,脚本至少要执行一次,,录制后关联才会产生效果。点菜单,Vuser,-,Scan Script for Correlations,或按,Ctrl+F8,第六章 脚本编写,录制后关联,第六章 脚本编写,手动关联,手动关联的一般步骤如下:,录制两份相同的业务流程和数据的脚本,使用,WinDiff,工具比较两份脚本,找到需要关联的数据,找到左边界和右边界字符串,使用,web_reg_save_param,函数手动建立关联,将脚本中有用到关联的数据,以参数取代,第七章 场景设计实践,该章节主要包括以下部分内容:,集合点设置,IP,欺骗技术,执行路径转换,在,LoadRunner,中使用功能测试脚本,第七章 场景设计实践,集合点设置,选择“,Scenario”-“Rendezvous”,插入集合,点,第七章 场景设计实践,集合点设置,在场景中设置集合点,第七章 场景设计实践,集合点设置策略,第一项:表示当所有用户数的,X%,到达集合时,,就开始释放等待的用户并继续执行场景。,第二项:表示当前正在运行用户数的,X%,到达集,合点时,就开始释放等待的用户并继续执行场,景。,第三项:表示当,X,个用户到达集合点时,就开始,释放等待的用户并继续执行场景。,第七章 场景设计实践,集合点设置策略,第七章 场景设计实践,IP,欺骗,在“开始”菜单,-“,所有程序”,“Mercury,LoadRunner,”-“Tools”-“IP Wizard”,,弹出,IP Wizard,配置对话框,第七章 场景设计实践,IP,欺骗,在这里选择一种方式进行设置,如果以前保存过这类文件,可以选择“从文件中加载”,然后选择该文件即可,也可以选择“创建一个新的设置”,单击“下一步”,设置服务器的,IP,地址,第七章 场景设计实践,IP,欺骗,单击“下一步”将看到该计算机的,IP,地址列表。单击“添加”按钮可以定义地址范围,第七章 场景设计实践,IP,欺骗,在该对话框,选择计算机的,IP,地址类型。指定要创建的,IP,地址数。选中“验证新的,IP,地址未被使用”复选框,以指示,IP,向导对新地址进行检查。这样只会添加未使用的地址,完成之后,,IP,向导会显示出,IP,变更统计的对话框,第七章 场景设计实践,IP,欺骗,第七章 场景设计实践,IP,欺骗,以上是同网段,IP,欺骗,那么跨网段,IP,欺骗应该,如何处理呢?,在设置完成,IP,欺骗的最后一步,不要重启计算,机,此时在临时文件夹,Temp,里生成两个文件,,一个是用于,UNIX,的,unix_routing.sh,文件,一个,是用于,WINDOWS,的,nt_routing.bat,文件。,下面我们来看一下这两个文件的内容,第七章 场景设计实践,IP,欺骗,nt_routing.bat,文件的内容如下:,REM This is a bat file to add IP addresses to the routing table of a server,REM Replace CLIENT_IP with the IP of this machine (Load Generator) that the server already recognizes,REM This script should be executed on the server machine,route ADD 192.168.14.22 MASK 255.255.255.255 CLIENT_IP METRIC 1,route ADD 192.168.14.23 MASK 255.255.255.255 CLIENT_IP METRIC 1,route ADD 192.168.14.25 MASK 255.255.255.255 CLIENT_IP METRIC 1,第七章 场景设计实践,IP,欺骗,uxix_routing.sh,文件的内容如下:,# Bourne shell script to add IP addresses to the routing table of a server,# To run replace CLIENT_IP with the IP of this machine (Load Generator) that the server already recognizes,# Then,chmod,+x,unix_routing.sh,# and finally execute this script on the server,#!/bin/,sh,route add 192.168.14.22 CLIENT_IP 255.255.255.0,route add 192.168.14.23 CLIENT_IP 255.255.255.0,route add 192.168.14.25 CLIENT_IP 255.255.255.0,第七章 场景设计实践,IP,欺骗,要更新服务器路由表,必须对这两个文件进行,一定的修改。,每次出现,CLIENT_IP,,将,CLIENT_IP,用,LoadRunner,机器的,IP,地址替换。假设我们,LoadRunner,机器的,IP,地址,192.168.14.26,。,修改的文件必须在服务器上运行该文件,,Windows,系统使用,nt_routing.bat,文件,,Unix,系统使用,uxix_routing.sh,文件。,第七章 场景设计实践,IP,欺骗,下面我们来看一下修改后的两个文件:,nt_routing.bat,文件内容如下:,REM This is a bat file to add IP addresses to the routing table of a server,REM Replace CLIENT_IP with the IP of this machine (Load Generator) that the server already recognizes,REM This script should be executed on the server machine,route ADD 192.168.14.22 MASK 255.255.255.255 192.168.14.25 METRIC 1,route ADD 192.168.14.23 MASK 255.255.255.255 192.168.14.25 METRIC 1,route ADD 192.168.14.25 MASK 255.255.255.255 192.168.14.25 METRIC 1,第七章 场景设计实践,IP,欺骗,下面我们来看一下修改后的两个文件:,uxix_routing.sh,文件内容如下:,# Bourne shell script to add IP addresses to the routing table of a server,# To run replace CLIENT_IP with the IP of this machine (Load Generator) that the server already recognizes,# Then,chmod,+x,unix_routing.sh,# and finally execute this script on the server,#!/bin/,sh,route add 192.168.14.22 192.168.14.25 255.255.255.0,route add 192.168.14.23 192.168.14.25 255.255.255.0,route add 192.168.14.25,192.168.14.25,255.255.255.0,修改好后,将这两个文件拷贝到服务器运行,重启当前的电脑,IP,欺骗设置即生效,第七章 场景设计实践,Controller,中启动,IP,Spoofer,选择“,Scenario”-“Enable IP,Spoofer,”,,,启动,IP,Spoofer,策略,第七章 场景设计实践,Controller,中启动,IP,Spoofer,当启动,IP,Spoofer,后,在,Run,选项卡的右下角会,看到,IP,Spoofer,的标记,第七章 场景设计实践,负载均衡技术,为了尽可能减少或者避免本身的测试机成为测,试过程中的瓶颈,在测试过程中,我们需要使,用所有的测试机产生,Vuser,,对被测试系统进行,施压,在默认模式下,,Controller,中只能添加一台机,器,第七章 场景设计实践,负载均衡技术,这样负载分配还是不均匀,为了解决这个问,题,首先要更换场景模式,选择“,Scenar
展开阅读全文