Loadrunner实现网络听评课系统登录脚本实例
2017-02-09 10:43
309 查看
脚本业务流:访问网络听评课——登录平台——退出平台。本次使用LoadRunner11版本。
一、录制脚本注意
1、确保网络听评课能在服务器运行正常。
2、录制前先注册一个测试用户。
3、选择录制协议,网络听评课是一个B/S架构的web系统,使用常用协议“web(HTTP/HTML)”录制。
4、录制选项的设置,特别注意录制时的HTTP/HTML级别的选择是“基于HTML的脚本”还是“基于URL的脚本”,这里选择“基于HTML的脚本”。
5、录制完脚本后,先保存脚本,再回放一遍。
二、优化脚本
1.插入事物点 2.插入集合点 3.参数化 4.插入检查点
使用LoadRunner录制后的脚本,通常都是需要优化完善脚本。这里优化action中的登录部分,优化完善后的脚本如下:
vuser_init()
{
web_url("192.168.1.230",
"URL=http://192.168.1.230/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t65.inf",
"Mode=HTML",
LAST);
web_url("login.jsp",
"URL=http://192.168.1.230/jsp/login/login.jsp",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.1.230/",
"Snapshot=t66.inf",
"Mode=HTML",
EXTRARES,
"Url=/css/stylecss2.css", ENDITEM,
"Url=/images/BJ.jpg", ENDITEM,
"Url=/images/loginBJ_03.png", ENDITEM,
"Url=/images/but_DL.png", ENDITEM,
LAST);
return 0;
}
Action()
{
lr_think_time(13);
lr_rendezvous("login"); /*设定登陆操作的集合点*/
web_custom_request("login",
"URL=http://192.168.1.230/webservice/ece/login/login?account={usename}&password=123456&dateTime=1486713296375",
"Method=GET",
"TargetFrame=",
"Resource=1",
"RecContentType=application/json",
"Referer=http://192.168.1.230/jsp/login/login.jsp",
"Snapshot=t67.inf",
"EncType=application/json",
LAST);
lr_start_transaction("login_submit_time"); /*该事务点的作用是统计登陆成功的信息*/
web_reg_find("Fail=NotFound", /*增加文本检查点,验证是否登录成功*/
"Search=All",
"Text=EXIT",
"SaveCount=para_count", /*检查到文本的数量存在para_count这个变量中*/
LAST);
web_url("pr1.jsp",
"URL=http://192.168.1.230/jsp/login/pr1.jsp",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.1.230/jsp/login/login.jsp",
"Snapshot=t68.inf",
"Mode=HTML",
EXTRARES,
"URL=/images/ICOindex.png", ENDITEM,
"URL=/images/fxBJD.gif", ENDITEM,
"URL=/images/fxBJBD.gif", ENDITEM,
LAST);
lr_end_transaction("login_submit_time", LR_AUTO);
lr_log_message("用户名:%s", lr_eval_string("{usename}"));
if(strcmp(lr_eval_string("{para_count}"),"0")==0)
lr_log_message("登陆失败!");
else
lr_log_message("登陆成功!");
return 0;
}
vuser_end()
{
lr_think_time(5);
web_custom_request("exit",
"URL=http://192.168.1.230/webservice/ece/login/exit",
"Method=GET",
"TargetFrame=",
"Resource=1",
"RecContentType=application/json",
"Referer=http://192.168.1.230/jsp/login/pr1.jsp",
"Snapshot=t69.inf",
LAST);
web_url("login.jsp_2",
"URL=http://192.168.1.230/jsp/login/login.jsp",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.1.230/jsp/login/pr1.jsp",
"Snapshot=t70.inf",
"Mode=HTML",
LAST);
return 0;
}
1.事务设置
使用函数:lr_start_transaction("事务名称");lr_end_transaction("事务名称",LR_AUTO);
添加方法:insert-start_transaction/end_transaction
注意事项:不要将思考时间(lr_think_time函数)放在事务开始和事务结束之间。
2.插入集合点
使用函数:lr_rendezvous("集合点名称");
添加方法:集合点的设置在菜单“插入--集合”即可,集合点是为了模拟实际场景,在登陆时设置集合点就相当于大家都已输入账号、密码同时点登陆这一操作。注意事项:集合点要放在开始事务的前面,思考时间(lr_think_time函数)的后面。
3.参数化
LR录制登录的脚本,一般需要参数化脚本中的登录用户和对应的密码,以便更加真实地模仿系统的业务操作。
添加方法:
1.手动将用户名保存在文本中添加,点击工具栏
图标打开参数列表,或者点击菜单“Vuser--参数列表”,或使用快捷方式“Ctrl+L”,点击新建,定义参数名称username和password,创建表并输入内容;
2.和数据库连接获取参数,详见http://blog.csdn.net/pangnuonuo/article/details/55259881
注意事项:参数化时Each iteration与 Each occurrence区别Each iteration一次迭代中取的是同一个参数,Each occurrence一次迭代中碰到参数化取不同的参数;参数名username和password相对应,通过参数列表中的数据方式和更新值方式来设置,username参数要与password参数对应设置正确,脚本回放时才能模拟用户登录成功,若密码一样参数化用户名就可以。
4.插入检查点
使用函数:web_reg_find()
添加方法:LR的检查点分为文本检查点和图像检查点,添加检查点的方法很简单,在LR的树形视图中,打开视图登录页面,选择需要检查的内容(文本或者图像),鼠标右键选择“添加文本检查点(web_reg_find())”即可。
注意事项:
1.若要手动添加检查点,则需要把检查点设置在返回页面的之前;
2.在脚本中添加了检查点,要在Vuser->Run-Tme Settings中更改下设置,勾选Enable Image and text check。
3.建议使用web_reg_find()抛弃web_find(),具体不同详见http://blog.csdn.net/pangnuonuo/article/details/55259164
一、录制脚本注意
1、确保网络听评课能在服务器运行正常。
2、录制前先注册一个测试用户。
3、选择录制协议,网络听评课是一个B/S架构的web系统,使用常用协议“web(HTTP/HTML)”录制。
4、录制选项的设置,特别注意录制时的HTTP/HTML级别的选择是“基于HTML的脚本”还是“基于URL的脚本”,这里选择“基于HTML的脚本”。
5、录制完脚本后,先保存脚本,再回放一遍。
二、优化脚本
1.插入事物点 2.插入集合点 3.参数化 4.插入检查点
使用LoadRunner录制后的脚本,通常都是需要优化完善脚本。这里优化action中的登录部分,优化完善后的脚本如下:
vuser_init()
{
web_url("192.168.1.230",
"URL=http://192.168.1.230/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t65.inf",
"Mode=HTML",
LAST);
web_url("login.jsp",
"URL=http://192.168.1.230/jsp/login/login.jsp",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.1.230/",
"Snapshot=t66.inf",
"Mode=HTML",
EXTRARES,
"Url=/css/stylecss2.css", ENDITEM,
"Url=/images/BJ.jpg", ENDITEM,
"Url=/images/loginBJ_03.png", ENDITEM,
"Url=/images/but_DL.png", ENDITEM,
LAST);
return 0;
}
Action()
{
lr_think_time(13);
lr_rendezvous("login"); /*设定登陆操作的集合点*/
web_custom_request("login",
"URL=http://192.168.1.230/webservice/ece/login/login?account={usename}&password=123456&dateTime=1486713296375",
"Method=GET",
"TargetFrame=",
"Resource=1",
"RecContentType=application/json",
"Referer=http://192.168.1.230/jsp/login/login.jsp",
"Snapshot=t67.inf",
"EncType=application/json",
LAST);
lr_start_transaction("login_submit_time"); /*该事务点的作用是统计登陆成功的信息*/
web_reg_find("Fail=NotFound", /*增加文本检查点,验证是否登录成功*/
"Search=All",
"Text=EXIT",
"SaveCount=para_count", /*检查到文本的数量存在para_count这个变量中*/
LAST);
web_url("pr1.jsp",
"URL=http://192.168.1.230/jsp/login/pr1.jsp",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.1.230/jsp/login/login.jsp",
"Snapshot=t68.inf",
"Mode=HTML",
EXTRARES,
"URL=/images/ICOindex.png", ENDITEM,
"URL=/images/fxBJD.gif", ENDITEM,
"URL=/images/fxBJBD.gif", ENDITEM,
LAST);
lr_end_transaction("login_submit_time", LR_AUTO);
lr_log_message("用户名:%s", lr_eval_string("{usename}"));
if(strcmp(lr_eval_string("{para_count}"),"0")==0)
lr_log_message("登陆失败!");
else
lr_log_message("登陆成功!");
return 0;
}
vuser_end()
{
lr_think_time(5);
web_custom_request("exit",
"URL=http://192.168.1.230/webservice/ece/login/exit",
"Method=GET",
"TargetFrame=",
"Resource=1",
"RecContentType=application/json",
"Referer=http://192.168.1.230/jsp/login/pr1.jsp",
"Snapshot=t69.inf",
LAST);
web_url("login.jsp_2",
"URL=http://192.168.1.230/jsp/login/login.jsp",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.1.230/jsp/login/pr1.jsp",
"Snapshot=t70.inf",
"Mode=HTML",
LAST);
return 0;
}
1.事务设置
使用函数:lr_start_transaction("事务名称");lr_end_transaction("事务名称",LR_AUTO);
添加方法:insert-start_transaction/end_transaction
注意事项:不要将思考时间(lr_think_time函数)放在事务开始和事务结束之间。
2.插入集合点
使用函数:lr_rendezvous("集合点名称");
添加方法:集合点的设置在菜单“插入--集合”即可,集合点是为了模拟实际场景,在登陆时设置集合点就相当于大家都已输入账号、密码同时点登陆这一操作。注意事项:集合点要放在开始事务的前面,思考时间(lr_think_time函数)的后面。
3.参数化
LR录制登录的脚本,一般需要参数化脚本中的登录用户和对应的密码,以便更加真实地模仿系统的业务操作。
添加方法:
1.手动将用户名保存在文本中添加,点击工具栏
图标打开参数列表,或者点击菜单“Vuser--参数列表”,或使用快捷方式“Ctrl+L”,点击新建,定义参数名称username和password,创建表并输入内容;
2.和数据库连接获取参数,详见http://blog.csdn.net/pangnuonuo/article/details/55259881
注意事项:参数化时Each iteration与 Each occurrence区别Each iteration一次迭代中取的是同一个参数,Each occurrence一次迭代中碰到参数化取不同的参数;参数名username和password相对应,通过参数列表中的数据方式和更新值方式来设置,username参数要与password参数对应设置正确,脚本回放时才能模拟用户登录成功,若密码一样参数化用户名就可以。
4.插入检查点
使用函数:web_reg_find()
添加方法:LR的检查点分为文本检查点和图像检查点,添加检查点的方法很简单,在LR的树形视图中,打开视图登录页面,选择需要检查的内容(文本或者图像),鼠标右键选择“添加文本检查点(web_reg_find())”即可。
注意事项:
1.若要手动添加检查点,则需要把检查点设置在返回页面的之前;
2.在脚本中添加了检查点,要在Vuser->Run-Tme Settings中更改下设置,勾选Enable Image and text check。
3.建议使用web_reg_find()抛弃web_find(),具体不同详见http://blog.csdn.net/pangnuonuo/article/details/55259164
相关文章推荐
- java网络编程五:暴力法破解登录系统的完全实现(木子)
- Android网络编程之——Android登录系统模块的实现(服务器端Servlet+Mysql)
- 脚本——loadrunner 编写socket脚本实例(附服务端实现)
- 实现记录和查看用户的系统登录和退出历史和利用C#编写的网络聊天程序
- Java传入用户名和密码并自动提交表单实现登录到其他系统的实例代码
- Shell实现多级菜单系统安装维护脚本实例分享
- Android网络编程之一个Android登录系统模块的实现(客户端)
- python脚本实例002- 利用requests库实现应用登录
- Shell实现多级菜单系统安装维护脚本实例分享
- java网络编程五:暴力法破解登录系统的完全实现(木子)
- Windows系统下实现挂载网络驱动器的Python脚本
- java网络编程五:暴力法破解登录系统的完全实现(木子)
- java网络编程五:暴力法破解登录系统的完全实现(木子)
- Linux expect实现自动登录脚本实例代码
- Java SE 中swing的简单实例 ( swing实现简单学生管理系统的登录界面)
- Shell实现多级菜单系统安装维护脚本实例分享
- Shell实现多级菜单系统安装维护脚本实例分享
- Android网络编程之——Android登录系统模块的实现(客户端+服务器端Servlet+MySQL)
- Android网络编程之一个Android登录系统模块的实现(服务器端)
- java网络编程五:暴力法破解登录系统的完全实现