学习了一些loadrunner基础知识,准备实操看看。
使用loadrunner内置的示例程序(上一篇博文提到过)进行注册、登录。如下图:
1、注册
由于是内置示例程序,肯定兼容IE浏览器,可以通过录制脚本,得到基础代码,然后做适当的处理。
register_user()
{
// web_url("WebTours",
// "URL=http://127.0.0.1:1080/WebTours/",
// "Resource=0",
// "RecContentType=text/html",
// "Referer=",
// "Snapshot=t39.inf",
// "Mode=HTML",
// LAST);
//
// web_link("sign up now",
// "Text=sign up now",
// "Snapshot=t40.inf",
// LAST);
//
// lr_think_time(9);
web_reg_find("Text=We hope we can meet all your current and future travel needs.", LAST); //做断言处理
// web_submit_form("login.pl",
// "Snapshot=t41.inf",
// ITEMDATA,
// "Name=username", "Value=10003", ENDITEM,
// "Name=password", "Value=3", ENDITEM,
// "Name=passwordConfirm", "Value=3", ENDITEM,
// "Name=firstName", "Value=", ENDITEM,
// "Name=lastName", "Value=", ENDITEM,
// "Name=address1", "Value=", ENDITEM,
// "Name=address2", "Value=", ENDITEM,
// "Name=register.x", "Value=52", ENDITEM,
// "Name=register.y", "Value=10", ENDITEM,
// LAST);
web_submit_data("web_submit_data",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST", // post 请求方式
"TargetFrame=",
"Referer=",
ITEMDATA, //请求入参
"Name=username", "Value={gen_para}", ENDITEM, // {gen_para} 是定义的变量。
"Name=password", "Value={gen_para}", ENDITEM,
"Name=passwordConfirm", "Value={gen_para}", ENDITEM,
"Name=firstName", "Value=", ENDITEM,
"Name=lastName", "Value=", ENDITEM,
"Name=address1", "Value=", ENDITEM,
"Name=address2", "Value=", ENDITEM,
"Name=register.x", "Value=52", ENDITEM,
"Name=register.y", "Value=10", ENDITEM,
LAST);
return 0;
}
上述代码中,被注释的代码均是脚本录制时自动生成的。我只把注册请求由原来的 web_submit_form 改成
web_submit_data,然后增加了一个断言(web_reg_find,此方法必须放在校验请求之前),校验用户调用注册接口后,是否注册成功。由于需要注册若干用户数据,username、password、passwordConfirm做了一个参数化处理。
如上图,顺序取值,每次迭代更改一次调用值。
2、登录
通过上一步骤,注册过的用户可以进行登录。
WebTours_login()
{
lr_rendezvous("WebTours_login");
web_set_sockets_option("OVERLAPPED_SEND", "0");//防止登录后用户信息被互串
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t44.inf",
"Mode=HTML",
LAST);
lr_think_time(5);
web_reg_find("Text=User password was correct", LAST);
web_submit_form("login.pl",
"Snapshot=t45.inf",
ITEMDATA,
"Name=username", "Value={gen_para}", ENDITEM,
"Name=password", "Value={gen_para}", ENDITEM,
"Name=login.x", "Value=62", ENDITEM,
"Name=login.y", "Value=8", ENDITEM,
LAST);
return 0;
}
录制代码如上,增加了用户登录成功后的断言。对username、password进行参数化处理。最顶端增加了一个集合设置。
3、使用controller设置场景
创建场景的时候,可选择手工场景或基于目标的场景。本次选择手工场景。如下图:
选择脚本,点击“Add”至“Scripts in Scenario”。
然后设置启动、停止参数。如下图:
Global Schedule栏下的 “start vusers” 行表示:每15秒钟创建2个用户,共创建10个用户。“duration”行表示:持续5个小时。“stop vusers”行表示:每30秒关掉5个用户。
场景设置完毕后,点击左上角的“右三角”,程序运行完毕后,会生成报告图。