LoadRunner自动化测试工具的应用(讲稿)

2019-03-16 19:06

LoadRunner自动化测试工具的应用(讲稿)

(由于工作繁忙,时间仓促,讲稿均在下班后写成,加上LR博大精深,本人水平有限,敬请各位提出批评和建议,文中吸收了深圳软件测试论坛两位板主的观点,在此表示感谢)

第一部分:Loadrunner的简介

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

目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不 同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担 心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。 Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最 大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质 量,可靠性和可扩展性都有良好的评价。

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

化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为 和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的 协议和技术,为您的特殊环境提供特殊的解决方案。

? 安装注意事项:

LR的版本:目前常见的:LR7.0,LR7.51,LR7.6,LR7.8,每个版本差别蛮大的,大家尽量使用高版本。本文以LR7.8为例。

操作系统选择:LR是个比较底层的软件,最好为Windows 2000,因为W2k的稳定性和兼容性都不错,有人把LR装在WinXp下面,是有问题的,出错现象:“应用程序正常初始化

(0xc0000005)失败。是由于安装错误。在win2003,winXP下安装LR后会出现如此情况。

License问题:LR的license是区分类型的,一般是按协议和时间,用户数量来区分的,比如:

License for LoadRunner 7.51 (Type:Global500Time Limited时效:1年 ) 就表示支持所有协议,最大500VU,时间:1年。

三种安装类型:Standalone Installation,Network Installation,Network Installation and shortcuts 四种安装方式:Typical Installation,Load Generator,MI Listener,Custom Installation

我们根据实际情况选择,我用Standalone Installation和Custom Installation安装,安装所有组件。

? 我现在要用LoadRunner测一个C/S系统,请问该用什么协议?

经常有新手问:为什么我用LR录完之后VuGen里产生不了脚本?这就是协议选择的问题了,LR支持的协议和应用非常广泛,很少有人能用完这么多协议,我们就常见的大多数人用的加以讨论:对于常见的,b/s系统,选择Web(Http/Html), 测一个C/S系统,根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是sybase,

1

则采用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. 脚本是越小越好,就像写code一样的,不要太长,尽量做到一个功能(Transaction)

一个脚本。如果有些功能是连续的,必须先做上一个,才能工作下一个,那就只好放在一起了。

2. 但是要结合用户实际使用情况,一般在一个系统中是多个用户使用多个功能,某些功

能使用的频率更大一些,我们在录制脚本之前就要设计好,某个脚本会跑几个用户,一共需要多少个脚本,能满足性能测试的需求

3. 有些人喜欢在LR中测试几乎所有的功能,其实这样不合适,我们把最常用的、使用频

率最高的、最多人用的拿出来测试。

对于WEB的程序,对于你所关注的内容没什么影响的操作,你可以不录制,可以暂停,这需要试的,比如一些查询,通常,选择条件的页面都可以不录制,但对于一些页面有可能要传递参数,就需要录制了,这就要自己试了

例子: Test case name Vuser number Total 50 10 5 9 6 7 7 4 2 Vuser number Total 20 Test case 1: merchants create schedule and costing sheet Test case 2: Merchant run report-5 concurrent users (3 merchants, 2 vendors). Test case 3: merchant edit costing sheet FOB and create production schedule Test case 4: merchant reply schedule tasks Test case 5: vendor reply schedule tasks Test case 6: vendor edit costing sheet Test case 7: merchant create topic, vendor reply topic Test case 8: imports reply schedule and do classification. 4 1 4 3 3 3 1 1 200 200 200 300 200 200 100 10 Iteration 第二部分:录制脚本:

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

2

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的状态,会等待集合。

IP Spoofer(IP 欺骗)

当运行场景时,虚拟用户使用它们所在的Load Generator 的固定的IP 地址。同时每个

3.

Load Generator 上运行大量的虚拟用户,这样就造成了大量的用户使用同一IP 同时访问一个 网站的情况,这种情况和实际运行的情况不符,并且有一些网站会根据用户IP 来分配资源, 这些网站会限制同一个IP 的登陆,使用等等。为了更加真实的模拟实际情况,LoadRunner 允许运行的虚拟用户使用不同的IP 访问统一网站,这种技术称为“IP 欺骗”。

启用该选项后,场景中运行的虚拟用户将模拟从不同的IP 地址发送请求。该选项非常

的有用。注意:IP Spoofer 在连接Load Generators 之前启用。要使用IP 欺骗,各个Load

3

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服务器就可以使用。

6. 理解Correlation(关联)

关联是用来解决脚本中存在的动态数据问题的.在7.8中,当你回放一次后,LR会自动录找你录制的时候和回放时候的差别,找出动态数据,并作成参数。举个我作的动态数据的例子,当用户登录时,会产生一个Sessionid号,访问结束后,该Sessionid便会失效。我录制的时候,在脚本里面获取到了该Sessionid,但当我再回放的时候,这个Sessionid已经无效了,所以,我需要把这个Sessionid作为一个动态数据,当我一登录的时候,便获取一个新的有效的Sessionid,然后通过web_reg_save_param(\WCSParam_Text2\

\ \\

\

4

\LAST);

函数把它保存下来。那么后面用到的页面中就可以调用WCSParam_Text2这个参数使用这个新的Sessionid号。这是个动态数据很典型的例子,

web_submit_data(\

\ \\

\text/html\

\ \=t3.inf\ \ITEMDATA,

\chenjing\

\\T01\ \TxtUserID\BH}\ \TxtPassword\cwpass\ \Txtkjdate\

\性能测试用(中型数据库)\\T01\ LAST);

web_url(\

\enushow/loginpage.aspx?ProcessID={WCSParam_Text2}\\ \

\text/html\ \

\=t4.inf\ \LAST);

左边界,右边界到底是个什么概念, 理解web_reg_save_param函数,

int web_reg_save_param (const char *ParamName, , LAST);

第一部分:参数名字,用双引号括起,逗号分开; 第二部分:List of Attributes,包括:LB、RB、RelFrameID、Ord、Search、SaveOffset、SaveLen等,

第三部分:LAST,结束标志。

LB是左边界,RB是右边界,比如说吧,程序中有这么一个赋值,ProcessID =A53625E18440FCE81F26DCE712E65EBA;如果ProcessID的值是动态的,我想使用动态变量,那我设定查找左边界为LB=ProcessID=,右边界为;的字符,如果找到了,就替换成变量.

Search是指查找范围,就是说在哪里查找这些值,可以取这样几个值,我们一般设为ALL,Body等即可。

Headers (Search only the headers),

Body (search only Body data, not headers),

Noresource (search only the html body, excluding all headers and resources),

5


LoadRunner自动化测试工具的应用(讲稿).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:白菜知识介绍

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: