一简介
loadrunner是一款预测系统行为和性能的工业级标准负载性能测试工具。
通过模拟千万用户实施并发负载及实时性能监测的方式来确认和查找问题。
loadrunner的测试对象是整个企业的系统,能支持广泛的协议和技术,为特殊环境提供特殊的解决方案。
1.1安装注意事项
LR版本选择最高,OS最好为windows 2000
三种安装类型:Standalone installation;Network installation;Network installation and shortcuts
四种安装方式:Typical installation; Load Generator;Custom installation
根据实际情况选择。(Standalone installation+Custom installation)
1.2协议的选择
B/S系统:选择web(html/html)
C/S系统:
1.3LR基本原理
LR启动之后,在任务栏会与一个Agent进程,通过Agent进程监视各种协议的Client与Server端的通讯,用LR的一套C语言函数来录制脚本。然后LR调用这些脚本向服务器发出请求,接受服务器的响应。
1.4测试脚本录制遵循的原则
1.脚本越小越好,一个功能一个脚本。
2.选择使用频率高的,不用录制所有的功能。
3.选择你所需要的录制,对关注的内容没有什么影响的操作就不用录制了。
二录制脚本
2.1录制脚本前需要理解的概念
2.1.1事务transaction
事务是一个点,为了衡量某个action的性能,需要在action的开始和结束位置插入一个范围,这就定义了一个transaction。lr运行到该事务的开始点时,lr就会开始计时,直到运行到事务的结束点,计时结束。这个事务的运行时间在结果中会有反应
2.1.2集合点rendezvous
是一个并发访问的点,在测试计划中,可能要求系统能够承受1000人同时提交数据,在LR中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到集合点时,lr会模拟1000人同时提交数据,达到并发访问的目的。
注意:集合点经常和事务结合起来使用,常放在事务的起那么,集合点只能插入到Action部分,vuser_init和vuer_end中不能插入集合点。
lr_rendezvous("SubmitQueryData");
加入集合点之后,在后面云心过程中可以看到VU的状态,会等待集合。
2.1.3IP欺骗Spoofer
一些网站不允许同一个IP地址同时登录,为了更加真实的模拟实际情况,LR允许运行的虚拟用户使用不同的IP访问同一网站。
注意:IP Spoofer在连接Load Generators之前启用,各个Load Generators机器必须使用固定的IP,不能使用动态的IP(DHCP)
2.1.4(Text/Image)检查和contents check点
对于查询类的脚本一定要添加检查点,以保证在测试时结果的正确性,因为LR只要检测到网页的响应,就认为是pass而并不管当前网页内容的正确性。在进行压力测试时,为了检查web服务器返回的页面是否正确,VuGen允许我们插入Text/Image检查点,这些检查点验证网页上是否存在指定的Text或者image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。
对于有的页面是无法添加文本和图形检查点的,就加入contents check点。
2.1.5LR脚本复用问题
参数化的脚本在应用没什么大的变化的情况下,一直是可以用的。
你在A服务器录制的脚本,如果做测试的时候需要转移到B服务器上,只需要用查找替换功能将A服务器的IP地址换成B服务器的IP地址就可以使用。
2.1.6理解correlation关联
关联是用来解决脚本中存在的动态数据的问题的。找出录制的时候和回放时候的差别,找出动态数据,并作成参数。
例如:当用户登录时会产生一个sessionid号,访问结束后该id号失效。LR录制的时候获取到id,当回放的时候这个id号已经无效了。所以需要该id作为一个动态数据,当一登录的时候便获取到一个新的有效的sessionid,然后通过函数把它保存下来。
LB是左边界,要查找的字符串左面的边界值,即位于查找字符串最左边的字符串。
RB是右边界,位于查找字符串的最右边的字符串。
LR7\8已经为用户定义了很多类型的关联,我们可以自己定义New rule.
需要关联的地方:一般是在有主键,不允许记录重复,一些主程序中传递过来的参数,在后面要用到的情况才使用关联的,可以先执行一遍,如果有些地方不允许重复,参数值无效,就会出错的,根据错误你可以判断出来,就知道需要关联了。一般需要关联的不多。
2.1.7栗子
VUGen里面敲lr_
web脚本本身分为init action end三部分
init-初始部分,
action-事务部分,
end-退出结束
1.基于浏览器的应用程序推荐使用HTML-based Script
2.不是基于浏览器的应用程序推荐使用URL-based Script
3.