2018年9月8日 小雨 星期六鸡鸭班……
昨天调一个webservice接口性能测试的loadrunner脚本时,遇到报错,今早找到了原因,mark一下免得下次再入坑……

我要测试的是一个用于收付款数据落地的webservice接口,外部系统向webservice接口发送soap报文,接口返回相应的处理结果信息报文。
SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。它也是webservice三要素之一。
在loadrunner脚本中我们模拟外部系统,创建http/html格式的脚本,使用web_custom_request函数传递soap报文。报文头部信息中Method为POST,Mode为HTTP,URL填写webservice地址(注意去掉?wsdl)。body中填写报文主体信息(内容同使用soapUI工具进行webservice接口功能测试时的报文信息)。

以往用这种方式测过好几次webservice接口,都挺顺利的。昨天在脚本回放的时候发生了报错,调出日志查看返回报文信息如下:

<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Index: 1, Size: 1</faultstring>
</soap:Fault>
</soap:Body>
SOAPFault元素中<faultcode>是供识别故障的代码,<faultstring>是可供人阅读的有关故障的说明。一般还会有<faultactor>是谁引发故障的信息以及<detail>存留涉及 Body 元素的应用程序专用错误信息,不过我这里没显示。
其中SOAPFault代码一般有如下几种:

按照这张表格的信息,我的faultcode是server,应该是服务器相关问题。实际上我最终找出的原因是报文信息组成错误。
没错,说了半天其实我就是在结尾表少了一个“/”才出错的,也是粗心大意引起的……加上就不再报错啦~


关于SOAP的信息参考来源为以下地址:
http://www.w3school.com.cn/soap/index.asp




