1:参数化的作用
LoadRunner参数化可以模拟不同的用户进行操作等等..
2:如何去实现参数化
2.1:录制登录代码(模拟不同的用户登录)
本案例以LoadRuner自带的sample作为演示 代码如下 关联/检查点是我自己手动加上的
Action()
{
web_set_proxy("127.0.0.1:8888");
web_url("picinfo.ini",
"URL=http://se.360.cn/cloud/picinfo.ini",
"TargetFrame=",
"Resource=1",
"RecContentType=application/octet-stream",
"Referer=",
"Snapshot=t1.inf",
LAST);
web_add_cookie("MUID=3B882A344D5C68BB06CB2651495C6958; DOMAIN=www.bing.com");
//关联 关联session
web_reg_save_param("sessionID",
"LB=value=",
"RB=>",
LAST);
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
EXTRARES,
"Url=http://www.bing.com/favicon.ico", "Referer=", ENDITEM,
LAST);
//检查点 检查登陆后页面是否有 Welcome,admin这段文本文字出现 并统计该文本在下一个action出现次数
web_reg_find("Text=Welcome, <b>admin", "SaveCount=textCount",LAST);
lr_think_time(12);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST",
"TargetFrame=body",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={sessionID}", ENDITEM, //使用上一次关联的动态session
"Name=username", "Value=admin", ENDITEM,
"Name=password", "Value=123456", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=60", ENDITEM,
"Name=login.y", "Value=10", ENDITEM,
LAST);
//图片型检查点,需要卸载被检查函数后面
web_image_check("web_image_check","src=/WebTours/images/signoff.gif",LAST);
return 0;
}
2.2:替换用户名和密码实现不同的用户登录
A:选择需要替换的参数 鼠标右键 选择"Replcae with a Parameter"
B:命名这个参数 选择"Parameter type"为默认的File --->ok保存
C:不要使用如下这种方式去设置text的检查点 这样是检查不了的... 设置图片检查点是可以的
2.3:参数化之间的关联
A:打开"Parameter List"
B:Parameter List中选择password参数-->Select next row选择"Same line as username"--->File选择"username.dat"
C:Parameter List中选择username参数 --->点击"Add Column"-->Column name改成"password"
D:点击"Edit with Notepad'可以打开notepad编辑username和password
E:关联后如下 这样username password就形成关联 一一对应的关系
2.4:Select next row中的几个选择方案
2.4.1:Sequential
顺序--按照参数化的数据顺序,一个一个的来取。
A:Sequential+Each iteration的组合
如下可以模拟取值 点击"Simulate Parameter"---->设置虚拟用户数为5个--->设置每个虚拟用户迭代次数为5---点击"Simulate"就可以模拟出取值顺序和方式
B:Update value on 下面的另外两种选择的组合也是可以用同样的方法试一试 步骤跟A是一样的
2.4.2:Random
随机--参数化中的数据,每次随机的从中抽取数据。
2.4.3:Unique
唯一---为每个虚拟用户分配一条唯一的数据
2.5:打印看Log日志
如下 在脚本增加下列函数 打印出username的参数 如果是Sequential+Each iteration的组合 则会顺序输出 admin,admin1,admin2
注意:需要在Run time设置中设置迭代次数为5次