关于LoadRunner自动化测试工具相关知识【转载】

上一篇 / 下一篇  2011-04-01 17:13:53 / 天气: 晴朗 / 心情: 高兴 / 精华(1) / 个人分类:软件测试工具

Loadrunner的简介

 

     LoadRunner® 是一种预测系统行为和性能的工业级标准性能测试负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不

同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。

        Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。

LoadRunner 是一种适用于各种体系架构的负载测试工具,它能预测系统行为并优

化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为

和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的

协议和技术,为您的特殊环境提供特殊的解决方案。

 

 

Ø         安装注意事项:

    LR的版本:目前常见的:LR7.6,LR7.8,LR8.0,LR8.1,每个版本差别蛮大的,大家尽量使用高版本。我安装的的是LR8.1版本的,下载地址见:http://hi.baidu.com/ruanjianceshi/blog/item/16fc033bc92565ea15cecb9c.html

   操作系统选择:LR是个比较底层的软件,最好为Windows 2000,因为W2k的稳定性和兼容性都不错,有人把LR装在WinXp下面,是有问题的,出错现象:“应用程序正常初始化(0xc0000005)失败。是由于安装错误。在win2003,winXP下安装LR后会出现如此情况。

 用LoadRunner测一个C/S系统,要用什么协议?

   用LR录完之后VuGen里产生不了脚本,这是协议选择的问题了,LR支持的协议和应用非常广泛,对于常见的,b/s系统,选择Web(Http/Html),
测一个C/S系统,根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是sybase,则采用sybaseCTlib协议,如果是sql server,则使用MS sql server的协议,至于oracle 数据库系统,当然就使用oracle 2-tier协议。
对于没有数据库的c/s(ftp,smtp)这些可以选择windwos wockets协议。
至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可.


 LR的基本原理:
通过Agent进程,监视各种协议的client与server端的通讯,用LR的一套C语言函数来录制脚本,所以只要LR支持的协议,就不会存在捕捉不到的,这是它与Loadtest,WR,Robot(Gui)录制脚本的很大一个区别。WR必须对识别对象,才能录制到。然后它调用这些脚本向服务器端发出请求,接受服务器的返回。至于服务器内部如何处理,它不关心。


录制脚本前需要理解的几个基本概念:


1. 事务(Transaction)
事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结束位置插入这样一个范围,这样就定义了一个transaction,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。
   插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner 运行在
脚本中插入不限数量的事务。
比如一个单据,把从登录到保存成功退出整个作为一个脚本,对于需要关注的保存,输入的帮助定义为单独的事务,以取得响应时间,需要响应时间的设事务
脚本中事务的代码如下:

 

2. 集合点(Rendezvous)
集合点:是一个并发访问的点,在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,并发访问的目的。
注意:集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。集合点函数如下:

 


加入集合点之后,在后面运行过程中可以看到VU的状态,会等待集合。

 

3. IP Spoofer(IP 欺骗)
   当运行场景时,虚拟用户使用它们所在的Load Generator 的固定的IP 地址。同时每个
Load Generator 上运行大量的虚拟用户,这样就造成了大量的用户使用同一IP 同时访问一个网站的情况,这种情况和实际运行的情况不符,并且有一些网站会根据用户IP 来分配资源,这些网站会限制同一个IP 的登陆,使用等等。为了更加真实的模拟实际情况,LoadRunner允许运行的虚拟用户使用不同的IP 访问统一网站,这种技术称为“IP 欺骗”。
启用该选项后,场景中运行的虚拟用户将模拟从不同的IP 地址发送请求。该选项非常
的有用。

注意:IP Spoofer 在连接Load Generators 之前启用。要使用IP 欺骗,各个Load Generator 机器必须使用固定的IP,不能使用动态IP(即DHCP)。

LoadRunner主要功能是模拟多用户对系统进行负载压力测试,默认情况下,多用户的生成器都是LocalHost,有些应用需要不同的IP访问,为了模拟真实操作,我们还必须模拟多个IP,IP Wizard工具就提供了生成多个ip的功能,IP Wizard是一个单独的程序,我们可以在开始菜单里面找到,你可以添加一个局域网内的IP段。添加后重启,在Win2k下使用Ipconfig/all查看到很多虚拟的IP,最后要在Controller里面选择enable ip spoofer.

4. (Text/Image)检查点

对于查询类的脚本,一定要添加检查点,以保证在测试时结果的正确性.因为LR只要检测到网页的响应,就认为是pass而并不管当前网页内容的正确性.在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Imag 检查点,这些检查点验证网页上是否存在指定的Text或者Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。检查点的含义和WinRunner 中的检查点功能基本上一致,这里就不再作过多的说明。
    举个例子:当我用loadrunner做压力测试的时候,
它的确能反馈给我各种服务器性能的数据,
但是在做B/S结构系统的测试的时候,
去发现如下问题:
loadrunner不能正确判断操作是否成功,
比如登录,我要测试200人同时登录,
但是我的login.jsp里面没有正确的关闭数据库的连接,
导致登录100人后,建立了100个数据库连接,
第101一个人登录的时候,由于超出数据库连接的最大数,
所以,jsp程序抛出了一个数据库异常。
但是页面的走向是正确的,所以loadrunner会认为程序是正确执行的,但是事实却并非如此

5. LR脚本复用问题

    作为一款优秀的负载测试工具,LR的测试脚本有很好的复用性,参数化后的脚本,在应用没什么大的变化的情况下,一直是可以用的。甚至你在A服务器录制的脚本,如果做测试的时候,需要转移到B服务器上,你只需要用查找替换的功能将A服务器的IP地址换成B服务器就可以使用。


TAG:

 

评分:0

我来说两句

Open Toolbar