标签:
一.脚本编写
案例一
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