标签:
一.脚本编写
案例一
Action()
{
//请求1
web_custom_request("WebTours", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t1.inf", //录制快照保存到t1.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
//请求2
web_custom_request("header.html", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/header.html", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t2.inf", //录制快照保存到t2.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
//请求3
web_custom_request("signOff=true", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t3.inf", //录制快照保存到t3.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
//关联函数
web_reg_save_param_ex("Paramname=userSession",
"LB=name=userSession value=",
"RB=>",
LAST);
//请求4
web_custom_request("in=home", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home", //Get请求的地址
"Method=POST", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t4.inf", //录制快照保存到t4.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
//请求5
web_custom_request("home.html", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/home.html", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t5.inf", //录制快照保存到t5.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
lr_start_transaction("登录");
//POST
web_custom_request("login.pl", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/login.pl", //Get请求的地址
"Method=POST", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", //请求的页面,在URL写明后,该属性无效可省略
"Snapshot=t6.inf", //录制快照保存到t6.inf中
"Mode=HTTP", //录制的模式HTTP
"Body=userSession={userSession}&username=test001&password=123456",
LAST);
//请求7
web_custom_request("in=home", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t7.inf", //录制快照保存到t7.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
//检查点
web_reg_find("Text=Welcome, <b>test001</b>,",
"Savecount=登录计数",
LAST);
//请求8
web_custom_request("tro=true", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t8.inf", //录制快照保存到t8.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
//判断登录成功与否
if(atoi(lr_eval_string("{登录计数}")) >0){
lr_end_transaction("登录", LR_PASS);
}else{
lr_end_transaction("登录", LR_FAIL);
}
//请求9
web_custom_request("signOff=1", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t9.inf", //录制快照保存到t9.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
//请求10
web_custom_request("in=home", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t10.inf", //录制快照保存到t10.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
//请求11
web_custom_request("home.html", //可以自定义
"URL=http://127.0.0.1:1080/WebTours/home.html", //Get请求的地址
"Method=GET", //方式GET
"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
"RecContentType=text/html", //录制时响应报头文本类型
"Snapshot=t11.inf", //录制快照保存到t11.inf中
"Mode=HTTP", //录制的模式HTTP
LAST);
return 0;
}
案例二
Action()
{
//请求1
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST );
//请求2
web_url("header.html",
"URL=http://127.0.0.1:1080/WebTours/header.html",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t2.inf",
"Mode=HTTP",
LAST );
//请求3
web_url("welcome.pl?signOff=true",
"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t3.inf",
"Mode=HTTP",
LAST );
//插入关联函数<input type=hidden name=userSession value=119191.457108141zVDAQVApfHfDzHifptzDtf>
web_reg_save_param_ex("Paramname=userSession",
"LB=name=userSession value=",
"RB=>",
LAST);
//请求4
web_url("in=home",
"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t4.inf",
"Mode=HTTP",
LAST );
//请求5
web_url("home.html",
"URL=http://127.0.0.1:1080/WebTours/home.html",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t5.inf",
"Mode=HTTP",
LAST );
lr_start_transaction("登录");
//post提交
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=t6.inf",
"Mode=HTTP",
ITEMDATA,
"Name=username", "Value=test001", ENDITEM,
"Name=password", "Value=123456", ENDITEM,
"Name=userSession", "Value={userSession}", ENDITEM,
LAST );
//请求7
web_url("nav.pl?page=menu&in=home",
"URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t7.inf",
"Mode=HTTP",
LAST );
//检查点 Welcome, <b>test001</b>,
web_reg_find("Text=Welcome, <b>test001</b>,",
"Savecount=登录计数",
LAST);
//请求8
web_url("login.pl?intro=true",
"URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t8.inf",
"Mode=HTTP",
LAST );
//判断登录成功与否
if(atoi(lr_eval_string("{登录计数}")) >0){
lr_end_transaction("登录", LR_PASS);
}else{
lr_end_transaction("登录", LR_FAIL);
}
//lr_end_transaction("登录", LR_AUTO);
//请求9
web_url("welcome.pl?signOff=1",
"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t9.inf",
"Mode=HTTP",
LAST );
//请求10
web_url("nav.pl?in=home",
"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t10.inf",
"Mode=HTTP",
LAST );
//请求11
web_url("home.html",
"URL=http://127.0.0.1:1080/WebTours/home.html",
//"TargetFrame=",
//"TargetBrowser=Mercury Technologies",
"Resource=0",
"RecContentType=text/html",
"Snapshot=t11.inf",
"Mode=HTTP",
LAST );
return 0;
}
二.登录脚本编写流程
编写方式:录制和手写(下面记录手写方式)
需要工具:httpwatch 或者是 fiddler
具体流程:
执行一次登录,将请求通过抓包工具记录下来
筛选请求:如果没有特别要求,图片等格式需求可以忽略
将get请求写入脚本
将post请求写入脚本
寻找检查点——登录成功的网页>查看源码>复制成功登录判断点
插入检查点函数——放到请求登录成功网页的前面()
web_reg_find("Text=Welcome, <b>test001</b>,",
"Savecount=登录计数",
LAST);
插入关联函数从服务器获得的动态参数
位置:放在第一次出现session值的网页前
web_reg_save_param_ex("Paramname=userSession",
"LB=name=userSession value=",
"RB=>",
LAST);
添加if语句判断事务是否成功
(必须先有一个开始事物
(将结束事物替换为判断条件
if(atoi(lr_eval_string("{登录计数}")) >0){
lr_end_transaction("登录", LR_PASS);
}else{
lr_end_transaction("登录", LR_FAIL);
}
三.执行
工具——〉创建controler场景 如果出现错误检查是否注册码失效,或者用管理员运行LR
开启windows服务 ——〉services.msc——〉Remote Registry改为手动,然后启动
场景——〉集合(没有亮的话,回脚本界面 插入——〉集合 ,场景界面点击路径再重加载脚本 )
运行——〉可用图——〉windonws资源图——〉右键添加度量——〉添加——〉输入自己电脑的ip
四.分析结果
未完待续。。
标签:
原文地址:http://www.cnblogs.com/maoxianfei/p/5777430.html