以此篇作为学习+实践LR系列的小结
7A+u3l%EV&phL0LR版本:8.5/9.0
Qe5H+?|#zD6_p&b8|%^0系统版本:winXP/win2k351Testing软件测试网
m2}Aq:w3j4h2n
=======================51Testing软件测试网}9M+B9D:im&^8z
概要:51Testing软件测试网qB-P}R9[6B6q8w|
a. LR测试流程
?db^ HXD
LA0b. 日志分析
Z3F&f+gf8p8H$Z!Fw[0=======================
[Fl2\
l8D0一 从脚本到场景的测试流程
整体流程:51Testing软件测试网%q pB$r
G0F
^
录制脚本并参数化- >配置运行时设置->配置场景->定制施压策略->运行场景51Testing软件测试网ep3_d)^0L/e}.{
1.1录制脚本并参数化-51Testing软件测试网4~$n0FNx/d oG
录制脚本时需要选择合适的协议,以确保LR能录制到需要的信息并能回放。该测试项目采用的是web-service协议,但是由于考虑到安全因素,因此对SOAP消息的传输进行了加密,所以如果直接使用web-service协议模式进行录制,录制时得不到任何有用的信息,因此也无法进行脚本回放和测试。后来采用了无加密版的客户端,才成功实现了录制(但是根据帮助文档和网上资料,LR选择web-service协议,即使对SOAP消息的传输进行了加密,但是如果导入测试项目使用的WSDL文件,应该能够正确识别的,当时我们由于时间关系,发现导入WSDL后仍然失败,所以就放弃了该方式)51Testing软件测试网 g5E
dd"Y'kM
录制成功的脚本(参数化后)51Testing软件测试网Xv.m JI sv1s@
51Testing软件测试网h1tO2S:@'U/BV
s!oY
nM1kj/~R051Testing软件测试网`8m(l3L d%M:?u
如图所示,username,ip以及mac,登录用户不同,参数也不同,因此需要进行参数化,具体步骤参见carol2000的LR学习笔记(1)。需要说明的是,数据参数化完毕后,LR会自动生成一个xxx.dat的文件,以后每次运行脚本或者的时候,LR不会再去查找当初的excel或者数据库,而是直接根据xxx.dat进行参数化。
加入find_xml对登陆成功与否进行判断,检查是否服务器端的返回值信息与登录时的发送信息一致,如果是web页面,也可以采用web_reg_find等函数进行查找
这里集合点(Rendezvous Point)没有额外设置,只是在登录的过程中添加了登录事务,方便后面进行报告分析,另外就是在Run timeSetting中配置了Think time,以延缓对服务器的压力。如果有额外的压力需要,可以添加集合点,并将Think time置零
配置场景,定制施压策略
这里设置的场景为:90个Vuser,逐步增压,定时运行的方式
然后根据测试系统环境修改Controller->Tools->Option的延时设置
最后将该脚本分发给多个负责发生器来运行,避免资源浪费
配置完毕后,Run Scenario等待分析报告。
2U:M{ghy/o`?1V0二报告分析
51Testing软件测试网m0{6AtH
I0w&a@{
Mercury Loadrunner Analysis中最常用的5种资源指标.51Testing软件测试网%?i7c^$y7O.\T
1) Vuser51Testing软件测试网er+~A0E&~5p8QU
2) Transactions51Testing软件测试网.b!S?]d]u.CKN Y
3) Web Resources
&s0X8k
I^04) System Resources51Testing软件测试网m9s&X6g E*d
5) Web Page Diagnostics51Testing软件测试网5wl{*b2T
其中1-4的分析资料上的网上都很多,这里就不多说了。51Testing软件测试网SL)OR;YDh3h*`
51Testing软件测试网0^!hk&s2D!F4jh9E
首先生成的报告Summary如下51Testing软件测试网6Gl$qq4PM_ L(y
x(e2on&i`051Testing软件测试网3pG6uFRI-JG
初看该Summary感觉没有什么大问题,Pass率100%,没有Fail现象,唯一不足的就是事务的响应时间有些长,如logon事务最大响应时间高达115秒。
S)^xgW-_8TV0
4NR2vm'Os0下面开始查看Web Page Diagnostics中的Time to First Buffer Breakdown51Testing软件测试网!l-cZTq%TU&FX
(注:First Buffer Time时间分割为Network Time和Server Time,客户端http请求发送到接收到服务器端的应答包(ACK)为Network Time,从接收到ACK到完成First Buffer接受为Server Time)51Testing软件测试网,`~(VgucSiHx.Z
0aa7B(c-J
d']0
4d%yXG)iW$?-~3p0
(}/@0U$B^3lz6{0由图可见login场景中,Network Time的方差为0.056,这表明网络环境对该项目的压力测试几乎没有任何影响,这也是事实,因为所有测试机、服务器都在一个局域网里。但是,观察Server Time相应时间最小是0,最大为59秒,方差达到了11,而且Server时间比network时间要高得多,显然表明测试的压力瓶颈是服务器。由于服务器无法及时处理用户的登录请求,所以响应时间越拉越长,找到瓶颈了,分析结束。(完)51Testing软件测试网9A&B1QW&_
51Testing软件测试网+^(?5q h6Y%Y
补记:后来经研发部调查发现,服务器处理慢的原因是由于中间件tuxedo造成的,tuxedo的那个版本不支持客户机多线程访问,因此客户机后来改为多进程后,一切运行良好。当然,压力测试的时候Run-Time Settings也需要相应的改成按进程方式运行Vuser咯。
I
S,cK&G*Up0