UML软件工程组织

使用Winrunner进行性能测试
2006.11.20  来自:blog   

凡问到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脚本中设置同步点,因此在需要同步点操作的时候,该方法没有什么明显的优势。

每一种方法都有其特定的优势和弊端,我们应该根据每次不同的测试目的,变换测试方法,这样才能有效地进行性能测试。


版权所有:UML软件工程组织