性能测试-003 Loadrunner第一个脚本和事务的使用方法

首先,来尝试添加第一个脚本:

打开安装好的lr,下面以lr12为例:

1.打开Virtual User Generator

2.点击File-Add-New Script

2.Virtual User Generator会弹出一个对话框:

 

     1:创建一个新的脚本

     2:这部分是选择通信协议。一般我们公司,B/S架构的系统的通信协议是什么呢?

     3:Script name   脚本名称

     4:Location  脚本存放位置

     5:最后点击Create按钮

脚本创建好之后,是这个样子的:

可以看到Actions部分被分成了Vuser_init、Action和Vuser_end

Vuser_init、Vuser_end:只迭代一次

Action:迭代N次

当然,你可能看不懂~迭代是什么意思嘛

简单粗暴的方法:登录操作放在Vuser_init里面

                             业务操作放在Action

                             退出操作放在Vuser_end

上面 就创建好了第一个脚本

1.录制的action 这个是说 录制的脚本放在哪个地方 选action 就是action 选vuser_init 脚本就是在vuser_init 里面

2.录入使用的浏览器:一般使用chrome 。这里有坑,后面补充

3.录制的地址

最后,点击“start recording”即可开始录制

 

刚刚提到了一个东西,叫做“操作”。我们来理解一下:xx操作是不是也就是xx功能呢?我说登录操作和登录功能这两个是相等的,这个可以理解吧?然后我再说登录操作=登录功能=登录业务。这个也可以理解吧?

loadrunner(以下简称lr)思想:

把一个个的业务功能事务Transaction)来“包裹”

如:登录、查询、新增、删除、退出这些叫事务,一个个单独的http请求不叫事务    这里对应lr中的一个设置,后面会提到。

比如说:

我要去测试“武汉军运会系统”的登录并发情况。 那么我的实际动作是:

打开系统地址----输入用户名和密码-----点击登录按钮----登录成功

在做性能需求分析的时候也就是把系统的业务抽离出来,在性能脚本中用事务来描述

测试事务的时间≈业务相应时间

怎么添加一个事务:

1.使用 lr_start_transaction(“事务名称”)

   使用 lr_end_transaction(“事务名称,LR_AUTO”)

2.在录制的过程中使用图中的按钮进行添加

3.使用view-Steps ToolBox 进行添加


简单介绍一个登录事务:见脚本:

Vuser_init:

             vuser_init()
          {
                return 0;
          }

Action:

Action()
{
    web_reg_save_param_ex(
        "ParamName=CorrelationParameter",
        "LB=name=\"org.apache.struts.taglib.html.TOKEN\" value=\"",
        "RB=\"></div",
        SEARCH_FILTERS,
        "Scope=Body",
        "IgnoreRedirections=No",
        "RequestUrl=*/redirect.jsp*",
        LAST);
        
    web_url("redirect.jsp", 
        "URL=http://192.168.3.74:8070/WuHan_JYH/redirect.jsp", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=", 
        "Snapshot=t136.inf", 
        "Mode=HTML", 
        EXTRARES,
        LAST);
    
    lr_start_transaction("登录");     //事务开始函数

    web_submit_data("initIndexNew.do", 
        "Action=http://192.168.3.74:8070/WuHan_JYH/initIndexNew.do?method=ajaxValidaUserid", 
        "Method=POST", 
        "RecContentType=text/html", 
        "Referer=http://192.168.3.74:8070/WuHan_JYH/", 
        "Snapshot=t186.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userid", "Value={user}", ENDITEM, 
        LAST);

    web_submit_data("login.do",
        "Action=http://192.168.3.74:8070/WuHan_JYH/login.do",
        "Method=POST",
        "RecContentType=text/html",
        "Referer=http://192.168.3.74:8070/WuHan_JYH/",
        "Snapshot=t187.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=method", "Value=authenticate", ENDITEM,
        "Name=needValiUser", "Value=false", ENDITEM,
        "Name=password", "Value=MTIzNDU2", ENDITEM,
        "Name=isCookies", "Value=1", ENDITEM,
        "Name=org.apache.struts.taglib.html.TOKEN", "Value={CorrelationParameter}", ENDITEM,
        "Name=userid", "Value={user}", ENDITEM,
        LAST);

    lr_end_transaction("登录",LR_AUTO);     //事务结束函数
    return 0;
}

Vuser_end:

vuser_end()
{
    lr_think_time(3);

    lr_start_transaction("退出");

    web_url("login.do_2", 
        "URL=http://192.168.3.74:8070/WuHan_JYH/login.do?method=logout", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=http://192.168.3.74:8070/WuHan_JYH/redirect.jsp", 
        "Snapshot=t275.inf", 
        "Mode=HTML", 
        LAST);

    lr_end_transaction("退出",LR_AUTO);

    return 0;
}

运行结果:

Action.c(15): Notify: Transaction "登录" started.
Action.c(17): web_submit_data("login.pl") was successful, 795 body bytes, 225 header bytes [MsgId: MMSG-26386]
Action.c(29): web_submit_data("login.pl_2") was successful, 795 body bytes, 225 header bytes [MsgId: MMSG-26386]
Action.c(45): Notify: Transaction "登录" ended with "Pass" status (Duration: 0.5704 Wasted Time: 0.0152).

PS:这一个是贴的 的别处的,无关紧要

但是可以看到 登录事务是以Pass状态结束的 这就表示,事务通过,脚本成功。

需要注意的事项:

1.事务一定是成双成对的出现。如果:

开始一个事务不结束或者是结束一个事务不开始,脚本在回放的过程中会报错

2.事务的结束状态是通过 

来控制

详情:

参数
含义
LR_AUTO 函数自行判断是否通过,在实际中使用最多
LR_STOP 事务一定以暂停的状态结束
LR_FAIL 事务一定以失败的状态结束
LR_PASS 事务一定以通过的状态结束
posted @ 2020-04-07 14:24  SuYunJing  阅读(582)  评论(0)    收藏  举报