本文目录一览:
python suds wsdl 用户么
最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了
1.安装suds
mac: sudo pip install suds
linux: easy_install suds
也可以通过去官网下载suds代码,再本地安装
2. 引用初始化
1 from suds.client import Client
2 url = ''
3 client = Client(url)
4 print client
5
6 Suds ( ) version: 0.4 GA build: R699-20100913
7
8 Service ( Kuaidi ) tns=""
9 Prefixes (1)
10 ns0 = ""
11 Ports (2):
12 (KuaidiSoap)
13 Methods (1):
14 KuaidiQuery(xs:string Compay, xs:string OrderNo, )
15 Types (1):
16 ApiSoapHeader
17 (KuaidiSoap12)
18 Methods (1):
19 KuaidiQuery(xs:string Compay, xs:string OrderNo, )
20 Types (1):
21 ApiSoapHeader
22
对url做一下说明,一般要确认给的wsdl地址是正常模式,地址打开一般为xml格式而有些服务是做成了html模式,这个会导致实例化或者调用方法的时候出现xml解析异常。
3. 方法调用
2中的client打印出来就可以知道,该webserviece服务定义了什么方法,方法需要什么参数,声明了什么信息等(如头信息,ApiSoapHeader),方法可以通过client.serviece直接调用
client.service.KuaidiQuery(Company='EMS', OrderNo='1111')
(KuaidiQueryResult){
API =
(API){
RESULTS = "0"
MESSAGE = "接口查询成功"
}
}
而声明的头信息,则可以用factory的方式去实例化
header = client.factory.create('ApiSoapHeader')
print header
(ApiSoapHeader){
APICode = None
APIKey = None
}
header.APICode = '123'
header.APIKey = 'key123'
print header
(ApiSoapHeader){
APICode = "123"
APIKey = "key123"
}
头信息需要用set_options方法设置
client.set_options(soapheaders=[header,])
python 怎样生成wsdl
.如果wsdl比较复杂,比如有多个service和port,使用client.service[service][port].getBank(),
如果不指定,默认是第一service的第一个port的第一个method
下面的就可以写成这样
client.service['OtherBLZService']['soap'].getBank()
client.service[1][0].getBank()
Suds - version: 0.3.7 build: (beta) R550-20090820
Service (BLZService) tns="
Prefixes (1)
ns0 = "
Ports (2):
(soap)
Methods (1):
getBank(xs:string blz, )
(soap12)
Methods (1):
getBank(xs:string blz, )
Types (5):
getBankType
getBankResponseType
getBankType
getBankResponseType
detailsType
Service (OtherBLZService) tns="
Prefixes (1)
ns0 = "
Ports (2):
(soap)
Methods (1):
getBank(xs:string blz, )
(soap12)
Methods (1):
getBank(xs:string blz, )
Types (5):
getBankType
getBankResponseType
getBankType
getBankResponseType
detailsType
Python 如何测试WebService接口
WebService是什么
简单的说WebService是一个SOAP(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言(通过 xml 描述)间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。(概念性的东西大家可以自行搜索补充)
测试环境准备
python2.7 + httplib 内置库
数据准备
这里就定义了两个case:
case1是一个正向case, 根据正确的nameid查询用户信息。
case2是一个反向case, 给出一个错误的nameid 查询用户信息。
然后将这两个case 存放到一个dict 中,最后引入代码里面进行请求使用。
data.py文件内容如下:
test.py文件内容如下:
总结 :
通过以上简单的几步就可以完成WebService Api的测试,对于示例中的测试数据大家可以根据Api文档的描述不断的丰富测试场景。希望对你有所帮助。