在做完基于http协议的接口测试之后,开始弄soap协议了,之前有过开发java webservice自动化框架的经验,所以我想着应该并不会很难。对于webservice的简介,服务器端和客户端的开发的简单例子前面的随笔有分享过,就不再次重复。然后在网上随便搜了下,似乎RobotFrameWork并没有提供基于soap协议的库,于是自己用python做了个简单的模块。

服务器端是用java开发的,实际上提供了wsdl文件,跟什么语言开发的不会影响客户端的调用。用python做soap的客户端,用到的是suds库,首先当然是安装suds了,执行pip install suds或者到http://pypi.python.org/pypi/suds下载压缩包,安装成功后,可以在官网上搜索它的相关文档介绍https://fedorahosted.org/suds/wiki/Documentation,然后可以开心的进行客户端开发了。


# -*- coding: cp936 -*-
#导入包from suds.client import Client
from suds.client import Client #创建客户端,与服务器端进行连接
def webservice(): url= 'http://192.168.5.45:8888/bossApi/bossws/wsService?wsdl'
client = Client(url)
#print client 能得到服务器提供的远程调用的方法
print client
return client if __name__=='__main__':
ws = webservice()
#getkeyCode是服务器端的一个方法,后面的三个是远程调用的方法
print ws.service.getkeyCode('daigg','e10adc3949ba59abbe56e057f20f883e','3025495AEE146DA3864AB81BAAF79A3E')
 

运行后,结果如下:

第一个红框内返回的是可以远程调用的所有方法,第二个红框是具体一个接口测试后返回的数据

介于是做demo演示,于是就只做了一个py文件进行调用,就做一个关键字吧。然后关键字的参数就是url,远程调用的方法,方法内的参数。而且方法名传递进来后,如果放在.的后面(ws.service.getkeyCode),ws.service.method是无效的,method已经不当字符串处理了,只能当函数名处理(js支持,一般语言都不支持),于是需要自己做个简单的映射,写完如下:

# -*- coding: cp936 -*-
from suds.client import Client def webService(url,test_method,rootuname,pwd_md5,keyCode): client = Client(url)
dic_metode={'getkeyCode':client.service.getkeyCode}
method_test = dic_metode.get(test_method)
return method_test(rootuname, pwd_md5, keyCode)

这个就可以直接在RF内导入,做一个接口的测试了(暂时只能证明可行,易用性是欠缺,但相比java之前写的代码,已经简洁了无数倍,java的稍晚复杂点,嘿嘿),在RF内导入XML(内置库)就可以对返回的标准xml数据进行解析,测试脚本和运行结果如下所示:

最新文章

  1. Angular Service和Factory应用的区别
  2. SqlMapConfig.xml
  3. [机器学习] 深度学习之caffe1——软件配置与测试
  4. Outlook~设置
  5. iOS app 程序启动原理
  6. 用这个插件jquery.raty.js————用于星星评价(这个案例用于后台传数据给我,前台显示星星个数)
  7. Git基本命令(一)
  8. Aspectj是什么
  9. 02-Java 数组和排序算法
  10. 如何让Qt 的程序等待一段时间(等待的同时,还让主界面刷新图片)good
  11. 同一路由器不同vlan之间的通信(一)
  12. 算法 《霍纳的方法java实践》
  13. 04 入门 - ASP.NET MVC应用程序的结构
  14. windows 安装mysql 5.7的正确姿势
  15. Objective-C Core Animation深入理解
  16. AWVS结果分析与实践-XSS
  17. 一般处理程序HttpHandler的应用
  18. Python学习笔记_05:使用Flask+MySQL实现用户登陆注册以及增删查改操作
  19. java基础---->Base64算法的使用
  20. Roslyn 的确定性构建

热门文章

  1. 如何使用命令行编译以及运行java文件
  2. JSON value
  3. 数据库之SQL语法
  4. odoo XMLRPC 新库 OdooRPC 尝鲜
  5. H5学习小结——div+css创建电子商务静态网页
  6. HTML input文本框设置和移除默认值
  7. Xss里img标签的一些利用
  8. 本内容中发现无效字符。处理资源 'file:///C:/Users/XDJ/Desktop/1111/press.xml' 时出错。第 5 行,位置: 11 <author>ƽ
  9. BizTalk开发系列(三十五) TCP/IP 适配器
  10. NEC学习 ---- 模块 -多行式面包屑导航