51Testing软件测试论坛

标题: 关于HTTP请求的问题 [打印本页]

作者: wangchao6656    时间: 2010-7-6 16:24
标题: 关于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 介标头字节   [MsgId: MMSG-26386]
这个脚本没有关联,没有任何参数化的数据,奇怪就是执行的时候没有数据返回,我用了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
一个简单的办法,把LR的代理指到Fiddler2的端口去,默认127.0.0.1:8888,再和正常的对比一下,就知道为什么了
作者: wangchao6656    时间: 2010-7-6 16:53
又遇见仁兄你了,拜谢你的赐教 ~你的意思是不是用Fiddler捕获LR和服务器的通讯啊?那我试试看看~
作者: wangchao6656    时间: 2010-7-6 17:30
标题: 回复 2# 的帖子
搞定了,LR发送的HTTP头里少了个x-ajaxpro-method: ReOnline,添加进去就好了~多谢~
作者: msnshow    时间: 2010-7-6 22:39
http的比较容易搞定




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2