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))