51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7339|回复: 14
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-9-27 16:41:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我刚开始使用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,需要一个补丁……

希望碰到这方面问题的高手能给我解答一下,小弟这个急啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 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上面的应用没启动起来。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 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          [MsgId: MMSG-26506]
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          [MsgId: MMSG-26506]
vuser_init.c(4): "SOAPAction: "http://tempuri.org/DeletePatBloodCapacity"" header registered for adding to requests from the immediately following Action function          [MsgId: MMSG-26506]
vuser_init.c(4): t=321ms: Connecting to host 192.168.66.5:80          [MsgId: MMSG-26000]
vuser_init.c(4): t=325ms: Connected socket from 127.0.0.1:2091 to 192.168.66.5:80 in 3 ms          [MsgId: MMSG-26000]
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"          [MsgId: MMSG-26000]
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"。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-9-27 17:05:12 | 只看该作者
你把http://192.168.66.5/IHDClinic/IHDBlood.asmx?WSDL放到IE里面执行的结果放出来看看。

评分

参与人数 1综合技术指数 +1 收起 理由
juju5288 + 1 真是烦人的家伙,就知道在这里扰乱,回 ...

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 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的贴子里的格式
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

7#
发表于 2007-1-9 11:14:40 | 只看该作者
LR80P34 - LoadRunner 8.0 Web Services Feature Pack

http://webnotes.merc-int.com/pat ... rvicesFP1_setup.exe


LR80P3 - LoadRunner 8.0 Various Fixes and Enhancement for Web Service Solution
http://webnotes.merc-int.com/pat ... ervices_patch_1.exe

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

[ 本帖最后由 juju5288 于 2007-1-9 13:19 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-1-24 11:29:59 | 只看该作者
wsdl文件如何载入
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2016-4-26 13:27
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    9#
    发表于 2007-5-29 16:19:11 | 只看该作者

    回复 #7 juju5288 的帖子

    不错!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-10-15 14:58:06 | 只看该作者
    极度感谢juju5288,你解决了我头疼的问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-1-27 16:11:12 | 只看该作者
    学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-12-14 17:08:53 | 只看该作者
    在run- time -setting ---> webserivce-->clinet emulation-->MS SOAP就能解决这个问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2011-7-2 16:30:51 | 只看该作者
    为什么插件地址 打不开??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2012-11-2 10:59:42 | 只看该作者
    现在两个补丁的下载地址失效了,找不到。
    哪位兄台可以提供一下吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 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 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-8 06:12 , Processed in 0.079631 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表