hsj8038 发表于 2006-9-27 16:41:20

测试WebService出现“server returned an incorrectly formatted SOAP response”错误

我刚开始使用LoadRunner,测试WebService性能,就碰到了一个问题,现将问题描述一下,希望大家帮我找一下原因。
我使用LoadRunner的测试WebService向导,自动产生测试脚本,脚本为:
vuser_init()
{

        web_service_call( "StepName=DeletePatBloodCapacity_101",
                "SOAPMethod=IHDWSBlood.IHDWSBloodSoap.DeletePatBloodCapacity",
                "ResponseParam=response",
                "WSDL=http://192.168.66.5/IHDClinic/IHDBlood.asmx?WSDL",
                "Snapshot=t1159344284.inf",
                BEGIN_ARGUMENTS,
                "strApplyNum=auto string",
                END_ARGUMENTS,
                BEGIN_RESULT,
                END_RESULT,
                LAST);

        lr_think_time(3);



        return 0;
}

运行的时候出现错误:
vuser_init.c(4): web headers not matching emulated client removed.
vuser_init.c(4): Error: server returned an incorrectly formatted SOAP response
vuser_init.c(4): Error: web_service_call "DeletePatBloodCapacity_101" execution failed
Abort was called from an action.

然后我打开日志开关,看到日志中有这样的信息:
...
vuser_init.c(4): Notify: Saving Parameter "response = <?xml version="1.0"encoding="zh_cn"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><DeletePatBloodCapacityResponse xmlns="http://tempuri.org/"><DeletePatBloodCapacityResult>0</DeletePatBloodCapacityResult></DeletePatBloodCapacityResponse></soap:Body></soap:Envelope>"
...

WebService一般都使用UTF-8编码的,我的也是,可为什么系统在保存参数值的时候,会将编码改为“zh_cn"?我试着吧这段文字复制出来成为一个文件,发现根本没有"zh_cn"这个编码格式。我不知道系统怎么会改过来的?

对于这个问题,网上提的人也很多,但是说法都不一样,有的说是Soap_header的原因,需要添加一个,有的说是Runtim Setting中设置一下,有的说是调用Soap的参数顺序出现问题,还有的说是8。0的一个Bug,需要一个补丁……

希望碰到这方面问题的高手能给我解答一下,小弟这个急啊

jackloo 发表于 2006-9-27 16:46:22

它说得很清楚了。
“server returned an incorrectly formatted SOAP response”,说你的服务器返回了一个错误的SOAP格式的响应,那你就看看你的“http://192.168.66.5/IHDClinic/IHDBlood.asmx?WSDL”这个URL地址到底能不能访问了。
我估计原因就是你的机器和192.168.66.5是断开的,或者192.168.66.5上面的应用没启动起来。

hsj8038 发表于 2006-9-27 16:50:27

