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数据进行解析,测试脚本和运行结果如下所示:
RobotFrameWork WebService Soap接口测试 (一)的更多相关文章
- RobotFrameWork webservice soap接口测试 (二)
上一篇提到做soap接口测试自己简单的写了个py,然后就简单的实现了个客户端能对远程接口进行调用,对返回的数据进行解析,可后面想着也觉得不对劲,soap协议虽说不像http协议那么普及,但是现在很多公 ...
- webService(SOAP)性能测试脚本
本文以天气预报的webService为基础进行学习 webService地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx ...
- 浅谈WebService SOAP、Restful、HTTP(post/get)请求
http://www.itnose.net/detail/6189456.html 浅谈WebService SOAP.Restful.HTTP(post/get)请求 2015-01-09 19:2 ...
- Jmeter实现webservice的接口测试
前提条件 测试的URL:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx 测试接口:getSupportCityString 获取城市的编码:htt ...
- 彻底理解webservice SOAP WSDL
WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...
- 理解WebService SOAP WSDL
WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...
- Webservice SOAP传输序列化总结 以及webservice之序列化以及反序列化实例
一.所有Webservice中传递的对象都必须能够序列化,这个是作为在网络之间传输的必要条件.XML WebService和SOAP标准支持的数据类型如下: 1.基本数据类型. 标准类型,如:int ...
- [Java] webservice soap,wsdl 例子
java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和 ...
- 【🉐】 彻底理解webservice SOAP WSDL
原文: http://wenku.baidu.com/view/f87b55f19e31433239689314.html WebServices简介 先给出一个概念 SOA ,即Service Or ...
随机推荐
- DockerFile 参数详解
Docker 指令: From --- ENV ---设置环境变量ENV App_DIR /appp Add 和 Copy 可以复制文件到容器里面 .区别 Add 可以写网络的链接地址 Add 支持解 ...
- 向linux内核中添加外部中断驱动模块
本文主要介绍外部中断驱动模块的编写,包括:1.linux模块的框架及混杂设备的注册.卸载.操作函数集.2.中断的申请及释放.3.等待队列的使用.4.工作队列的使用.5.定时器的使用.6.向linux内 ...
- JAVA泛型? T K V E等代表的意思
? 表示不确定的java类型. T 表示java类型. K V 分别代表java键值中的Key Value. E 代表Element. Object跟这些东西代表的java类型有啥区别呢? Obje ...
- 李洪强漫谈iOS开发[C语言-050]-doWhile统计用户输入字符
- html中隐藏域hidden的作用介绍及使用示例
基本语法: <input type="hidden" name="field_name" value="value"> 作用: ...
- SBT Assembly - Deduplicate error & Exclude error
sbt assembly java.lang.RuntimeException: deduplicate: different file contents found in the following ...
- spark reduce类操作
reduce类函数分析: ---------------------------------------------------------------------------- 待补全 ------ ...
- Thinkphp框架感悟(一)
一.assign() /** * 分析: * 此处是Controller类里面的assign方法,我们一般写的控制器所调用的assign方法就是调的这个. * 而这个方法就干了三件事:1.获取传过来的 ...
- DBA日常工作内容和职责
1.统计数据库总容量 按表空间分别统计: 总容量(单位为M): 2.计算用户下所有对象大小 3计算USERS表空间的大小 4计算该USERS表空间对象大小 ---------------------- ...
- github标记
<template> <a href="https://github.com/lmk123/Runner" class="github-corner&q ...