本文目錄一覽:
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文檔的描述不斷的豐富測試場景。希望對你有所幫助。
原創文章,作者:FQING,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/317426.html