to jackloo:
“http://192.168.66.5/IHDClinic/IHDBlood.asmx?WSDL”是可以访问的,而且在日志中可以看到服务器和LoadRunner之间的交互信息是正确的,请看日志:
Virtual User Script started
Starting action vuser_init.
vuser_init.c(4): web_service_call "DeletePatBloodCapacity_101" started.
vuser_init.c(4): using client emulation General
vuser_init.c(4): web headers not matching emulated client removed.
vuser_init.c(4): "Content-Type: text/xml; charset=utf-8" header registered for adding to requests from the immediately following Action function       
vuser_init.c(4): "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.1.4322.573)" header registered for adding to requests from the immediately following Action function       
vuser_init.c(4): "SOAPAction: "http://tempuri.org/DeletePatBloodCapacity"" header registered for adding to requests from the immediately following Action function       
vuser_init.c(4): t=321ms: Connecting to host 192.168.66.5:80       
vuser_init.c(4): t=325ms: Connected socket from 127.0.0.1:2091 to 192.168.66.5:80 in 3 ms       
vuser_init.c(4): t=327ms: 335-byte request headers for "http://192.168.66.5/IHDClinic/IHDBlood.asmx" (RelFrameId=1)
vuser_init.c(4):   POST /IHDClinic/IHDBlood.asmx HTTP/1.1\r\n
vuser_init.c(4):   Content-Type: text/xml; charset=utf-8\r\n
vuser_init.c(4):   Cache-Control: no-cache\r\n
vuser_init.c(4):   User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.1.4322.57
vuser_init.c(4):   3)\r\n
vuser_init.c(4):   SOAPAction: "http://tempuri.org/DeletePatBloodCapacity"\r\n
vuser_init.c(4):   Accept: */*\r\n
vuser_init.c(4):   Connection: Keep-Alive\r\n
vuser_init.c(4):   Host: 192.168.66.5\r\n
vuser_init.c(4):   Content-Length: 378\r\n
vuser_init.c(4):   \r\n
vuser_init.c(4): t=340ms: 378-byte request body for "http://192.168.66.5/IHDClinic/IHDBlood.asmx" (RelFrameId=1)
vuser_init.c(4):   <?xml version="1.0"encoding="UTF-8" standalone="no"?><soap:Envelope xmlns:soap="http://s
vuser_init.c(4):   chemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x
vuser_init.c(4):   mlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><DeletePatBloodCapacity xmlns="http
vuser_init.c(4):   ://tempuri.org/"><strApplyNum>auto string</strApplyNum></DeletePatBloodCapacity></soap:Bod
vuser_init.c(4):   y></soap:Envelope>
vuser_init.c(4): t=364ms: 230-byte response headers for "http://192.168.66.5/IHDClinic/IHDBlood.asmx" (RelFrameId=1)
vuser_init.c(4):   HTTP/1.1 200 OK\r\n
vuser_init.c(4):   Date: Wed, 27 Sep 2006 08:05:31 GMT\r\n
vuser_init.c(4):   Server: Microsoft-IIS/6.0\r\n
vuser_init.c(4):   X-Powered-By: ASP.NET\r\n
vuser_init.c(4):   X-AspNet-Version: 2.0.50727\r\n
vuser_init.c(4):   Cache-Control: private, max-age=0\r\n
vuser_init.c(4):   Content-Type: text/xml; charset=utf-8\r\n
vuser_init.c(4):   Content-Length: 401\r\n
vuser_init.c(4):   \r\n
vuser_init.c(4): t=409ms: 401-byte response body for "http://192.168.66.5/IHDClinic/IHDBlood.asmx" (RelFrameId=1)
vuser_init.c(4):   <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.or
vuser_init.c(4):   g/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://
vuser_init.c(4):   www.w3.org/2001/XMLSchema"><soap:Body><DeletePatBloodCapacityResponse xmlns="http://tempur
vuser_init.c(4):   i.org/"><DeletePatBloodCapacityResult>0</DeletePatBloodCapacityResult></DeletePatBloodCapa
vuser_init.c(4):   cityResponse></soap:Body></soap:Envelope>
vuser_init.c(4): t=421ms: Request done "http://192.168.66.5/IHDClinic/IHDBlood.asmx"       
vuser_init.c(4): Notify: Saving Parameter "response = <?xml version="1.0"encoding="zh_cn"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><DeletePatBloodCapacityResponse xmlns="http://tempuri.org/"><DeletePatBloodCapacityResult>0</DeletePatBloodCapacityResult></DeletePatBloodCapacityResponse></soap:Body></soap:Envelope>"
vuser_init.c(4): Error: server returned an incorrectly formatted SOAP response
vuser_init.c(4): Error: web_service_call "DeletePatBloodCapacity_101" execution failed
日志发送请求、服务器响应请求这些XML数据都是对的,唯一错的是LoadRunner对服务器返回过来的数据改了编码方式为"zh_cn"。

jackloo 发表于 2006-9-27 17:05:12

你把http://192.168.66.5/IHDClinic/IHDBlood.asmx?WSDL放到IE里面执行的结果放出来看看。

netldy 发表于 2006-9-27 21:42:22

使用web Services协议,需要先注意:
1、安装LR8.0的两个关于web Service的两个补丁(论坛上很多人都说过,下载地址你也可以去找找)
2、安装xmlSPY,这个是为你调试用的,如果你用XMLSPY能按照那个wsdl文件的格式将信息发送过去,那起码说明你的准备都是正确的。
3、新建一个web Service协议,设置好wsdl文件,先不要保存(有的时候保存后反而会出现错误,那个时候需要在菜单里加入那个wsdl文件),直接运行,看看是否能运行通过
4、如果运行通过,那么打开日志,再次运行,记录下面的日志内容
5、根据日志内容,将此web service协议转换为web(http)协议,因为你用web service协议会受globle(大约是这么写的,具体忘记了)的用户数限制,具体怎么转换你可以参照论坛上有位高人曾经写过关于web service的贴子里的格式

juju5288 发表于 2007-1-9 09:43:14

to:netldy,首先谢谢你提供些有价值的答复,我也遇到相同的问题,请问
1、安装LR8.0的两个关于web Service的两个补丁(论坛上很多人都说过,下载地址你也可以去找找)
能不能说的明白一下,补丁什么名称。
既然建议了,就贴个以前论坛相关的地址,不然我们就要大海捞针了。

juju5288 发表于 2007-1-9 11:14:40

LR80P34 - LoadRunner 8.0 Web Services Feature Pack

http://webnotes.merc-int.com/patches.nsf/01e534a29911b7cc882567ed0064cb15/0db540271aa077b042256fb20061275d/$FILE/LR80WebServicesFP1_setup.exe


LR80P3 - LoadRunner 8.0 Various Fixes and Enhancement for Web Service Solution
http://webnotes.merc-int.com/patches.nsf/01e534a29911b7cc882567ed0064cb15/7689afb262b68168c2256f5f006644a2/$FILE/lrunner_web_services_patch_1.exe

安装补丁后,重起电脑就没有这个错误了:)server returned an incorrectly formatted SOAP response

[ 本帖最后由 juju5288 于 2007-1-9 13:19 编辑 ]

yingyu21 发表于 2007-1-24 11:29:59

wsdl文件如何载入

liaoxj 发表于 2007-5-29 16:19:11

回复 #7 juju5288 的帖子

不错!

shihk 发表于 2007-10-15 14:58:06

极度感谢juju5288,你解决了我头疼的问题

sunkitty 发表于 2008-1-27 16:11:12

学习了

huoxingyinzi 发表于 2008-12-14 17:08:53

在run- time -setting ---> webserivce-->clinet emulation-->MS SOAP就能解决这个问题

wjtest 发表于 2011-7-2 16:30:51

为什么插件地址 打不开??

Deiva 发表于 2012-11-2 10:59:42

现在两个补丁的下载地址失效了,找不到。
哪位兄台可以提供一下吗?

Deiva 发表于 2012-11-2 11:05:35

哪们可以提供一下这两个补丁?


LoadRunner 8.0 Web Services Feature Pack
lrunner_web_services_patch_1.exe

LoadRunner 8.0 Various Fixes and Enhancement for Web Service Solution
LR80WebServicesFP1_setup.exe

邮件:deiva@tom.com
页: [1]
查看完整版本: 测试WebService出现“server returned an incorrectly formatted SOAP response”错误