zoukankan      html  css  js  c++  java
  • RobotFrameWork WebService Soap接口测试 (一)

         在做完基于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数据进行解析,测试脚本和运行结果如下所示:

        

  • 相关阅读:
    mysql BETWEEN操作符 语法
    mysql IN操作符 语法
    mysql LIKE通配符 语法
    mysql TOP语句 语法
    mysql DELETE语句 语法
    mysql Update语句 语法
    mysql INSERT语句 语法
    mysql ORDER BY语句 语法
    mysql OR运算符 语法
    mysql AND运算符 语法
  • 原文地址:https://www.cnblogs.com/loleina/p/5489309.html
Copyright © 2011-2022 走看看