第一部分:
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:
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安装,安装所有组件。
Ø
我现在要用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. 脚本是越小越好,就像写
code一样的,不要太长,尽量做到一个功能(Transaction)一个脚本。如果有些功能是连续的,必须先做上一个,才能工作下一个,那就只好放在一起了。
2. 但是要结合用户实际使用情况,一般在一个系统中是多个用户使用多个功能,某些功能使用的频率更大一些,我们在录制脚本之前就要设计好,某个脚本会跑几个用户,一共需要多少个脚本,能满足性能测试的需求
3. 有些人喜欢在
LR中测试几乎所有的功能,其实这样不合适,我们把最常用的、使用频率最高的、最多人用的拿出来测试。
对于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
|
第二部分:录制脚本: