淘先锋技术网

首页 1 2 3 4 5 6 7

LoadRunner学习笔记5-LoadRunner VuGen脚本增强之逻辑判断增强与事务

这篇博客主要说一下用于LoadRunner脚本逻辑判断增强常用的几个函数和事务的封装。

一、逻辑判断增强

1)先介绍以下几个函数:

1.atoi函数

函数用法:

2.lr_eval_string函数

函数用法:

lr_eval_string("{当前想要获取的参数名}");//获取指定的当前参数的值

3.strcmp函数

函数用法:

4.strcpy函数

函数用法:

2)增强脚本思路与代码

针对之前录制的登录脚本,脚本编写的思路是:登陆成功后检查用户名并记录次数,使用lr_eval_string函数获取用户名出现的次数,通过atoi函数进行转换之后与0比较,只要不等于0,就认为成功。关键代码如下:

    //文本检查点,检查用户名
    web_reg_find("Text=besttest","SaveCount=besttest_count",LAST);
    //提交登录请求
    web_submit_data("login.pl", 
        "Action=http://127.0.0.1:1080/WebTours/login.pl", 
        "Method=POST", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
        "Snapshot=t5.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userSession", "Value={userSession}", ENDITEM, 
        "Name=username", "Value=besttest", ENDITEM, 
        "Name=password", "Value=besttest", ENDITEM, 
        "Name=JSFormSubmit", "Value=on", ENDITEM, 
        "Name=login.x", "Value=33", ENDITEM, 
        "Name=login.y", "Value=9", ENDITEM, 
        LAST);
    //增加判断,如果检查到用户名出现的次数大于0,则登录成功,否则失败
    if(atoi(lr_eval_string("{besttest_count}"))!=)
        lr_output_message("登录成功了");
    else
        lr_output_message("登录失败了");

二、事务实战

事务可以理解为一个或多个操作的集合。事物的插入可以在录制过程中进行,也可以在录制完成后的脚本中自行插入。不是所有操作都需要封装成事务,只对关心的操作进行事务封装即可。

插入事务有两种方法:

1)手工写代码。提示:不要忘了事务有开始就需要有结束配对出现,代码编写方法如下:

lr_start_transaction(“事务名称”);
lr_end_transaction("事务名称",LR_AUTO);

2)利用插入功能,如下图所示。注意Start Transaction 和 End Transaction中事务的名称要一致。

这里写图片描述

提示:为了提高事务统计时的准确性,一般情况下,事务要尽量精简,里面不要包含检查点、关联、逻辑判断、思考时间等。

1.自动事务

自动事务函数的结果交由LoadRunner来判断,关键代码如下所示:

    //增加了事务、开头
    lr_start_transaction("login");
    //提交登录请求
    web_submit_data("login.pl", 
        "Action=http://127.0.0.1:1080/WebTours/login.pl", 
        "Method=POST", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
        "Snapshot=t5.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userSession", "Value={userSession}", ENDITEM, 
        "Name=username", "Value=besttest", ENDITEM, 
        "Name=password", "Value=besttest", ENDITEM, 
        "Name=JSFormSubmit", "Value=on", ENDITEM, 
        "Name=login.x", "Value=33", ENDITEM, 
        "Name=login.y", "Value=9", ENDITEM, 
        LAST);
    lr_end_transaction("login",LR_AUTO);//事务结尾,要与开头对应

2.手动事务

和手动事务相反,手动事务的结果可以自己指定。关键代码如下所示:

    //文本检查点,检查用户名
    web_reg_find("Text=besttest","SaveCount=besttest_count",LAST);
    //增加了事务
    lr_start_transaction("login");
    //提交登录请求
    web_submit_data("login.pl", 
        "Action=http://127.0.0.1:1080/WebTours/login.pl", 
        "Method=POST", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
        "Snapshot=t5.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userSession", "Value={userSession}", ENDITEM, 
        "Name=username", "Value=besttest", ENDITEM, 
        "Name=password", "Value=besttest", ENDITEM, 
        "Name=JSFormSubmit", "Value=on", ENDITEM, 
        "Name=login.x", "Value=33", ENDITEM, 
        "Name=login.y", "Value=9", ENDITEM, 
        LAST);
    //增加判断,如果检查到用户名出现的次数大于0,则事务结果成功,否则失败
    if(atoi(lr_eval_string("{besttest_count}"))!=)
        lr_end_transaction("login",LR_PASS);
    else
        lr_end_transaction("login",LR_FAIL);