<本文属原创,如需转载请与本人联系>
第七章 创建负载测试的情境
在上节中,我们在虚拟用户发生器中成功的进行了测试,本节课中,将会在有负载的情况下进行测试。在机票预定系统中模拟10个用户的并行操作,观察在有负载的情况下系统的行为。你可以通过LoadRunner 控制器来设计并执行这个测试。
Ø 介绍LoadRunner控制器
Ø 哪些混合用户应该包含在负载测试中
Ø 如何生成一个重负载
Ø 如何模拟一个负载行为
Ø 如何模拟不同的用户
Ø 如何在有负载的情况下监视系统
介绍LoadRunner控制器
负载测试就是在某种工作条件下测试你的应用程序,例如,多个用户同时在同一个预定系统上定制机票。
设计一个测试用例来模拟真实情况。你需要可以在应用程序上生成一个负载,并安排什么时候应用它(因为用户不会在完全相同的时间同时登录或者注销)。同时你也需要模拟不同的用户的动作和行为。例如,有些用户可能使用Netscape而不是IE去浏览应用程序,同时也可以使用不同的网络链接,比如modem,DSL或者电缆(cable),你可以在你的情境中建立并不存这些设置。
情境对象
本课中,在情境中建立的对象会模拟是个旅客同时登录,查询航班,购买航班,确认路线,注销等过程。
启动控制器
打开控制器建立情境
1. 打开Mercury LoadRunner
选择 Start > Programs > Mercury LoadRunner > LoadRunner. 打开
Mercury LoadRunner Launcher 窗口。
2. 打开控制器
在Load Testing 标签中, 单击Run Load Tests. 打开LoadRunner Controller
默认情况下, Controller会打开New Scenario对话框.
![](http://blogimg.chinaunix.net/blog/upfile/070911092744.jpg)
3. 选择Scenario类型
选择Manual Scenario.
Manual Scenario.中你可以控制执行的虚拟用户数和他们执行的时间,而且可以测出你
的应用程序同时可以供多少个虚拟用户使用。你可以选择percentage模型,然后基于事务分析结果中的百分比来确定在不同脚本中虚拟用户的总数。
情境设计的目的是确定你的系统是否可以达到某种指标,例如你可以根据事务点击时间,或者每秒的点击数目来确定这个目标,同时LoadRunner会基于这些目标自动的建立一个情境。在第九课中你可以建立一个基于目标的情境,高级目标导向的情境。
哪些混合用户应该包含在负载测试中
在本手册中,仅通过一个虚拟用户脚本模拟一个单一群体的相同动作。在情境中模拟不同混合型用户的操作,你需要建立不同的群体执行几个具有不同用户设置的脚本。
先前在VuGen中录制的脚本包含你要测试的事务过程。包括登录、查询、买票、核实航班路线,注销。给这个情境填加一个类似的脚本,配置情境模拟8个旅客在这个机票预定系统上同时预定机票。接下来在测试的过程中再填加两个用户。
1. 在负载测试中填加一个脚本
这里建立的脚本和你以前建立的脚本很像,这里推荐使用范例脚本。
单击浏览按钮,打开<LoadRunnerInstallation>/Tutorial目录下的basic_script
脚本会同时显示在可用脚本部分和情境部分
单击OK,LoadRunner控制器会在Design标签中打开你的情境(Scenaro)。
2. 开始设计负载测试情境
核对情境窗口中Group Name 栏中显示的 basic_script脚本
3. 更改群的名字和虚拟用户的数量
单击Details按钮,打开Group Information对话框
在Group Name文本框中输入输入有意义的名字,比如“Travel_Agent”。
在Vuser Quantity文本框中,输入8,这个实在本地负载发生器上将会运行的虚拟用户数
![](http://blogimg.chinaunix.net/blog/upfile/070911092424.jpg)
单击OK.在控制器窗口中将会显示相应的情境设置。
浏览控制器窗口
控制器窗口的设计包括两个主要部分:
Ø Scenario Schedule
Ø Scenario Groups
![](http://blogimg.chinaunix.net/blog/upfile/070911092924.jpg)
Scenario Schedule:设置负载行为来精确的描述用户的行为.确定应用到程序中的某个负载的比率,负载测试的周期,以及如何在情境中停止负载的应用。
Scenario Groups:建立不同的群体来代替在你的系统上操作的用户。定义他们的动作、虚拟用户的数目、他们将会使用的机器。在Scenario Group 部分完成这些配置。
如何生成一个重负载
当你加载完脚本,定义了在情境中运行的虚拟用户数后,你可以配置负载发生器了。
负载发生器通过执行虚拟用户的操作来增加负载。你可以用一定数目的伏在发生器,每个主机模拟多个虚拟用户。在这个阶段,你可以学会在情景中填加负载发生器,并且测试负载发生器间的连接。
1. 填加负载发生器
单击Generators按钮,打开Load Generators对话框,显示处localhost负载发生起的详细内容。
![](http://blogimg.chinaunix.net/blog/upfile/070911093142.jpg)
在本手册中,你将用你本地计算机充当负载发生器(期间默认的包括情境)。Localhost负载发生器的默认状态是Down。这表明控制器没有和负载发生器相连接。
注意:在典型的产品系统中,你可能有几个负载发生器,每个会有多个虚拟用户。你可以通过单击Load Generators对话框中的Add按钮来增加额外的机器,在Add NewLoad Generator对话框中输入机器的名字和平台的类型即可。
2. 测试负载发生器的连接
当你执行情境时, 控制器将会自动与负载发生器建立连接。然而,在你执行一个情景前,你可以测试他们的连接情况。
选择localhost load generator ,单击Connect.
控制器将会试图与负载发生器的机器发生连接.当连接建立起来后,状态将会由Down变成Ready
单击Close.
如何模拟一个负载行为
当你填加了负载发生器机器后,你可以准备配置负载行为啦。
典型的用户不会在完全相同的时间里登录或者是注销。LoadRunner允许用户在系统中逐步登录或者是注销。同时它也可以允许你来决定负载测试的持续时间和情境停止的方式。
现在你可以通过Controller Schedule Builder来改变负载设置的默认值。
1. 改变Scenario Schedule的默认设置
单击Edit Schedule按钮。打开Edit Schedule对话框。
![](http://blogimg.chinaunix.net/blog/upfile/070911093302.jpg)
2. 指定渐进起点
在一定的间隔中启动虚拟用户这样你就可以检测在一段时间内给你的网站
逐渐增加虚拟负载的情况,并帮助你精确定位你的系统哪一部分反映慢。
在Ramp Up标签中。将设置改为:Start 2 Vusers every 30 seconds
![](http://blogimg.chinaunix.net/blog/upfile/070911093347.jpg)
3. 虚拟用户初始化
初始化意味着准备虚拟用户并且为执行负载配置负载发生器。在运行前对
虚拟用户进行初始化可以降低CPU的消耗,并且可以帮助产生真实的结果。
选择Initialize all Vusers before Run
4. 持续时间表
通过指定持续时间你可以确保在业务进程中的持续行为,你可以衡量服务器上的负载持续情况。注意如果你设置了持续时间,测试将会在你指定的时间内尽可能多次的执行,因为不必对测试次数进行设置。
在Duration标签中,将设置改为:Run for 10 minutes after the
ramp up has been completed
![](http://blogimg.chinaunix.net/blog/upfile/070911093429.jpg)
5. 渐进关闭时间表
逐次停止虚拟用户的行为可以帮助在应用达到一定极限的时候发现内存泄漏问题,检测系统恢复情况。
在Ramp Down标签中,将设置改为:Stop 2 Vusers every 30 seconds.
![](http://blogimg.chinaunix.net/blog/upfile/070911093506.jpg)
6. 程序调度表现图
负载预览图可以展示你定义的情境轮廓中的ramp up, 持续时间,和ramp down
![](http://blogimg.chinaunix.net/blog/upfile/070911093545.jpg)
单击OK
如何模拟不同的用户
现在你已经配置了负载行为,你还要指定在测试执行过程中你的虚拟用户的行为。
当模拟一个真实的用户时,你需要考虑这个用户的真实行为。行为涉及到在动作间的暂停,某个动作的反复执行等等。
本部分,将会进一步学习LoadRunner的执行时间设置,可以设计思考时间和间隙。
1. 打开Run-Time settings
在Design标签中,选择脚本单击Run-Time Settings按钮,打开Run-Time Settings对话框。
![](http://blogimg.chinaunix.net/blog/upfile/070911093702.jpg)
Run-Time settings可以帮你模拟用户的不同动作和行为,包括:
Ø Run Logic:用户对某些动作的重复次数
Ø Pacing:在重复操作前的等待时间
Ø Log:在你测试过程中需要收集的信息。在你第一次执行情境的时候,建议要生成日志信息这个可以帮助在你执行发生错误的时候进行调试。
Ø Think Time:在每步结束后用户停下来思考的时间
由于用户需要根据他们的经验和主观意识来与应用程序进行交互,
经验丰富的人员要比初学者更快完成操作。通过设置think time可以在负载测试过程中更加真实的模拟现实生活中的用户。
Ø Network Emulation:用户使用不同的网络连接,如modem, DSL, and cable
Ø Browser Emulation:用户使用不用的浏览器
Ø Content Check:自动检测用户自定义错误
假设在发生错误时你的应用程序会生车么那个一个自定义的页面。这个自定义的页面通常会包括“ASP Error”字样。你需要检查server返回的所有页面确保“ASP Error”是否出现。
你可以设置Content Check run-time settings,使LoadRunner在执行测试时自动检查这个文本中,LoadRunner会搜索这个文本,如果检查到将会生成一个错误信息。在情境执行过程中,你可以清楚的识别错误检查内容。
2.Enable think time
选择General:Think Time节点. 选择Replay think time, 和Use random percentage of recorded think time选项.指定最小值为:50% 最大值为150%.
![](http://blogimg.chinaunix.net/blog/upfile/070911093739.jpg)
你可以根据录制时候的的思考时间的随机百分比模拟用户的熟练程度。例如:如果录制时用户选择机票时的思考时间是4秒中,那么产生的随机思考时间是2-6秒中(4秒的50%-150%)
3.Enable logging.
选择General:Log节点,选择Enable logging。在log选项 中,选择Always send messages.选择Extended log,最后选择Data returned by server.
![](http://blogimg.chinaunix.net/blog/upfile/070911093833.jpg)
注意:当调试开始执行时,不推荐扩展日志。这里的目的只是为用户调试提供有用的输出日志。
单击OK, 关闭Run-Time settings对话框。
如何在有负载的情况下监视系统
现在你已经定义了虚拟用户在执行测试过程中的行为,现在准备设置你的监视器。
当为你的应用设置了一个负载的时候,你希望看到在现实世界里你的应用程序是如何执行的,哪里是存在的瓶颈。使用LoadRunner配套集成的监视器你可以在有负载的情况下衡量你的服务器,系统部件的表现。LoadRunner包括系统的大量部件的监视器:如Web, application, database, and ERP/CRM servers等。
例如,你可以选择根据运行的Web server 的类型来悬在Web server资源监视器。你可以购买相关监视器的使用权,例如IIS,使用这个监视器你可以精确的反映IIS 资源的相关问题。
本部分,你将会学习如何填加配置Windows 资源监视器,你可以使用这个监视器来显示你的CPU,硬盘和内存资源对负载的反映。
1. 选择Windows资源管理器
单击控制器窗口中的Run标签,打开run视图。
在表的视图区有四个默认显示的图表,其中有一个是Windows资源表。下一节中将会学习如何打开其他图表。
![](http://blogimg.chinaunix.net/blog/upfile/070911093918.jpg)
右单击Windows资源管理图表,选择Add Measurements。打开Windows resources对话框。
![](http://blogimg.chinaunix.net/blog/upfile/070911094619.jpg)
2. 选择监视器服务器
在Windows resources对话框中的的Monitored Server Machines部分,单击Add,打开Add Machine对话框。
![](http://blogimg.chinaunix.net/blog/upfile/070911094705.jpg)
输入负载发生器(这种情况下,即你本地计算机名字)服务器名字或者IP地址,和机器运行平台,单击OK。
默认的Windows资源度量器显示在Resource Measurements on <server machine> 面板中。
![](http://blogimg.chinaunix.net/blog/upfile/070911094758.jpg)
3. 激活监视器
在Windows资源管理器对话框中,单击OK激活管理器。
现在你一经设计了一个负载测试情境,可以学习第八章了:执行负载测试。