Python请求webserver服务用到的suds、suds-jurko、zeep库相关踩坑指南

webservice是什么

具体是个什么不用说那么多,一言蔽之就是:

WebService遵循SOAP协议通过XML封装数据,然后由Http协议来传输数据

在测试中往往只是需要我们请求webservice的接口,在常规的http接口中python直接用Requests库就能解决,但是webservice没办法用Requests来请求。

怎么用python请求webservice

python请求webservice有三个常用库分别是

  • suds
  • suds-jurko
  • zeep

suds、suds-jurko、zeep有什么区别

  • suds是python2 的库,python3安装大概率报错

    ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
    
  • suds-jurko 为了解决suds的报错,有个老哥叫jurko整了个分支,这个是百度上文章最多的,也是教程最多的。但是这个分支有个大问题这个分支这个老哥老早就不维护了
    在这里插入图片描述
    这就引出另外一个问题有一些情况下会报错 suds.transport.TransportError: HTTP Error 500这个问题不是100%因为suds-jurko引起的,但是我遇到了,换了zeep就解决了。

  • zeep 是个很新的库,实际用下来感觉跟suds差不多吧,有一些地方不同
    在这里插入图片描述
    基础使用差别不大,可以使用python -mzeep http//url/wsdl直接列出可用的服务和方法来个官方的例子

python -mzeep http://www.soapclient.com/xml/soapresponder.wsdl

>>     
Bindings:
     Soap11Binding: {http://www.SoapClient.com/xml/SoapResponder.wsdl}SoapResponderBinding

Service: SoapResponder
     Port: SoapResponderPortType (Soap11Binding: {http://www.SoapClient.com/xml/SoapResponder.wsdl}SoapResponderBinding)
         Operations:
            Method1(bstrParam1: xsd:string, bstrParam2: xsd:string) -> bstrReturn: xsd:string

拿到这个后面就很简单了呗跟suds一样的用法

结论

在实际使用中其实suds-jurko的教程和文章最多,因为suds只支持python2,zeep比较新。所以可以先研究会了suds-jurko再去研究zeep,毕竟没人维护的东西,不知道什么时候就用不了了。所以
测试人员使用: 可以用suds-jurko,做做测试还是没问题的。
测试开发人员: 去看看Zeep的官方文档吧。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值