|
这两天仔细研究了下LR的虚拟用户使用手册,对其中将web user脚本转为Java后出现的问题,在这里抛砖引玉,以求更深入的地学习。
web脚本如下:
web_url("club.joyes.com",
"URL=http://club.joyes.com/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTTP",
LAST);
web_submit_form("login.asp",
"Snapshot=t3.inf",
ITEMDATA,
"Name=CkiExp", "Value=无效", ENDITEM,
"Name=user", "Value=810503", ENDITEM,
"Name=pass", "Value=1234", ENDITEM,
LAST);
web_link("退 出",
"Text=退 出",
"Snapshot=t8.inf",
LAST);
按照使用手册上所讲,将这段存为e:\test\noname3.txt , 然后 进入DOS命令界面,作如下操作:
新建一个java协议的脚本,将刚才转换所得的脚本内容(即 e:\test\noname3.txt文件内容)拷贝到 public int action()后的大括号之内
脚本编译还不能通过,又作了一些修改和加强,脚本如下:
import lrapi.lr;
public class Actions
{
public int init() {
return 0;
}//end of init
public int action() {
try{
int _webresult = lrapi.web.url("club.joyes.com",
"URL=http://club.joyes.com/", new String[]{
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t5.inf",
"Mode=HTML",
lrapi.web.LAST});
_webresult = lrapi.web.submit_data("login.asp",
"Action=http://club.joyes.com/User/login.asp", new String[]{
"Method=POST",
"RecContentType=text/html",
"Referer=http://club.joyes.com/",
"Snapshot=t7.inf",
"Mode=HTML",
}, new String[]{ // ITEM DATA
"Name=CkiExp", "Value=-1",lrapi.web.ENDITEM,
"Name=submitflag", "Value=ddddls-+++", lrapi.web.ENDITEM,
"Name=user", "Value=<user>", lrapi.web.ENDITEM,
"Name=pass", "Value=<pass>", lrapi.web.ENDITEM,
lrapi.web.LAST});
/*退出登陆*/
lr.output_message(lr.eval_string("<user>"));
lr.enable_redirection(true);
lr.redirect("e://test//tt.txt",lr.eval_string("<user>")+"\n",true);
lr.enable_redirection(false);
_webresult = lrapi.web.link("退 出",
"Text=退 出", new String[]{
"Snapshot=t8.inf",
lrapi.web.LAST});
}
catch(Exception e)
{
}
return 0;
}//end of action
public int end() {
return 0;
}//end of end
}
现在脚本能够回放了,但是最后一段
_webresult = lrapi.web.link("退 出",
"Text=退 出", new String[]{
"Snapshot=t8.inf",
lrapi.web.LAST});
由于录制web时采用的UTF-8的编码,而在java环境下没有看到这个功能,导致回放时“退出”文本为乱码,不能识别,回放不成功。
想请教下哪位高手,可以解决这个问题的? |
|