loadrunner Lr_类函数之 lr_resume_transaction()

lr_resume_transaction()

继续在脚本中报告事务数据。
void lr_resume_transaction(const char * transaction_name);

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

保留此功能是为了向后兼容。有关报告部分事务持续时间的更一般方法,请参阅lr_start_sub_transactionlr_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_transactionlr_resume_transaction
在以下示例中,事务被停止并恢复以显示对报告的持续时间的影响。

Action
()
{
    int i;
    int iteration = 100;
    char aStr [100];
    lr_start_transaction
(“StopStart”);
    / *
做业务流程的一部分。代表
        
这里通过循环来保证一些
        
时间流逝。 * /
    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
(“StopStart”));
    //
停止事务
    lr_stop_transaction
(“StopStart”);
    / *
将持续时间输出到此点(0.359375秒)
        
与事务停止。 * /
    lr_output_message
(“停止后立即=f”,
        lr_get_transaction_duration
(“StopStart”));
    //
确保一些时间过去
    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
(“StopStart”));
    //
恢复事务
    lr_resume_transaction
(“StopStart”);
    / *
请注意,随着事务恢复,
        
自从开始以来所有的时间都过去了
        
报告(0.781250秒),包括花费的时间
        
在事务被停止的循环中。 * /
    lr_output_message
(“恢复时间=f”后,
        lr_get_transaction_duration
(“StopStart”));
    //
将时间添加到持续时间
    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
(“StopStart”));
    //
结束事务
    lr_end_transaction
(“StopStart”,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)。

相关文章
相关标签/搜索