Load Runner - 响应时间VS事务时间

响应时间

响应时间是通过记录用户请求的开始时间和服务器返回内容到用户的时间差值来计算用户操作响应时间的。

  • 网络时间: N1…N6
  • Web服务器时间: WT
  • App服务器时间: AT
  • DB服务器时间: DT
    在现实中,Web Server,App Server,Database Server一般都放在一个高速的局域网中,所以它们之间的网络时间s可以忽略。

事务时间

事务的官方定义:事务是指用户在客户端做一种或多种业务所需要的操作集(actions),通过事务开始和结束函数可以标记完成该业务所需要的操作内容(脚本section)。
对于一个事务时间来说,一般由4个部分组成:
[Tr = RT + Tt + Wasted Time]

  • 响应时间

  • Think Time
    Think Time是为了更加真实的模拟用户场景。

    1
    2
    3
    4
    5
    6
    7
    Action()
    {
    lr_start_transaction("自身时间");
    lr_think_time(3);
    lr_end_transaction("自身时间", LR_AUTO);
    return 0;
    }

    要在Run-time Settings中设置Think Time,启用Replay Think Time。Replay Log:

    1
    2
    3
    4
    5
    6
    7
    Starting iteration 1.
    Starting action Action.
    Action.c(3): Notify: Transaction "自身时间" started.
    Action.c(4): lr_think_time: 3.00 seconds.
    Action.c(5): Notify: Transaction "自身时间" ended with "Pass" status (Duration: 3.0053 Think Time: 2.9992).
    Ending action Action.
    Ending iteration 1.
  • 事务自身时间

    1
    2
    3
    4
    5
    6
    Action()
    {
    lr_start_transaction("自身时间");
    lr_end_transaction("自身时间", LR_AUTO);
    return 0;
    }

    Replay Log:

    1
    2
    3
    4
    5
    6
    Starting iteration 1.
    Starting action Action.
    Action.c(3): Notify: Transaction "自身时间" started.
    Action.c(5): Notify: Transaction "自身时间" ended with "Pass" status (Duration: 0.0016).
    Ending action Action.
    Ending iteration 1.

    事务中哪怕没有操作,也是需要时间的,不过这个时间一般都非常少,所以可以忽略。

  • Wasted Time
    在默认情况下,LoadRunner会将自身脚本运行浪费的时间自动记录Wasted Time,例如执行关联,检查点等函数的时间。

    1
    2
    3
    4
    5
    6
    7
     Action()
    {
    lr_start_transaction("waste time");
    web_url("baidu", "URL=http://baidu.com/", LAST);
    lr_end_transaction("waste time", LR_AUTO);
    return 0;
    }

    Replay Log:

    1
    2
    3
    4
    5
    6
    7
    Action.c(3): Notify: Transaction "waste time" started.
    Action.c(4): Detected non-resource "http://www.baidu.com/" in "http://baidu.com/" [MsgId: MMSG-26574]
    Action.c(4): Found resource "http://www.baidu.com/img/bd_logo1.png" in HTML "http://www.baidu.com/" [MsgId: MMSG-26659]
    Action.c(4): Found resource "http://www.baidu.com/img/baidu_jgylogo3.gif" in HTML "http://www.baidu.com/" [MsgId: MMSG-26659]
    Action.c(4): 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(4): web_url("baidu") was successful, 69095 body bytes, 2403 header bytes, 13 chunking overhead bytes [MsgId: MMSG-26385]
    Action.c(5): Notify: Transaction "waste time" ended with "Pass" status (Duration: 9.6275 Wasted Time: 0.3107).

    某些时候外部接口进行处理所消耗的时间也会影响事务的时间,这个时间LoadRunner无法处理。比如对用户的加密/解密。就需要计算这些时间开销,并且将这个开销的时间记入Wasted Time中:

    1
    2
    3
    4
    //use timers to collect wasted time, and the use lr_wasted_time to remove that wasted time from the transactions. 
    timer = lr_start_timer();

    wasteTime = lr_end_timer(timer);
    lr_wasted_time(wasteTime);

    注:在做删除的时候要看好了,别忘了加上LoadRunner自身的时间。

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!