RobotFrameWork WebService Soap接口测试 (一)

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

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

    

 
 
# -*- 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')
 

     运行后,结果以下:web

 第一个红框内返回的是能够远程调用的全部方法,第二个红框是具体一个接口测试后返回的数据       服务器

        介因而作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数据进行解析,测试脚本和运行结果以下所示:函数

相关文章
相关标签/搜索