写点什么

软件测试 | spyne 开发接口

  • 2023-05-17
    北京
  • 本文字数:1044 字

    阅读完需:约 3 分钟

比起 Web Services 接口的调用,我更好奇 Web Services 接口是如何开发的。因为通过前面的概念介绍可以发现,它看上去是一个非常复杂的技术。但在 Python 中能找到开发 Web Servirces 应用的库,还真有!

soaplib 是一个简单的、易于扩展的 SOAP 库,是用于创建和发布 SOAP Web Service 的专业工具。

spyne 是一个输出与体系结构无关的 RPC 库,专注于公开服务并且具有良好定义的 APIS 它是到目前还在维护的 Web Services 应用开发库,它的使用方法和 soaplib 一样简单,并且支持 Python3.

PyPI 地址:https://pypi.python.org/pypi/spyne

官方网站:http://spyne.io/

参考 spyne 官方文档,spyne 支持多种输入协议与输出协议,这里以 SOAP1.1 为例。

from spyne import Application,rpc,ServiceBase,Iterable,Interger,Unicodefrom spyne.server.wsgi import WsgiApplicationfrom spyne.protocol.soap import Soapllclass HelloWorldService(ServiceBase):   @rpc(Unicode,Integer,_returns=Iterable(Unicode))   def say_hello(ctx,name,times):        for i in range(times):           yield 'Hello,%s' % name
application = Application([HelloWorldService], tns='spyne.examples.hello', in_protocol=Soapll(validator='1xml'), out_protocol=Soapll())
if _name_ == '_main_': # You can use any Wsgi server.Here,we chose # Python's built-in wsgi server but you're not # supposed to use it in production. from wsgiref.simple_server imort make_server wsgi_app = WsgiApplication(application) server = make_server('192.168.127.131',8000,wsgi_app) server.server_forever()
复制代码

建议该程序在 Linux 下运行。这里开发了一个 say_hello()的接口,它需要两个参数:name 和 times。接口会对 name 返回 times 次的“hello,name”,相当简单。

192.168.127.131 为运行程序的主机 IP 地址,8000 为端口号,作为一个 Web Servive 服务器。

启动 Web Services 服务。

fnngj@ubuntu:~$ python3 soap_server.py
复制代码

前面已经介绍了 Suds-jurko 的用法,这里直接用它来调用接口。

from suds.client import Client
url = "http://192.168.127.131:8000/?wsdl"client = Client(url)result = client.service.say_hello("bugmaster",3)print(result)
复制代码

执行结果

> python3 soap_client3.py(stringArray){   string[] =     "Hello,bugmaster",     "Hello,bugmaster",     "Hello,bugmaster",}
复制代码

搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | spyne开发接口_测试_测吧(北京)科技有限公司_InfoQ写作社区