测试之家淘宝店:主营软件测试定制服务 http://shop71136398.taobao.com/ 软件评测试考试论坛:http://www.testdao.com/forum-113-1.html 2012软件评测师考试群:28388329

loadrunner之Transaction关于LR_AUTO、 LR_PASS、 LR_FAIL、 LR_STOP

上一篇 / 下一篇  2009-02-01 15:16:08 / 个人分类:loadrunner

 

对于集合点、检查点的设置有两种方法,一种是在录制完脚本以后,手工在脚本中添加相关的关键字例如lr_start_transaction等,这种方法对脚本语言的理解能力要求较高。另一种是直接在录制的过程中添加集合点、检查点,这样lr就会自动把集合点、检查点的关键字添加到脚本中。51Testing软件测试网0[qL Zg,@ O8cf

事务:就是用户某一步或者某几步操作的集合。当我们需要通过某一步或是某几步操作从而衡量服务器的性能的时候,这时我们就把这些操作设置成一个事务,当事务开始执行的时候lr就开始计时当事务运行结束计时停止,执行事务的时间会在在最后的结果中显示出来。51Testing软件测试网B!]1ZAd

实例:登录sina网站,把点击“天气”设置成一个事务,衡量服务器处理处理该事务的性能。

oCt WC^2L0

1,点击红色的录制按钮,输入URL开始录制。弹出sina的首页,点击<!--[if !vml]--><!--[endif]-->设置事物的开始位置,这时弹出事务开始对话框要求输入事务的名称,一般来讲我们都会把事务名称命名为容理解的名字,此处我们命名为“天气”51Testing软件测试网L{ k oS#v]@

51Testing软件测试网z6B,YizB.Y&G%z-g

点击OK完成事务的开始点设置。51Testing软件测试网Bm1g5v(@ ],ia

2,在sina页面上点击“天气”的连接,出现天气页面51Testing软件测试网,CNM3{{Nr#ZK

3,点击<!--[if !vml]--><!--[endif]-->设置事务的结束点,这时弹出事务结束对话框

1PTQ}!lN+a%Q8O$B0

4J WPuD6W1C V0

lr根据匹配原则已经自动把事务名字一栏填入“天气”,我们只需要选择事务的状态。状态有三种LR_AUTO、 LR_PASS、 LR_FAIL、 LR_STOP,51Testing软件测试网 c2AxIVZC

LR_AUTO:事物的状态被自动设置,如果事务执行成功,状态设置为PASS,如果执行失败,状态设置为FAIL,如果由于异常中断,状态被设置成STOP.

v&f-Z?!?2na0

LR_PASS:事务如果执行成功,代码的返回状态就是PASS。

5G#vjpd0

LR_FAIL:事务如果执行失败,代码的返回状态就是FAIL。51Testing软件测试网,W6wmE^IMvoy

一般我们选择LR_AUTO。 那么我们会有疑问什么时候我们选择PASS或者是FAIL呢?51Testing软件测试网 ],Lk{H-f@fh3M

Lr的帮助文档中有一条例子,可以很好的帮助我们理解

.}P-b9S;} s^ [B0

lr.start_transaction("GetStocks");
,IV/f D:r cJG0try {

AanT2VT Y o0

String stocks[];51Testing软件测试网*~4cv;v-e/Y
stocks = orStockServer1.getStockList();
([3o z ],RNy5xTh p)T0if (stocks.length == 0)

Mf;ywX@)^q n3M0

throw new Exception("No stocks returned/available");
6a `(BXz+q F0lr.end_transaction("GetStocks", lr.PASS);51Testing软件测试网9BE'MA'G
}

C/[]+@ye0

catch (Exception e1) {51Testing软件测试网b/W&X.Cp P

lr.end_transaction("GetStocks", lr.FAIL);51Testing软件测试网)`8z qQ2[6K|

lr.message(" An exception occurred : " e1.toString() );

d v~KO d+h-Aa0

}

w*_wj*U_0

代码说明:这时一个得到stock list的例子,程序中设置了异常检查来确保getStockList()方法返回非零的长度。

hrw ]%r;MX0

xQ-^0x%L0

同时我也进行了如下的脚本修改

B4??s3l&l v6]S D)UJ0

………………51Testing软件测试网Y#aY,A6@j

lr_start_transaction("天气");

"qR9In cP5p t(o0

lr_think_time( 3 );

@ E L#a4x,]m+X;cs0

web_add_cookie("mysinal=ai_erica; DOMAIN=weather.news.sina.com.cn");51Testing软件测试网yP2j1B PE [f

web_add_cookie("SINAGLOBAL=221.219.31.58.924471172571904604; DOMAIN=weather.news.sina.com.cn");51Testing软件测试网#w O8E+f}pL

………………

!xmc0a5Q/b7n|0

lr_end_transaction("天气", LR_FAIL);51Testing软件测试网(oy0^:_d!GR$Iv~9t

在最后我把该事物的结束状态设置为FAIL,然后运行该脚本,其实该事物的运行是没有任何错误的,完全可以运行成功,只是在最后我把事务的状态手工设置为FAIL。当脚本执行完后,查看Ececution Log看到这样一条log语句:51Testing软件测试网3wJ%t9F/H da mX

Action.c(297): Notify: Transaction "天气" ended with "Fail" status (Duration: 5.1436).51Testing软件测试网3Yzh1k-s`y

那么这样做的意义是什么呢?为什么要设置事务结束状态呢?原因就是在Analysis中生成结果图表的时候我们就能看到这个名为“天气”的事务执行是失败的。如果语句是这样:

BK$z1W6]P,@pa*b0

Action.c(297): Notify: Transaction "天气" ended with "Pass" status (Duration: 5.1436).

!OX wT8R Y5d0

Analysis中生成结果图表的时候我们就能看到这个名为“天气”的事务执行是成功的。

*@"E2S1U S$D,iF0

设置事务结束状态的用途就在这里。试想Lr为什么能自动生成结果图表?无非就是Analysis通过一些定义好的API获取执行脚本过程中的返回值,从而显示出事务执行的正确还是错误,或是显示出响应时间等信息,然后调用GUI使我们很直观的看到测试结果。51Testing软件测试网GFa%@ a_7hmj ^%? |(W


TAG: loadrunner

senseflower的个人空间 引用 删除 senseflower   /   2011-08-02 16:24:49
写的蛮好的
 

评分:0

我来说两句

Open Toolbar