一、两种录制模式的解析
1、HTML-based script和URL-based script的区别
可以分别使用这两种方式录制一下百度首页,查看其录制的结果
2、HTML-based script
同上面一样,我们可以通过录制同一场景的方法直接来对比这两种方式的区别。下面例子使用LR自带的程序
(1)描述用户操作的脚本(例如,web_link、web_submit_form)
Action()
{
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
lr_think_time(8);
web_submit_form("login.pl",
"Snapshot=t2.inf",
ITEMDATA,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=login.x", "Value=47", ENDITEM,
"Name=login.y", "Value=5", ENDITEM,
LAST);
return 0;
}
注释掉web_url函数,运行的话,就会报错
(1)包含明确的url脚本(例如,web_url、web_submit_data)
Action()
{
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t3.inf",
"Mode=HTML",
LAST);
lr_think_time(9);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST",
"TargetFrame=body",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
"Snapshot=t4.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value=125846.121506683ztHDcAQpiHfDiiDQpcfQcf", ENDITEM,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=51", ENDITEM,
"Name=login.y", "Value=16", ENDITEM,
LAST);
return 0;
}
注释掉web_url函数之后运行,还是可以运行成功。
总结:
选择哪种方式录制,有以下参考原则:
(1)基于浏览器的应用程序推荐使用HTML-based script
(2)不是基于浏览器的应用程序推荐使用URL-based script
(3)如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如datagrid的分页按钮等,flash等,也要使用URL-based方式录制
(4)基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based方式录制