LoadRunner VuGen脚本增强之逻辑判断增强与事务

来源:互联网 发布:淘宝怎么卖眼药水 编辑:程序博客网 时间:2024/05/22 01:41

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

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

一、逻辑判断增强

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

1.atoi函数

函数用法:

int atoi(要转换成整型的字符);//把指定的字符转换成整型

2.lr_eval_string函数

函数用法:

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

3.strcmp函数

函数用法:

strcmp(字符串1,字符串2);//比较字符串1和字符串2的大小

4.strcpy函数

函数用法:

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}"))!=0)        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}"))!=0)        lr_end_transaction("login",LR_PASS);    else        lr_end_transaction("login",LR_FAIL);
0 0
原创粉丝点击