|
LoadRunner自动化测试工具的应用
目录
第一部分:Loadrunner的简介... 3
1.1安装注意事项... 3
1.2 协议的选择或者VUSER 类型的选取... 4
1.3 LR的基本原理... 4
1.4 测试脚本录制/分配所遵循的几个原则... 4
第二部分:录制脚本... 5
2.1 录制脚本前需要理解的几个基本概念... 5
2.1.1 事务(Transaction)... 5
2.1.2集合点(Rendezvous)... 6
2.1.4 IP Spoofer(IP 欺骗)... 6
2.1.5(Text/Image)检查和contents check点... 7
2.1.6 LR脚本复用问题... 7
2.1.7理解Correlation(关联)... 8
2. 1. 8以录制Web(Http/Html)协议为例讲述一下LR的脚本的录制... 10
2.2脚本录制... 13
2.3脚本的参数化... 17
第三部分:创建运行场景... 20
3.1 Run-Time Setting. 20
3.2几种场景类型的选择... 25
3.3场景的设置... 26
3.3.1设置集合点... 28
3.3.2设置集合点策略... 29
3.3.3这里介绍一下多机联合产生负载... 31
3.3.4 LR对服务器资源的监视... 32
第四部分:利用Analysis 分析结果... 34
4.1页面分解... 35
4.2报表组合... 37
(由于工作繁忙,时间仓促,讲稿均在下班后写成,加上LR博大精深,本人水平有限,敬请各位提出批评和建议,文中参考了深圳软件测试论坛两位板主的部分观点,在此表示感谢)
LoadRunner® 是一种预测系统行为和性能的工业级标准性能测试负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和
加速应用系统的发布周期。
目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的LoadRunner能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。
LoadRunner 是一种适用于各种体系架构的负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner能支持广泛的协议和技术,为您的特殊环境提供特殊的解决方案。
LR的版本:目前常见的:LR7.0,LR7.51,LR7.6,LR7.8,每个版本差别蛮大的,大家尽量使用高版本。本文以LR7.8为例。
操作系统选择:LR是个比较底层的软件,OS最好为Windows 2000,因为W2k的稳定性和兼容性都不错,需要的内存也低,有人把LR装在WinXp下面,是有问题的。出错现象:“应用程序正常初始化(0xc0000005)失败”。在win2003,winXP下安装LR后会出现如此情况。
License问题:LR的license是区分类型的,一般是按协议和时间,用户数量来区分的,比如:
License for LoadRunner 7.51 (Type:Global500,Time Limited时效:1年 ) 就表示支持所有协议,最大500VU,时间:1年。
三种安装类型:Standalone Installation,Network Installation,Network Installation and shortcuts
四种安装方式:Typical Installation,Load Generator,MI Listener,Custom Installation
我们根据实际情况选择,我用Standalone Installation和Custom Installation安装,安装所有组件。
1.2 协议的选择或者VUSER 类型的选取
我现在要用LoadRunner测一个C/S or B/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)这些可以选择windows sockets协议。
至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可.
LR启动以后,在任务栏会有一个Agent进程,通过Agent进程,监视各种协议的Client与Server端的通讯,用LR的一套C语言函数来录制脚本,所以只要LR支持的协议,就不会存在录制不到的,这是它与Load test,WR,Robot(Gui)录制脚本的很大一个区别。(WR必须识别对象,才能录制到)。然后LR调用这些脚本向服务器端发出请求,接受服务器的响应。至于服务器内部如何处理,它不关心。
1.4 测试脚本录制/分配所遵循的几个原则
1. 脚本越小越好。就像写code一样的,不要太长,尽量做到一个功能(Transaction)一个脚本。如果那些功能是连续有序的,必须先做上一个,才能工作下一个,那就只好放在一起了。
2. 选择使用频率最高的。有些人喜欢在LR中测试几乎所有的功能,其实这样不合适,我们把最常用的、使用频率最高的、拿出来测试。但是也要结合用户实际使用情况,一般在一个系统中是多个用户使用多个功能,某些功能使用的频率更大一些,我们在录制脚本之前就要设计好,哪个脚本会跑几个用户,一共需要多少个脚本,能满足性能测试的需求。
3. 选择你所需要的进行录制。对于WEB的程序,对于你所关注的内容没什么影响的操作,你可以不录制,可以使用暂停,这需要试的, 对被测功能有一个清楚的认识和了解,要能把握住哪些地方是对整个过程没有影响的,比如一些查询,通常,选择条件的页面都可以不录制,但对于一些页面有可能要传递参数,就需要录制了, 如何确定哪些点可以不录制,一是可以找开发人员了解清楚程序设计的结构,再就是靠自己的经验,作的多了,就心中有数了。
例子:
|
Test case name |
Vuser number
Total 50 |
Vuser number
Total 20 |
Iteration |
|
Test case 1: merchants create schedule and costing sheet |
10 |
4 |
200 |
|
Test case 2: Merchant run report-5 concurrent users (3 merchants, 2 vendors). |
5 |
1 |
200 |
|
Test case 3: merchant edit costing sheet FOB and create production schedule |
9 |
4 |
200 |
|
Test case 4: merchant reply schedule tasks |
6 |
3 |
300 |
|
Test case 5: vendor reply schedule tasks |
7 |
3 |
200 |
|
Test case 6: vendor edit costing sheet |
7 |
3 |
200 |
|
Test case 7: merchant create topic, vendor reply topic |
4 |
1 |
100 |
|
Test case 8: imports reply schedule and do classification. |
2 |
1 |
10 |
2.1 录制脚本前需要理解的几个基本概念
2.1.1 事务(Transaction) |