初识loadrunner wasted time

本文详细解析了LoadRunner中几个与时间相关的函数,包括如何获取事务运行时间、浪费时间以及手动记录额外时间,并通过实际脚本示例验证了这些函数的使用。通过分析运行日志,证实了理解函数作用的重要性。
关于时间的几个函数:
lr_get_transaction_duration得到transaction运行到当前位置的duration,包含事务的响应时间和wasted time,单位是s;

着重理解下wasted time:
wasted time包括事务中函数自身执行所消耗的时间,这个时间是loadrunner自动会计的,计在lr_get_transaction_wasted_time里面,还有比如C语言等外部接口进行处理的时间这个loadrunner不会自动计,但是我们可以通过lr_start_timer(单位是s)、lr_end_timer(单位是s)、lr_wasted_time(这个函数的形参中wasted time的单位是毫秒,所以通过timer计的时间需要乘上1000)等函数手动计入lr_get_transaction_wasted_time里面

下面来验证下:
Action()
{
    int i, baseIter = 200; 
    char dude[200]; 
    double wasteTime; 
    merc_timer_handle_t timer; 

    lr_start_transaction("baidu");

    web_add_cookie("BAIDUID=63CCB143FE1734437DBED1D457D18E3E:FG=1; DOMAIN=www.baidu.com");

    web_add_cookie("BAIDUID=63CCB143FE1734437DBED1D457D18E3E:FG=1; DOMAIN=passport.baidu.com");

    web_add_cookie("BAIDUID=63CCB143FE1734437DBED1D457D18E3E:FG=1; DOMAIN=suggestion.baidu.com");

web_url("www.baidu.com", 
"URL=http://www.baidu.com/", 
"Resource=0", 
"RecContentType=text/html", 
"Referer=", 
"Snapshot=t1.inf", 
"Mode=HTML", 
EXTRARES, 
"Url=http://s1.bdstatic.com/r/www/cache/static/global/img/icons_37d13939.png", ENDITEM, 
"Url=http://s1.bdstatic.com/r/www/cache/static/sug/js/bdsug_31b8d653.js", ENDITEM, 
"Url=/favicon.ico", "Referer=", ENDITEM, 
"Url=http://passport.baidu.com/passApi/js/uni_login_wrapper.js?cdnversion=1400118095796&_=1400118095656", ENDITEM, 
"Url=http://suggestion.baidu.com/su?
wd=&zxmode=1&json=1&p=3&sid=4948_6429_1450_5223_6505_4760_6017_6462_6428_6456_6454&cb=jQuery110208749060739643981_1400118095657&_=1400118095658", ENDITEM, LAST);

//在脚本中间位置,记录此时事务自身函数消耗的时间,这个是loadrunner自动计的
    lr_output_message("User created waste time to this point calculated by loadrunner = %lf", lr_get_transaction_wasted_time("baidu")); 

//使用一个测试语句手动记录消耗的时间
    timer = lr_start_timer(); 

    for (i=0; i< (5 * baseIter); ++i) 
            sprintf(dude, "This is the way we waste time in a script = %d", i); 

    wasteTime = lr_end_timer(timer);

    lr_output_message("User created waste time calculated by timer = %lf", wasteTime); 

    wasteTime *= 1000; 

//通过lr_wasted_time函数将wasteTime标记为wasted time
    lr_wasted_time(wasteTime); 

//通过lr_get_transaction_wasted_time函数会汇总手工记录的消耗时间和loadrunner自动记录的消耗时间
    lr_output_message("Total User created waste time = %lf", lr_get_transaction_wasted_time("baidu")); 

    lr_output_message("Transaction duration = %lf", lr_get_transaction_duration("baidu")); 

    lr_end_transaction("baidu", LR_AUTO);

    return 0;
}

运行日志如下:
Virtual User Script started at : 2014-05-15 09:58:45
Starting action vuser_init.
Web Turbo Replay of LoadRunner 11.0.0 for WINXP; build 8859 (Aug 18 2010 20:14:31)   [MsgId: MMSG-27143]
Run Mode: HTML   [MsgId: MMSG-26000]
Run-Time Settings file: "F:\LR\baidu_open\\default.cfg"   [MsgId: MMSG-27141]
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(12): Notify: Transaction "baidu" started.
Action.c(14): web_add_cookie was successful   [MsgId: MMSG-26392]
Action.c(16): web_add_cookie was successful   [MsgId: MMSG-26392]
Action.c(18): web_add_cookie was successful   [MsgId: MMSG-26392]
Action.c(20): Downloading resource "http://s1.bdstatic.com/r/www/cache/static/global/img/icons_37d13939.png" (specified by argument number 9)   [MsgId: MMSG-26577]
Action.c(20): Downloading resource "http://s1.bdstatic.com/r/www/cache/static/sug/js/bdsug_31b8d653.js" (specified by argument number 11)  
[MsgId: MMSG-26577]
Action.c(20): Downloading resource "http://www.baidu.com/favicon.ico" (specified by argument number 13)   [MsgId: MMSG-26577]
Action.c(20): Downloading resource "http://passport.baidu.com/passApi/js/uni_login_wrapper.js?cdnversion=1400118095796&_=1400118095656" (specified by argument number 16)   [MsgId: MMSG-26577]
Action.c(20): Downloading resource "http://suggestion.baidu.com/su?wd=&zxmode=1&json=1&p=3&sid=4948_6429_1450_5223_6505_4760_6017_6462_6428_6456_6454&cb=jQuery110208749060739643981_1400118095657&_=1400118095658" (specified by argument number 18)   [MsgId: MMSG-26577]
Action.c(20): Found resource "http://www.baidu.com/img/baidu_jgylogo3.gif" in HTML "http://www.baidu.com/"   [MsgId: MMSG-26659]
Action.c(20): Found resource "http://www.baidu.com/img/bdlogo.gif" in HTML "http://www.baidu.com/"   [MsgId: MMSG-26659]
Action.c(20): Found resource "http://www.baidu.com/cache/global/img/gs-2.0.gif" in HTML "http://www.baidu.com/"   [MsgId: MMSG-26659]
Action.c(20): Found resource "http://s1.bdstatic.com/r/www/cache/static/jquery/jquery-1.10.2.min_f2fb5194.js" in HTML "http://www.baidu.com/"   [MsgId: MMSG-26659]
Action.c(20): Found resource "http://s1.bdstatic.com/r/www/cache/static/global/js/all_async_f712ea4c.js" in HTML "http://www.baidu.com/"   [MsgId: MMSG-26659]
Action.c(20): Found resource "http://s1.bdstatic.com/r/www/cache/static/global/js/imsg_45172630.js" in HTML "http://www.baidu.com/"   [MsgId: MMSG-26659]
Action.c(20): web_url("www.baidu.com") was successful, 106231 body bytes, 4084 header bytes, 59 chunking overhead bytes   [MsgId: MMSG-26385]
Action.c(35): User created waste time to this point calculated by loadrunner = 0.758138
Action.c(45): User created waste time calculated by timer = 7.646098
Action.c(52): Total User created waste time = 8.404138
Action.c(53): Transaction duration = 8.745259
Action.c(55): Notify: Transaction "baidu" ended with "Pass" status (Duration: 8.7524 Wasted Time: 8.4041).
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.
运行的结果也证明了我之前的理解

注:在最开始的时候,使用oracle两层协议录制脚本,一直不能演示出自身函数消耗的时间,lr_get_transaction_wasted_time的值都为0,后来使用http协议可以演示出来

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26524307/viewspace-1162259/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26524307/viewspace-1162259/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值