1、fiddler完成小飞机(访问首页,登录)
{
"URL=http://127.0.0.1:1080/webtours/",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
LAST);
lr_start_transaction("登录");
"Action=http://127.0.0.1:1080/webtours/login.pl",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/webtours/nav.pl?in=home",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={usersession}", ENDITEM,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=login.x", "Value=44", ENDITEM,
"Name=login.y", "Value=15", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
LAST );
2、使用关联函数(web_reg_save_param)成功登录
关联的思路:
1)确定哪个值需要关联
2)打开日志,日志的级别调整从服务器返回
3)回放脚本
4)在日志里面查找我们关联的关键字
5)在日志里面双击这一行值
6)在脚本里面光标停留的地方插入关联函数
7)再把这个参数名称变成动态的变量({参数名称})
3、脚本加上(检查点,if判断)完善脚本
Action()
{
web_reg_save_param("usersession",
"LB=name=userSession value=",
"RB=>\n",
LAST);
web_url("web_url",
"URL=http://127.0.0.1:1080/webtours/",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
LAST);
web_reg_find("Search=All",
"SaveCount=user_name_count",//jojo出现的次数
"Text={username}",//文本查找的信息
LAST);
lr_start_transaction("登录");
web_submit_data("web_submit_data",
"Action=http://127.0.0.1:1080/webtours/login.pl",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/webtours/nav.pl?in=home",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={usersession}", ENDITEM,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=login.x", "Value=0", ENDITEM,
"Name=login.y", "Value=0", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
LAST );
//lr_end_transaction("登录", LR_AUTO);
if(atoi(lr_eval_string("{user_name_count}"))>=1)
{
lr_end_transaction("登录",LR_PASS);
lr_output_message("登录成功,用户名:%s",lr_eval_string("{username}"));
}
else
{
lr_end_transaction("登录",LR_FAIL);
}
web_reg_find("Search=All",
"SaveCount=advanceDiscount",//jojo出现的次数
"Text=advanceDiscount",//文本查找的信息
LAST);
lr_start_transaction("选择航班1");
web_submit_data("选择航班1",
"Action=http://127.0.0.1:1080/webtours/reservations.pl",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/webtours/reservations.pl?page=welcome",
"Mode=HTML",
ITEMDATA,
"Name=advanceDiscount", "Value=0", ENDITEM,
"Name=depart", "Value=Denver", ENDITEM,
"Name=departDate", "Value=04/09/2019", ENDITEM,
"Name=arrive", "Value=Denver", ENDITEM,
"Name=returnDate", "Value=04/10/2019", ENDITEM,
"Name=numPassengers", "Value=1", ENDITEM,
"Name=seatPref", "Value=None", ENDITEM,
"Name=seatType", "Value=Coach", ENDITEM,
"Name=findFlights.x", "Value=55", ENDITEM,
"Name=findFlights.y", "Value=13", ENDITEM,
"Name=.cgifields", "Value=roundtrip", ENDITEM,
"Name=.cgifields", "Value=seatType", ENDITEM,
LAST );
//lr_end_transaction("选择航班1", LR_AUTO);
if(atoi(lr_eval_string("{advanceDiscount}"))>=1)
{
lr_end_transaction("选择航班1",LR_PASS);
}
else
{
lr_end_transaction("选择航班1",LR_FAIL);
}
lr_start_transaction("选择航班2");
web_submit_data("选择航班2",
"Action=http://127.0.0.1:1080/webtours/reservations.pl",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/webtours/reservations.pl",
"Mode=HTML",
ITEMDATA,
"Name=outboundFlight", "Value=000;0;04/09/2019", ENDITEM,
"Name=numPassengers", "Value=1", ENDITEM,
"Name=advanceDiscount", "Value=Coach", ENDITEM,
"Name=seatType", "Value=0", ENDITEM,
"Name=seatPref", "Value=None", ENDITEM,
"Name=reserveFlights.x", "Value=41", ENDITEM,
"Name=reserveFlights.y", "Value=8", ENDITEM,
LAST );
lr_end_transaction("选择航班2", LR_AUTO);
web_reg_find("Search=All",
"SaveCount=firstName_count",
"Text=firstName",
LAST);
lr_start_transaction("付款说明");
web_submit_data("付款说明",
"Action=http://127.0.0.1:1080/webtours/reservations.pl",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/webtours/reservations.pl",
"Mode=HTML",
ITEMDATA,
"Name=firstName", "Value=Joseph", ENDITEM,
"Name=lastName", "Value=Marshall", ENDITEM,
"Name=address1", "Value=234 Willow Drive", ENDITEM,
"Name=address2", "Value=San Jose/CA/94085", ENDITEM,
"Name=pass1", "Value=Joseph Marshall", ENDITEM,
"Name=creditCard", "Value=", ENDITEM,
"Name=expDate", "Value=", ENDITEM,
"Name=numPassengers", "Value=1", ENDITEM,
"Name=seatType", "Value=Coach", ENDITEM,
"Name=seatPref", "Value=None", ENDITEM,
"Name=outboundFlight", "Value=000;0;04/09/2019", ENDITEM,
"Name=advanceDiscount", "Value=0", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=buyFlights.x", "Value=37", ENDITEM,
"Name=buyFlights.y", "Value=7", ENDITEM,
"Name=.cgifields", "Value=saveCC", ENDITEM,
LAST );
//lr_end_transaction("付款说明", LR_AUTO);
if(atoi(lr_eval_string("{firstName_count}"))>=1)
{
lr_end_transaction("付款说明1",LR_PASS);
}
else
{
lr_end_transaction("付款说明",LR_FAIL);
}
}
4、前程贷(http://120.78.128.25:8765/)完成(登录,投标(投标中要用到关联)用户名:13825161923 密码: lemon123
可以进行投标,但未进行关联
Action()
{
web_reg_find("Search=All",
"SaveCount=pass_count",
"Text=登录成功",
LAST);
lr_start_transaction("登录");
web_submit_data("web_submit_data",
"Action=http://120.78.128.25:8765/Frontend/Index/login",
"Method=POST",
"TargetFrame=",
"RecContentType=application/json, text/javascript, */*; q=0.01",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
"Referer=http://120.78.128.25:8765/Index/login.html",
"Snapshot=t22.inf",
"Mode=HTML",
ITEMDATA,
"Name=phone", "Value=13825161923", ENDITEM,
"Name=password", "Value=lemon123", ENDITEM,
"Name=vcode", "Value=", ENDITEM,
"Name=remember_me", "Value=1", ENDITEM,
"Name=notify_url", "Value=", ENDITEM,
LAST );
//lr_end_transaction("登录", LR_AUTO);
if(atoi(lr_eval_string("{pass_count}"))>=1)
{
lr_end_transaction("登录",LR_PASS);
}
else
{
lr_end_transaction("登录",LR_FAIL);
}
lr_start_transaction("投资");
web_submit_data("invest",
"Action=http://120.78.128.25:8765/Invest/invest",
"Method=POST",
"TargetFrame=",
"RecContentType=application/json, text/javascript",
"Referer=http://120.78.128.25:8765/loan/loan_detail/Id/13306.html",
"Mode=HTML",
ITEMDATA,
"Name=id", "Value=13306", ENDITEM,
"Name=val", "Value=100", ENDITEM,
"Name=token", "Value=d/P5Ip5Nse0iebLuAYOblCoSy/p4W5Zsl/BViWo+q1k3uRVnJ4NTOM8Dd31l8ttvQawC8vYth+t0dSwDvWhOjzqG52p6ZK51RLeK5V5xURXw/R+3qRyZbo0yiUklLXsEvdJacI31NjqRK85AO4GW+lyPT4mFe0G+BAN7E+JPgI0=", ENDITEM,
"Name=rewardValue", "Value=0", ENDITEM,
LAST );
lr_end_transaction("投资", LR_AUTO);
lr_log_message("web_submit_data");
}
5、其他知识点
1)调试日志设置
2)在使用web_submit_data输入参数的时候,需要每个参数逐个复制,添加。其实可以使用web_custom_request,直接复制抓包来的body 中的参数串,可以参考博文连接https://www.cnblogs.com/qmfsun/p/4481444.html