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);