webservice接口测试wsdl,参数是xml格式。python,入参转化成str,返回值转化成dict调用
1、用SoapUI测试webservice接口,传入参数是xml格式时。xml格式需要将xml的外围增加<![CDATA[xml]]>
2、但是用python去做webservice测试,调用函数去传参时,直接将xml作为字符串的格式传入即可。
其中,webservice请求的返回值类型是:<class 'suds.sax.text.Text'>,
需要用json.loads(escape(result))转成字典的格式:<class 'dict'>。去引用
具体展示如下:
注意SoapUI:xml的格式需要将xml外围增加<![CDATA[xml]]>
from suds.client import Client import json from xml.sax.saxutils import escape class WebserviceSuds(): def webservice_suds(self,url,msg,operetions): '''url:webservice的wsdl请求地址 msg:传入的参数 注:直接把xml参数当成一个字符串来传递就OK了 operetions:接口操作方式''' # 创建一个webservice对象,来调用webservice里面的各类接口 c=Client(url) # print(c) # .service去调用接口函数方法method, 注:直接把xml参数当成一个字符串来传递就OK了 # 注意SoapUI:xml的格式需要将xml外围增加<![CDATA[xml]]> # 注册接口、查询接口、查询调阅接口 if operetions=='register': result=c.service.register(msg) elif operetions=='query': result=c.service.query(msg) else: result=c.service.querySubscribe(msg) # escape转换成字符类型,json。loads()转成字典 result = json.loads(escape(result)) return result #factory,去查看参数情况 # register=c.factory.create("register") # print(register)
webservice接口的返回分析:
https://www.cnblogs.com/xueli/p/6145211.html(webservie返回接口信息,详解)
https://www.cnblogs.com/nottobe/p/5718823.html
https://www.cnblogs.com/xiaomingzaixian/p/7286793.html(xml转化escape成字符串,再转字典)
https://www.cnblogs.com/xiaomingzaixian/p/7286793.html(json()的使用)
传入参数为:xml
xml.sax.saxutils.escape.
xml格式转化字符串,再用json.loads()转化成字典
<class 'suds.sax.text.Text'>
from xml.sax.saxutils import escape import json
# 转换成字符串类型 print(type(escape(res))) # 转换成字典类型 create_response = json.loads(escape(res)) print(create_response) print(type(create_response))