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

 

posted @ 2019-04-23 15:20  彼岸xy  阅读(2157)  评论(0编辑  收藏  举报