事务控制函数
- double lr_stop_transaction(const char * transaction_name)
将一个事务暂停,该函数后的操作都不会计入事务时间
- void lr_resume_transaction(const char * transaction_name)
将暂停的事务恢复
参数transaction_name是事务名称,通过它来控制对应事务的暂停与继续启动。
须要注意的是,调用lr_stop_transaction后,对应事务数据的采集并没有中断,仍然会采集从事务开始执行时的全部数据。
不过,在最后的分析结束中, Analysis的分析报告中是否包含事务暂停后的事务数据,则取决于是否在后面代码中调用了lr_resume_transaction函数:如果调用了lr_resume_transaction,则统计分析结果中将会包含事务暂停与继续这个期间的全部数据,对整个事务执行过程进行统计分析;否则,只对事务开始到事务暂停这段时间内的数据进行统计。
因此, lr_stop_transaction与lr_resume_transaction主要用于一定条件下的事务信息采集:或符合条件时采集全部事务信息,或仅仅采集从事务开始到暂停这段时间的事务信息。
lr_stop_transaction_instance与lr_resume_transaction_instance用法类似,不再赘述。
Action2() { double duration = 0; double wastedtime = 0; 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); //事务达到该函数运行位置时持续的时间 duration = lr_get_transaction_duration("login"); lr_output_message("duration %f", duration); //事务达到该函数运行位置时浪费的时间 wastedtime = lr_get_transaction_wasted_time("login"); lr_output_message("wastedtime %f", wastedtime); //为事务添加一个浪费时间 5s//该浪费时间无法直接通过lr_get_transaction_wasted_time获得 lr_wasted_time(5); wastedtime = lr_get_transaction_wasted_time("login"); lr_output_message("wastedtime %f", wastedtime); //暂停事务 lr_stop_transaction("login"); //注意函数的位置 web_reg_find("Search=Body", "SaveCount=login_times", "Text=jojo", 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); //事务达到该函数运行位置时浪费的时间 wastedtime = lr_get_transaction_wasted_time("login"); lr_output_message("wastedtime %f", wastedtime); if(atoi(lr_eval_string("{login_times}")) >= 1) lr_end_transaction("login", LR_PASS); else lr_end_transaction("login", LR_FAIL); return 0; }