您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Loadrunner基础使用手册
LoadRunner基础使用手册使用Loadrunner对Web应用进行负载/压力测试。LoadRunner包含很多组件,其中最常用的有VisualUserGenerator(以下简称VuGen)、Controller,Analysis。使用LoadRunner进行测试的过程可以用下图表示:下面我就按照上图的步骤来简单说明使用LoadRunner的测试过程。1制定负载测试计划在任何类型的测试中,测试计划都是必要的步骤。测试计划是进行成功的负载测试的关键。任何类型的测试的第一步都是制定比较详细的测试计划。一个比较好的测试计划能够保证LoadRunner能够完成负载测试的目标。制定负载测试计划一般情况下需要三个步骤,可以用下图表示:下面简单的对这三个过程进行介绍:1.1分析应用程序制定负载测试计划的第一步是分析应用程序。你应该对系统的软硬件以及配置情况非常的熟悉,这样才能保证你使用LoadRunner创建的测试环境真实的反映实际运行的环境。1.1.1确定系统的组成画出系统的组成图。组成图要包括系统中所有的组件,以及相互之间是如何通讯的。下面是一个系统组成图的例子,可以参考。1.1.2描述系统配置画出系统组成图后,试着回答以下问题,对组成图进行完善。1、预计有多少用户会连到系统2、客户机的配置情况(硬件、内存、操作系统、软件工具等)3、服务器使用什么类型的数据库以及服务器的配置情况4、客户机和服务器之间如何通讯5、还有什么组件会影响ResponseTime指标(比如Modem等)6、通讯装置(网卡、路由器等)的吞吐量是多少?每个通讯装置能够处理多少并发用户1.1.3分析最普遍的使用方法了解该系统最常用的功能,确定那些功能需要优先测试、什么角色使用该系统以及每个角色会有多少人、每个角色的地理分布情况等,从而预测负载的最高峰出现的情况。1.2确定测试目标(DefiningTestingObjectives)这里借用一段文字来说明如何确定测试目标。在这里还要确定何时开始负载测试,在不同的阶段进行什么内容的负载测试。可以用下表来说明。1.3计划怎样执行LoadRunner确定要使用LoadRunner度量那些性能参数,根据测量结果计算那些参数,从而可以确定Vusers(虚拟用户)的活动,最终可以确定那些是系统的瓶颈等。在这里还要选择测试环境,测试机器的配置情况等等。2开发测试脚本LoadRunner使用虚拟用户的活动来模拟真实用户来操作Web应用程序,而虚拟用户的活动就包含在测试脚本中,所以说测试脚本对于测试来说是非常重要的。开发测试脚本要使用VuGen组件。测试脚本要完成的内容有:1、每一个虚拟用户的活动2、定义结合点3、定义事务开发测试脚本需要几个步骤,可以用下图来表示:创建用户脚本需要用到VuGen。提示:运行VuGen最好在1024*768的分辨率下,否则有些工具栏会看不到。2.1录制基本的用户脚本启动VisualUserGenerator后,通过菜单“file-New”(如下图)新建一个用户脚本,选择系统通讯的协议(如下图)这里我们需要测试的是Web应用,所以我们需要选择Web(HTTP/HTML)协议,确定后,进入主窗体。通过菜单(如下图)来启动录制脚本的命令。1、在URL中添入要测试的Web站点地址,这里我们以著名的Duwamish应用为例子来进行录制。2、选择要把录制的脚本放到哪一个部分,默认情况下是“Action1”。这里简单说明一下:VuGen中的脚本分为三部分:vuser_init、vuser_end和Action。其中vuser_init和vuser_end都只能存在一个,不能再分割,而Action还可以分成无数多个部分(通过点击New按钮,新建ActionXXX)。在录制需要登陆的系统时,我们把登陆部分放到vuser_init中,把登陆后的操作部分放到Action中,把注销关闭登陆部分放到vuser_end中。(如果需要在登陆操作设集合点,那么登陆操作也要放到Action中,因为vuser_init中不能添加集合点)在其他情况下,我们只要把操作部分放到Action中即可。注意:在重复执行测试脚本时,vuser_init和vuser_end中的内容只会执行一次,重复执行的只是Action中的部分。“Recordtheapplicationstartup”默认情况下是选中的,说明应用程序一旦启动,VuGen就会开始录制脚本;如果没有选中,应用程序启动后,VuGen出现以下对话框,并且暂时不会开始录制脚本,用户操作应用程序到需要录制的地方,按下“Record”按钮,VuGen才开始录制。点击上图中的“options”按钮,进入录制的设置窗体,这里一般情况下不需要改动。Recording标签页:默认情况下选择“HTML-basedScript”,说明脚本中采用HTML页面的形式来表示,这种方式的Script脚本容易维护,容易理解,推荐这种方式录制(微软在ACT中附带的Duwamish7例子采用的就是这种方式)。“URL-basedScript”说明脚本中的表示采用基于URL的方式,WAS和ACT中的录制方式就是这种,这种方式看上去比较乱。选择哪种方式录制,有以下参考原则:1、基于浏览器的应用程序推荐使用HTML-basedScript2、不是基于浏览器的应用程序推荐使用URL-basedScript。3、如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-based方式录制4、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based方式录制Advanced标签页:取默认情况即可。下面的图简单的说明了各项的含义。Correlation标签页:这里的内容比较重要,需要定制,主要是为了在录制过程中设置自动关联。这里资料比较少,现在还没有进行深入的研究。由于内容比较多,就不再一一介绍各项的含义了。根据自己的需求,选择适当的设置,然后点“OK”后,VuGen开始录制脚本。在录制过程中,不要使用浏览器的“后退”功能,LoadRunner支持不太好!录制过程中,在屏幕上会有一个工具条出现。下面我们简单介绍一下各个按钮的功能。录制的过程和WinRunner有些类似,不再多介绍。录制完成后,按下“结束录制”按钮,VuGen自动生成用户脚本,退出录制过程。脚本参考下页的图。2.2完善测试脚本当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本的灵活性。一般情况下,我们通过以下方法来完善测试脚本。2.2.1插入事务目的:衡量某个时间段服务器的性能。事务(Transaction):为了衡量服务器的性能,我们需要定义事务。比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner运行到该事务的开始点时,LoadRunner就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner运行在脚本中插入不限数量的事务。具体的操作方法如下:在需要定义事务的操作前面,通过菜单或者工具栏插入。出现以下对话框:输入该事务的名称。注意:事务的名称最好要有意义,能够清楚的说明该事务完成的动作。插入事务的开始点后,下面需要在需要定义事务的操作后面插入事务的“结束点”。同样可以通过菜单或者工具栏插入。出现以下对话框:默认情况下,事务的名称列出最近的一个事务名称。一般情况下,事务名称不用修改。事务的状态默认情况下是LR_AUTO。一般情况下,我们也不需要修改,除非在手工编写代码时,有可能需要手动设置事务的状态。脚本中事务的代码如下:2.2.2插入集合点插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LoadRunner中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner就会检查同时有多少用户运行到集合点,如果不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000人时,LoadRunner命令1000人同时去提交数据,从而达到测试计划中的需求。注意:集合点经常和事务结合起来使用。集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。具体的操作方法如下:在需要插入集合点的前面,通过菜单或者工具栏操作出现对话框输入该集合点的名称。注意:集合点的名称最好要有意义,能够清楚的说明该集合点完成的动作。脚本中集合点的代码如下:2.2.3插入注释注释的作用就不多说了,不过插入注释最好是在录制过程中。具体的操作方法如下:在需要插入注释的前面,通过菜单或者工具栏操作2.2.4参数化输入如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。参数化输入是一种不错的方法。用参数表示用户的脚本有两个优点:①可以使脚本的长度变短。②可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。参数化包含以下两项任务:①在脚本中用参数取代常量值。②设置参数的属性以及数据源。参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。另外,不是所有的函数都可以参数化的。参数化输入的讲解,我们采用一个例子的方式来进行。选择“Replacewithaparameter.”,出现以下窗口:下面我们重点介绍一下参数的类型。.DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime类型来替代。其属性设置也很简单,选择一种格式即可。当然也可以定制格式。.GroupName:暂时不知道何处能用到,但设置比较简单。在实际运行中,LoadRunner使用该虚拟用户所在的VuserGroup来代替。但是在VuGen中运行时,GroupName将会是None.LoadGeneratorName:在实际运行中,LoadRunner使用该虚拟用户所在LoadGenerator的机器名来代替。.IterationNumber:在实际运行中,LoadRunner使用该测试脚本当前循环的次数来代替。.RandomNumber:随机数。很简单。在属性设置中可以设置产生随机数的范围.UniqueNumber:唯一的数。在属性设置中可以设置第一个数以及递增的数的大小。注意:使用该参数类型必须注意可以接受的最大数。例如:某个文本框能接受的最大数为99。当使用该参数类型时,设置第一个数为1,递增的数为1,但100个虚拟用户同时运行时,第100个虚拟用户输入的将是100,这样脚本运行将会出错。注意:这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循环之间的差值为1。举例说明:假如起始数为1,递增为5,那么第一个用户第一次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7;依次类推。.VuserID:设置比较简单。在实际运行中,LoadRunner使用该虚拟用户的ID来代替,该ID是由Controller来控制的。但是在VuGen中运行时,VuserID将会是–1。.File:需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据(下面我们将会介绍).UserDefinedFunction:从用户开发的dll文件提取数据。就目前我认为,这种方式没有必要。VuGen支持C语言的语法,在VuGen中重新编写类似的函数应该不难。(一家之言,仅供参考)上面的例子中,我们取随机数即可。点
本文标题:Loadrunner基础使用手册
链接地址:https://www.777doc.com/doc-5860676 .html