wangchao6656 发表于 2010-7-6 16:24:45

关于HTTP请求的问题

在LR测试的WEB系统中,录制时有一句判断是否在线的在脚本如下:
web_custom_request("Controls_WebOnline,App_Web_webonline.ascx.cc671b29.ashx",
"URL=http://192.168.11.2:88/lgsoft30/ajaxpro/Controls_WebOnline,App_Web_webonline.ascx.cc671b29.ashx",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=text/plain",
"Referer=http://192.168.11.2:88/lgsoft30/IndexAdmin.aspx",
"Snapshot=t14.inf",
"Mode=HTML",
"EncType=text/plain; charset=utf-8",
"Body={}",
LAST);
在用LR执行脚本web_custom_request函数请求中,服务器没有返回任何值,返回的数据信息如下:
vuser_init.c(174): 警告: 带有参数分隔符的字符串“”不是参数。
vuser_init.c(174): “http://192.168.11.2:88/lgsoft30/ajaxpro/Controls_WebOnline,App_Web_webonline.ascx.cc671b29.ashx”(RelFrameId=1)的 t=41364ms: 178 个字节响应标头
vuser_init.c(174):   HTTP/1.1 200 OK\r\n
vuser_init.c(174):   Date: Tue, 06 Jul 2010 07:53:38 GMT\r\n
vuser_init.c(174):   Server: Microsoft-IIS/6.0\r\n
vuser_init.c(174):   X-Powered-By: ASP.NET\r\n
vuser_init.c(174):   X-AspNet-Version: 2.0.50727\r\n
vuser_init.c(174):   Cache-Control: private\r\n
vuser_init.c(174):   Content-Length: 0\r\n
vuser_init.c(174):   \r\n
vuser_init.c(174): web_custom_request("Controls_WebOnline,App_Web_webonline.ascx.cc671b29.ashx") 已成功,0 个正文字节,178 介标头字节   
这个脚本没有关联,没有任何参数化的数据,奇怪就是执行的时候没有数据返回,我用了Fiddler2这个HTTP调试工具进行调试,该LR脚本对应的树视图下的HTTP请求如下,我用这个请求在Fiddler2下创建了一个相同的HTTP请求,发送给服务器,服务器可以返回正确的值,但是执行该请求所对应的LR函数时就是得不到返回的数据。这是为什么啊?是不是这条web_custom_request语句没有执行它对应树视图下的HTTP请求,如果是这样,那么它执行的HTTP请求是在哪里可以看到呢?望高手解答~
Header:
------------------------------------------
POST http://192.168.11.2:88/lgsoft30/ajaxpro/Controls_WebOnline,App_Web_webonline.ascx.cc671b29.ashx HTTP/1.1
Accept: */*
Accept-Language: zh-cn
x-ajaxpro-method: ReOnline
Referer: http://192.168.11.2:88/lgsoft30/IndexAdmin.aspx
Content-Type: text/plain; charset=utf-8
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: 192.168.11.2:88
Content-Length: 2
Proxy-Connection: Keep-Alive
Pragma: no-cache
Cookie: ASP.NET_SessionId=4cftasejljirp1blodmy0155; ShortName=sysadmin
Body:
------------------------------------------
"{}"

PS:参看了下帮助文档,里面提到了用web_add_header函数添加HTTP请求消息头,然后再利用web_custom_request发送客户请求,然后我在函数执行之前添加Cookie值,如下,但是还是不行
web_add_header("Cookie",
"ASP.NET_SessionId=4cftasejljirp1blodmy0155; ShortName=sysadmin");

无助之下发帖求助~望不吝指教~

skyzhu 发表于 2010-7-6 16:43:19

一个简单的办法,把LR的代理指到Fiddler2的端口去,默认127.0.0.1:8888,再和正常的对比一下,就知道为什么了

wangchao6656 发表于 2010-7-6 16:53:13

又遇见仁兄你了,拜谢你的赐教 ~你的意思是不是用Fiddler捕获LR和服务器的通讯啊?那我试试看看~:handshake

wangchao6656 发表于 2010-7-6 17:30:09

回复 2# 的帖子

搞定了,LR发送的HTTP头里少了个x-ajaxpro-method: ReOnline,添加进去就好了~多谢~

msnshow 发表于 2010-7-6 22:39:19

http的比较容易搞定
页: [1]
查看完整版本: 关于HTTP请求的问题