您的位置:首页 > 其它

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

2016-12-03 18:24 295 查看

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: