事务控制函数

事务控制函数

  • 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;

}
原文地址:https://www.cnblogs.com/lvchengda/p/12624888.html