结束事务,也就是lr_end_transaction()。
事务状态可分为LR_PASS、LR_FAIL、LR_STOP、LR_AUTO等四种状态,默认事务状态是LR_AUTO。事务状态如果按照Loadrunner默认的LR_AUTO状态,则返回的状态就不受测试人员控制,并且主要是对服务器返回数据的准确性脱离了人为判断,几乎脱离了性能测试的真实性。
对结束事务的判断最常用的方法就是获取服务器返回的唯一正确标示,比如000000、00000000、交易成功等,方法有检查点和关联,对返回数据唯一正确数据字段是否存在来判断。
以下是比较常用的四种判断结束事务方法:
第一种:根据检查点判断
web_reg_find("Text=O.K.","SaveCount=OK_count",LAST); //检查点,SaveCount是查找计数变量名称
web_custom_request("Server.aspx_22",
.........,
LAST);
//根据检查点参数是否获取到的数量来判断,如果获取到检查点,则数量大于0
if ( atoi(lr_eval_string("{OK_count}") ) > 0 ){
lr_end_transaction(TransName, LR_PASS);
}else{
lr_end_transaction(TransName, LR_FAIL);
}
第二种:截取成功标识来判断
<span style="font-size:14px;">lrs_receive("socket0", "buf1", LrsLastArg); //接收buf1
</span><pre name="code" class="plain" style="font-size:14px;">
lrs_get_last_received_buffer ("socket0",&ActualBuffer,&NumberOfBytes);
//获取socket0最后接收的buf的内容和大小
//获取指定位置的字段与成功标志进行比较if(strncmp(ActualBuffer+63,"000000",6)==0){lr_end_transaction("TOPS_02341034_客户号查询", LR_PASS);}else{lr_end_transaction("TOPS_02341034_客户号查询",LR_FAIL);lr_error_message("TOPS_02341034_客户号查询交易失败,返回错误信息为:%s",ActualBuffer+63);}
第三种:根据关联参数来判断成功标识
web_reg_save_param("C_ErrMsg","LB=<ErrorMessage>","RB=</ErrorMessage>","NotFound=WARNING","ORD=ALL",LAST);//若出错获取出错信息
web_custom_request("Server.aspx_22",
.........,
LAST);
//获取关联参数并与唯一正确值进行比较
if(strcmp(lr_eval_string("{C_ErrMsg}"),"000000") == 0){
<span style="white-space:pre"> </span>lr_end_transaction("TOPS_02341034_客户号查询", LR_PASS);
}else{
lr_end_transaction("TOPS_02341034_客户号查询",LR_FAIL);
lr_error_message("TOPS_02341034_客户号查询交易失败,返回错误信息为:%s",ActualBuffer+63);
}
第四种:直接在返回结果中查找成功标识
web_reg_save_param("response","LB=","RB=","Search=Body",LAST);
web_custom_request("MBank_query",
.......,
LAST);
lr_convert_string_encoding(lr_eval_string("{response}"),LR_ENC_UTF8 , LR_ENC_SYSTEM_LOCALE, "response2");
//判断服务器返回的所有数据中是否存在定期转活期成功
if( strstr(lr_eval_string("{response2}"),"定期转活期成功") ){
lr_end_transaction("手机银行_MA1302_定活互转-定转活", LR_PASS);
}else{
lr_end_transaction("手机银行_MA1302_定活互转-定转活", LR_FAIL);
lr_error_message("手机银行_MA1302_定活互转-定转活 返回结果【%s】",lr_eval_string("{response2}"));
}