对于集合点、检查点的设置有两种方法,一种是在录制完脚本以后,手工在脚本中添加相关的关键字例如lr_start_transaction等,这种方法对脚本语言的理解能力要求较高。另一种是直接在录制的过程中添加集合点、检查点,这样lr就会自动把集合点、检查点的关键字添加到脚本中。51Testing软件测试网"B:t#}?!`zp
事务:就是用户某一步或者某几步操作的集合。当我们需要通过某一步或是某几步操作从而衡量服务器的性能的时候,这时我们就把这些操作设置成一个事务,当事务开始执行的时候lr就开始计时当事务运行结束计时停止,执行事务的时间会在在最后的结果中显示出来。51Testing软件测试网(r_$h:X0mC-t
实例:登录sina网站,把点击“天气”设置成一个事务,衡量服务器处理处理该事务的性能。51Testing软件测试网X]%^7TVV
1,点击红色的录制按钮,输入URL开始录制。弹出sina的首页,点击<!--[if !vml]--><!--[endif]-->设置事物的开始位置,这时弹出事务开始对话框要求输入事务的名称,一般来讲我们都会把事务名称命名为容理解的名字,此处我们命名为“天气”
&g,Jcu6i0 t#HnZA;eH|0点击OK完成事务的开始点设置。51Testing软件测试网"AKblIg1PRJo5i
2,在sina页面上点击“天气”的连接,出现天气页面
g T6~0[,e!Ly03,点击<!--[if !vml]--><!--[endif]-->设置事务的结束点,这时弹出事务结束对话框
m!B)nO1o3z051Testing软件测试网 c5Rdt,tGRuv
lr根据匹配原则已经自动把事务名字一栏填入“天气”,我们只需要选择事务的状态。状态有三种LR_AUTO、 LR_PASS、 LR_FAIL、 LR_STOP,
/m!bL%s/j4L2[0LR_AUTO:事物的状态被自动设置,如果事务执行成功,状态设置为PASS,如果执行失败,状态设置为FAIL,如果由于异常中断,状态被设置成STOP.
T\3o
b!L:sG D fA6i0LR_PASS:事务如果执行成功,代码的返回状态就是PASS。
Qw
m2xq~(B!g
r.K,j }nQ0LR_FAIL:事务如果执行失败,代码的返回状态就是FAIL。51Testing软件测试网0h
f3L"wC6k f
一般我们选择LR_AUTO。 那么我们会有疑问什么时候我们选择PASS或者是FAIL呢?51Testing软件测试网9OtGaWT+@J
Lr的帮助文档中有一条例子,可以很好的帮助我们理解
Fe)P-j2V
Z])ym6L0lr.start_transaction("GetStocks");51Testing软件测试网Qf-~$S8WX
try {51Testing软件测试网mN6]]
pT)X}3`}4z
String stocks[];51Testing软件测试网Jk"GQ#pA
stocks = orStockServer1.getStockList();
au8x@;UD{!t0if (stocks.length == 0)51Testing软件测试网 hD#w
~;mo$VoY
throw new Exception("No stocks returned/available");51Testing软件测试网 T
ZA+}-v:Xdo
{U
lr.end_transaction("GetStocks", lr.PASS);51Testing软件测试网3{$`X+}*cS P+\
}
?0M5M1Mub5t;G0catch (Exception e1) {51Testing软件测试网_F ~$?Q/v
lr.end_transaction("GetStocks", lr.FAIL);
U|h}Z L;\P'b0lr.message(" An exception occurred : " e1.toString() );51Testing软件测试网,l
] L5R;TW;v&hw9L
}
2b4W9qjxXzU0代码说明:这时一个得到stock list的例子,程序中设置了异常检查来确保getStockList()方法返回非零的长度。51Testing软件测试网%V ?3C)I$h S
51Testing软件测试网B)H,r{2ai_9l%{;K
同时我也进行了如下的脚本修改51Testing软件测试网!]T+W9xy;N
………………51Testing软件测试网#Xub3e;~F
lr_start_transaction("天气");51Testing软件测试网e+K1b|8y[4I!V!zj
lr_think_time( 3 );51Testing软件测试网6X"f/O Cb)s?!xqM
web_add_cookie("mysinal=ai_erica; DOMAIN=weather.news.sina.com.cn");51Testing软件测试网i4sc6]f]E-T$n4G
web_add_cookie("SINAGLOBAL=221.219.31.58.924471172571904604; DOMAIN=weather.news.sina.com.cn");
b7B x Wa4pUJ5`0………………51Testing软件测试网%oiS!dOm4@
lr_end_transaction("天气", LR_FAIL);51Testing软件测试网2q,SRE/I%k*WJv
在最后我把该事物的结束状态设置为FAIL,然后运行该脚本,其实该事物的运行是没有任何错误的,完全可以运行成功,只是在最后我把事务的状态手工设置为FAIL。当脚本执行完后,查看Ececution Log看到这样一条log语句:51Testing软件测试网{
W]es2HJ6d
Action.c(297): Notify: Transaction "天气" ended with "Fail" status (Duration: 5.1436).
w ff;B"m&Zy0那么这样做的意义是什么呢?为什么要设置事务结束状态呢?原因就是在Analysis中生成结果图表的时候我们就能看到这个名为“天气”的事务执行是失败的。如果语句是这样:51Testing软件测试网aqukP
^ KF
Action.c(297): Notify: Transaction "天气" ended with "Pass" status (Duration: 5.1436).51Testing软件测试网/yd4rsUaQo2o
Analysis中生成结果图表的时候我们就能看到这个名为“天气”的事务执行是成功的。51Testing软件测试网NZ4ORSPf
设置事务结束状态的用途就在这里。试想Lr为什么能自动生成结果图表?无非就是Analysis通过一些定义好的API获取执行脚本过程中的返回值,从而显示出事务执行的正确还是错误,或是显示出响应时间等信息,然后调用GUI使我们很直观的看到测试结果。
~P2J+l!M {3EHB0