• LR集合点与事务


    举个例子:

      如果现在测试登录的负载情况,我们需要先在登录步骤之前插入一个集合,把登陆的整个操作(访问网页,输入用户名和密码,提交)放到一个事务里面,此时模拟500人登录。这个时候500个Vuser会在集合点处集合,然后并发对系统施压,怎样施压呢,就是进入事务,对定义的事务进行操作。等到完成压力测试后,后生成报告,报告中会告诉我们,每秒处理了多少事务(每秒事务数、tps),每个事务处理需要多长时间(事务响应时间)等等。由此可见,集合点和事务是很重要的。

    集合点:

    lr_rendezvous( const char *rendezvous_name);

    举例说明:

      lr_rendezvous("addRendzvous");

    用法:

    (1)在脚本中右键(插入——集合)

    (2)插入——集合

    (3)录制过程中,点击“插入集合点”

     

    事务:

    开始事务:lr_start_transaction( const char *transaction_name );

    结束事务:lr_end_transaction( const char *transaction_name, int status ) ;

    举例说明:

      lr_start_transaction("Login");

        ……一系列操作

      lr_end_transaction("Login", LR_AUTO);

    用法:

    (1)在脚本中右键(插入——开始事务——结束事务)

    (2)插入——开始事务——结束事务

    (3)录制过程中,点击“开始事务”——“结束事务”

    完整实例:

     1 Action()
     2 
     3  {
     4 
     5    lr_rendezvous("addRendzvous");
     6 
     7    lr_start_transaction("Login");
     8 
     9  
    10 
    11    web_reg_save_param("WCSParam3",
    12 
    13       "LB/IC=userSession value=",
    14 
    15       "RB/IC=>",
    16 
    17       "Ord=1",
    18 
    19       "Search=Body",
    20 
    21       "RelFrameId=1.2.1",
    22 
    23       LAST);
    24 
    25  
    26 
    27    web_url("WebTours",
    28 
    29       "URL=http://127.0.0.1:1080/WebTours/",
    30 
    31       "TargetFrame=",
    32 
    33       "Resource=0",
    34 
    35       "RecContentType=text/html",
    36 
    37       "Referer=",
    38 
    39       "Snapshot=t2.inf",
    40 
    41       "Mode=HTML",
    42 
    43       LAST);
    44 
    45  
    46 
    47    web_reg_find("Text=zyt",
    48 
    49       LAST);
    50 
    51  
    52 
    53   web_submit_data("login.pl",
    54 
    55       "Action=http://127.0.0.1:1080/WebTours/login.pl",
    56 
    57       "Method=POST",
    58 
    59       "TargetFrame=body",
    60 
    61       "RecContentType=text/html",
    62 
    63       "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
    64 
    65       "Snapshot=t3.inf",
    66 
    67       "Mode=HTML",
    68 
    69       ITEMDATA,
    70 
    71       "Name=userSession", "Value={WCSParam3}", ENDITEM,
    72 
    73       "Name=username", "Value=zyt", ENDITEM,
    74 
    75       "Name=password", "Value=123456", ENDITEM,
    76 
    77       "Name=JSFormSubmit", "Value=off", ENDITEM,
    78 
    79       "Name=login.x", "Value=36", ENDITEM,
    80 
    81       "Name=login.y", "Value=7", ENDITEM,
    82 
    83       LAST);
    84 
    85   lr_end_transaction("Login", LR_AUTO);
    86 
    87  
    88 
    89   return 0;
    90 
    91 }

    注意事项:

    集合点必须在事务之前,起始事务名称必须一致。

  • 相关阅读:
    知识经济中的贫富差距固定化
    分布式锁
    Activiti
    一种避免在scrollViewDidEndDragging中改变contentInset时闪动的解决方案
    一个封装好的iOS无限滚动组件HXInfiniteScrollView
    使用ReactiveCocoa限制UITextField只能输入正确的金额
    关于ReactiveCocoa的RACObserve的一些研究
    iOS使用masonry快速将一组view在superview中等宽排列
    使用AutoLayOut为UIScrollView添加约束图解及要点
    使用AutoLayOut技术告别UITableViewCell高度计算
  • 原文地址:https://www.cnblogs.com/zhangyating/p/7729432.html
Copyright © 2020-2023  润新知