事务创建函数
Posted lvchengda
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务创建函数相关的知识,希望对你有一定的参考价值。
事务创建函数
-
int lr_start_transaction(const char * transaction_name)
-
int lr_end_transaction(const char * transaction_name,int status)
-
lr_start_sub_transaction(const char * transaction_son_name,const char * transaction_father_name)
-
lr_end_sub_transaction(const char * transaction_son_name,int status)
transaction_name:事务名称
status:事务结束状态,共有4种状态。
transaction_son_name :子事务名称
transaction_father_name:父事务名称
注意:子事务和父事务很像,但是父事务支持的很多函数在子事务中都无法实现,所以应酌情考虑。
LRPASS (通过)
指事务的状态由系统自动根据默认规则来判断,结果为PASS/FAIL/STOP
LR_AUTO也是根据服务器的返回状态信息来决定事务是以LR_PASS状态通过还是以LR_FAIL状态结束,只要服务器返回页面,那么事务就会认为请求成功发出去了,服务器看懂了请求也返回了内容,自然事务就是PASS状态。
这样由于事务的自动判断,导致虽然操作失败的,但是得到了一个响应时间,并且这个响应时间又没正确反映出做这件事情的真正时间,最终影响测试结果。添加检测函数有时候可以解决这个问题
LR-FAIL (失败)
指事务是以PASS状态通过的,说明改事务正确地完成了,并且记录下对应的时间,这个时间就是指做这件事情所需要消耗的时间。
LR-AUTO (自动)
LR_FAIL是指事务以FAIL状态结束,该事务是一个失败的事务,没有完成事务中脚本应该达到的效果,得到的时间不是正确操作的时间,这个时间在后期的统计中将被独立统计。
LR-STOP (暂停)
LR_STOP将事务以STOP状态停止。
说明:
事务的PASS和FAIL状态会在场景的对应计数器中记录,包括通过的次数和事务的响应时间,方便后期分析改事务的吞吐量以及响应时间的变化情况
其中LRAUTO的默认值是LR-PASS,可以在事务结束前通过Ir-set transaction status进行修改。
如果在Ir-end-transaction中没有指定事务的结束状态是LR-AUTO,而 ,是明确指定为LR-PASS. LR-FAIL, LRSTOP中的一种,则事务将以最后指定的状态来结束。
须要注意的是,当使用Ir-start-transaction开始一个事务后,其后面的脚本中不可以再干始同名称的事务,除非这个事务已经通过Ir-end-transaction结束。
Action2() { lr_start_transaction("login"); //打开登录界面 web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t16.inf", "Mode=HTML", LAST); lr_think_time(4); //注意函数的位置 // jojo1为要查找的文本(实际文本如上图,jojo,仅在登录后才出现,这里为了演示故意找不存在的文本) web_reg_find("Search=Body", "SaveCount=login_times", "Text=jojo1", LAST); //提交登录页面的表单 web_submit_form("login.pl", "Snapshot=t17.inf", ITEMDATA, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=login.x", "Value=0", ENDITEM, "Name=login.y", "Value=0", ENDITEM, LAST); lr_think_time(4); if(atoi(lr_eval_string("{login_times}")) >= 1) {//找到“jojo”,说明登录成功 lr_end_transaction("login", LR_PASS);} else{ //未找到,说明登录失败 lr_end_transaction("login", LR_FAIL);} return 0; }
以上是关于事务创建函数的主要内容,如果未能解决你的问题,请参考以下文章