天天看点

LR检查点

在录制编写脚本后,通常就会进行回放,如果回放通过没有出现错误,就认为脚本是正确的。究竟VeGen是怎么区分脚本是否回放正确呢?一般情况下,脚本回放错误都是应为404错误,也就是页面无法找到,而只要页面返回了,VuGen都不会提示任何错误。例如,我们的飞机购票系统这个例子,因为一开始没做关联而登陆失败,但是脚本还是成功运行了。

          VuGen判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为200 OK,那么VuGen就认为脚本正确地运行了,并且是运行通过的。在绝大多数系统出现错误时会返回错误页面吗?不会,一般系统都会返回一个消息提示框,来提示用户感受。例如“服务器正忙,请稍后”。其实这个时候,网站已经无法正确响应用户请求了,但是VuGen脚本无法识别,会错误地认为网站还能正确访问,导致分析错误。所以这是需要一种检查点函数帮助验证请求发送出去后,服务器的返回是不是期望的内容,如果不是,那么就说明服务器无法提供正常的服务了。

注意:脚本开发完后,验证该脚本是否是一个成功的脚本,可以根据以下步骤去验证:

             1、检查点是否通过;

             2、到系统的界面,或数据库中检查,是否按要求新增或修改了对应的数据。

通常情况下,检查点函数会与事务一起使用。如以下例子:

/ /插入检查点函数,检查服务器是否返回"Welcome"

web_reg_find("Text=Welcome",

"Fail=NotFound",

"SaveCount=Welcome_Count",

LAST);

//插入登陆事务

Lr_start_transaction(“Trn_Login”):

// 登陆系统

web_submit_form("login.pl",

"Snapshot=t2.inf",

ITEMDATA,

"Name=username", "Value=jojo", ENDITEM,

"Name=password", "Value=bean", ENDITEM,

"Name=login.x", "Value=35", ENDITEM,

"Name=login.y", "Value=14", ENDITEM,

LAST);

// 判断登陆事务是否成功

if (atoi(lr_eval_string("{Welcome_Count}")) > 0){        //判断如果Welcome字符串出现次数大于0

lr_end_transaction(“Trn_Login”,LR_PASS);}       //登陆事务PASS

else{                                                                    //如果出现次数小于等于

lr_end_transaction(“Trn_Login”,LR_FAIL);}        //登陆事务FAIL

// 判断注册事务是否成功

if(atoi(lr_eval_string("{check_num}")) > 0)

{

lr_end_transaction("点击立即注册", LR_PASS);

}

else

{

lr_end_transaction("点击立即注册", LR_FAIL);

}

lr_think_time(4);

几个注意点:

(1)Web_reg_find是注册类型函数(也有说是缓存函数),它本身并不执行,不能通过它的返回值来作为事务的判断条件(因为web_reg_find()的返回值0和1表示web_reg_find()是否注册成功,并不代表查找的内容是否存在,也就是说无论查找的文本内容是否存在,都返回0。它是从返回的缓冲区扫描而不是在接收的页面中查找。这是比web_find更高效的一个函数;

(2)由于是在缓冲区查找,所以要放在被查找函数的前面。()

(3)web_reg_find中会统计注册的次数,所以SaveCount这个变量会存着注册次数的统计。

(4)出现等号、双引号时,记得要加上反斜杠

LR检查点