您的位置:首页 > 编程语言 > C语言/C++

loadrunner Lr_类函数之 lr_resume_transaction()

2018-01-02 00:14 309 查看

lr_resume_transaction()

继续在脚本中报告事务数据。

void lr_resume_transaction(const char * transaction_name);

参数说明:
transaction_name:事务的名称。

保留此功能是为了向后兼容。有关报告部分事务持续时间的更一般方法,请参阅lr_start_sub_transaction和lr_set_transaction。
lr_resume_transaction函数恢复由lr_stop_transaction挂起的脚本中的事务数据的报告。调用lr_stop_transaction后,由“get”事务函数返回的统计信息仅反映该调用的数据,直到调用此函数。
但是,数据收集不会中断。调用lr_resume_transaction后,“get”函数自事务开始后返回所有数据。此外,分析测试时的最终结果将反映总值,包括交易停止和恢复之间的期间。

如果未调用lr_resume_transaction,则“get”函数和最终结果仅反映从事务开始到lr_stop_transaction调用的持续时间。因此,可以有条件地使用lr_stop_transaction和lr_resume_transaction来收集关于整个事务或仅开始的信息。要完成此任务,只有满足条件时才调用lr_resume_transaction。

注意:当以这种方式收集数据时,分析中的数据将反映满足lr_resume_transaction的条件的测试,以及不满足条件的测试。

如果您希望排除的部分在事务结束之前结束,则此技术不适用。如果需要区分满足lr_resume_transaction条件的情况和不在分析数据中的情况,则此技术不适用。

有关有条件地记录持续时间的其他方法,请参阅lr_start_sub_transaction和lr_set_transaction。

 

示例:lr_stop_transaction和lr_resume_transaction
在以下示例中,事务被停止并恢复以显示对报告的持续时间的影响。

Action()

{

    int i;

    int iteration = 100;

    char aStr [100];

    lr_start_transaction(“Stop&Start”);

    / *做业务流程的一部分。代表

        这里通过循环来保证一些

        时间流逝。 * /

    for(i = 0; i<iteration; ++ i){

        sprintf(aStr,“%d”,i);

            lr_log_message(“%d”,i);

    }}

    / *输出持续时间到此点(0.343750秒)

        与事务活动。 * /

    lr_output_message(“First time =%f”,

        lr_get_transaction_duration(“Stop&Start”));

    //停止事务

    lr_stop_transaction(“Stop&Start”);

    / *将持续时间输出到此点(0.359375秒)

        与事务停止。 * /

    lr_output_message(“停止后立即=%f”,

        lr_get_transaction_duration(“Stop&Start”));

    //确保一些时间过去

    for(i = 0; i<iteration; ++ i){

        sprintf(aStr,“%d”,i);

        lr_log_message(“%d”,i);

    }}

    / *将持续时间输出到此点(0.359375秒)

        交易仍然停止,但是

        更多的时间。注意时间是一样的。

        在事务处理时在循环中花费的时间

        停止不报告。 * /

    lr_output_message(“停止和循环=%f”后,

        lr_get_transaction_duration(“Stop&Start”));

    //恢复事务

    lr_resume_transaction(“Stop&Start”);

    / *请注意,随着事务恢复,

        自从开始以来所有的时间都过去了

        报告(0.781250秒),包括花费的时间

        在事务被停止的循环中。 * /

    lr_output_message(“恢复时间=%f”后,

        lr_get_transaction_duration(“Stop&Start”));

    //将时间添加到持续时间

    for(i = 0; i<iteration; ++ i){

        sprintf(aStr,“%d”,i);

        lr_log_message(“%d”,i);

        }}

    / *报告的总时间(1.140625秒)* /

    lr_output_message(“resume resume and loop =%f”后,

        lr_get_transaction_duration(“Stop&Start”));

    //结束事务

    lr_end_transaction(“Stop&Start”,LR_AUTO);

    return 0;

}}

输出:

Action.c(11):通知:事务停止和启动开始。

Action.c(23):第一次= 0.343750

Action.c(27):通知:事务停止和开始停止。

Action.c(31):停止后立即= 0.359375

Action.c(45):停止和循环后= 0.359375

Action.c(49):通知:事务停止和启动恢复。

Action.c(55):恢复时间= 0.781250

Action.c(65):resume和循环后= 1.140625

Action.c(70):通知:事务停止和开始以通过状态结束(持续时间:1.1406)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息