凡问到Mercury公司的测试工具,每个人都会说Winrunner记录的是前台界面的操作过程,是功能测试工具;Loadrunner记录了后台程序的交互信息,是性能测试工具。似乎在每位测试人员的心中,Winrunner和Loadrunner已经被很明确地界定开来,前者只能做功能测试,而后者只能进行性能测试。
但是出乎大家的意料,Winrunner也能进行性能测试,只不过这不是一种常规的测试方法,不为广大测试人员使用。但是不被广泛使用并不是代表不行,前一阶段,我就在某系统上使用Winrunner进行了一次性能测试,证实了该测试方法的可行性。
下面我将介绍使用Winrunner进行性能测试的工作原理,详细介绍使用Winrunner进行性能测试的测试方法,以及点明该方法优势和弊端。有兴趣的测试爱好者,可以仔细阅读,尝试使用Winrunner进行性能测试。
使用Winrunner进行性能测试的原理
性能测试的初衷就是模拟大量的用户对应用系统同时进行操作,查看大量访问的情况下,应用程序的运行情况和系统的承载情况。
Winruner是功能测试工具,它主要的功能是记录用户的界面操作。如果使用Winrunner进行性能测试,模拟大量的客户前台界面操作的情况(Loadrunner只是记录后台程序的交互情况),那不是真正达到了性能测试的目的了么。
我们知道Winrunner是没有办法模拟大量用户的,但是Loadrunner的Controller可以。所以我们就会很自然地想到使用Loadrunner调用Winrunner,并发大量的用户,完成性能测试工作。
在使用Winrunner进行压力测试时,我们要选用一台主控机和一台压力生成器,让主控机通过远程桌面方式访问压力生成器。由于GUI脚本是界面操作,所以一个界面只能运行一个GUI脚本,但是通过远程桌面方式访问主机,我们可以使一台机器展现出两个界面,而且这两个界面互不干扰,各自操作的。所以我们建议使用远程桌面的方式控制压力生成器。如果压力生成器可以同时打开2个远程桌面界面,那么我们就可以运行2个虚拟用户,如果可以打开3个,那么我们就可以运行3个虚拟用户,以此类推。
该方法的技术要点
那么我们使用Winrunner进行压力测试需要什么运行环境,对系统进行什么相关设置呢?我们在下面将为大家一一介绍。
- 该方法的运行环境
- Loadrunner将支持什么版本的Winrunner
LoadRunner Version
|
Supported WinRunner version |
LoadRunner8.x |
WinRunner 7.5, 7.6, 8.2
Note:
There is a WinRunner patch in the LoadRunner
8.0 Add-ins installation CD under the Patches\lr_wr_patch
directory. WinRunner and LoadRunner will NOT work together
without this patch. |
LoadRunner7.8, LoadRunner7.8 FP 1
|
WinRunner 7.5, 7.6 Note:
The WinRunner patch in the LoadRunner
7.8 installation CD under the Patches\lr_wr_patch directory
is needed only with WinRunner 7.5. No patch is necessary
for WinRunner 7.6. |
LoadRunner7.6 |
WinRunner 7.5, 7.6 |
LoadRunner7.51, LoadRunner7.51 SP1
|
WinRunner 7.5 |
LoadRunner7.5 |
WinRunner 7.01 Note:
There is a WR701 patch in LoadRunner
75 installation CD under Patches à WR701 à patch_LRWR.zip.) |
- 安装要求
WinRunner:主控机和压力生成器都需要安装
LoadRunner :
主控机完全安装Loadrunner;安装Loadrunner调用Winrunner的补丁
压力生成器需要安装Load Generator
- License要求
WinRunner License:对于使用版本,Mercruy提供单个Winrunner的License
LoadRunner需要执行GUI Vuser的license
- 如何在主控机上并发的GUI用户数大于1
在基于Windows的压力生成器上,你只能并发一个GUI脚本。如果你的虚拟用户数填写值大于1,系统将提示:一台机器只能运行一个GUI脚本。
如果想运行大于1个GUI脚本,你必须在设置Winrunner的系统文件(以下设置只对LoadRunner
8.0以上版本的软件有效)
打开主控机的c:\systerm\wlrun7.ini
搜索到[Vuser]标识
增加"VuMaxGUILimit"标志,如果你想在你机器上Loadrunner调用Winrunner的并发量最大为10,那么你你可以设置成VuMaxGUILimit=10
- 如何使设置主控机通过远程桌面访问的方式访问压力生成器
设置主控机的Agent Configuration
开始à程序à Mercury LoadRunneràAdvanced SettingsàAgent
Configuration。注意设置后充启Loadrunner Agent Process。
如何使主控机可以直接远程访问压力生成器
设置压力生成器的RDP-Tcp设置,目的就是在远程登入该机器时,可以不用输入用户名、密码,直接登入。设置内容如下:
- 如何让Loadrunner执行Winrunner脚本
- 复制Winrunnr脚本到Loadrunner的主控机
- 如果你决定在远程机器上运行脚本,你也必须将脚本复制到远程机器上,同时必须确定:
- 该Winrunner脚本在远程机器可以正常运行
- 在远程机器上必须打开LoadRunner Agent process,打开方法:Start
à Programs à LoadRunner à LoadRunner Agent process.
打开LoadRunner Controlle,你可以选择Manual or Goal-Oriented Scenario,点击“Browse”,如下图:
- 在跳出框中,改变文件类型到“GUI script”,如下图:
- 如果你的路径必须有你的Winrunner脚本,Winrunner脚本的图表将会显示出来
- 点击Open后,你的脚本将会被添加到LoadRunner Controller.
- 在你运行你的脚本之前,请点击“Generators”。选择相关的host后,点击“Details”。确定在Vuser
Linmits栏中“GUI/WinRunner”被选中,如下图:
- 如果你决定在远程机器上运行脚本,则需要在Controller添加远程机器作为压力生成器(Load
Generator)时,在Detail的Terminal Services Tab页,选中Enable Terminal Services
Manager。注意Maximum number of Vusers per teminal请设置为1。
该方法的优势与弊端 在完成了上述介绍后,我们就可以使用Winrunner进行性能测试了。当初我在某应用系统上试验该方法后,最明显的感触就是,它能够真正的模拟用户的操作,进行性能测试(不只是记录后台的交互操作)。对于每一项的响应时间,我们都可以很明确的记录,而且记录下来的是最真实的响应时间,包括前台到Cobar中间件的响应时间,这是Loadrunner脚本没有办法做到的。
还有就是它有与中间件的协议无关的优点。即使应用系统使用的是Loadrunner不识的,较冷门的协议,该方法一样可以对该系统进行性能测试。
但是该方法也存在着局限性。首先在并发数上,它受限于远程桌面访问数量。并发数是根据远程桌面访问数来定的,如果这台机器只能有2个远程桌面访问数,那么这台机器最多并发2个虚拟用户,所以我们要使用该方法进行性能测试,我们要选用大量的PC机,要么有较大的远程桌面访问数量。
还有就是它对同步点控制不好。我们没有办法在GUI脚本中设置同步点,因此在需要同步点操作的时候,该方法没有什么明显的优势。
每一种方法都有其特定的优势和弊端,我们应该根据每次不同的测试目的,变换测试方法,这样才能有效地进行性能测试。
|