python在webservice接口測試中的應用
接口測試第二波,webservice接口來咯,歡迎各位小夥伴吐槽~
本次拿免費的互聯網國內手機號碼歸屬地查詢WEB服務webservice接口做例子,當然有很多免費webservice接口可以供大家使用,百度一下就有N多,手機號碼歸屬地查詢wsdl地址如下:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
打開後可以看到有一個getMobileCodeInfo方法,入參是一個電話號碼,當然也可以通過python調用來看到,接下來會介紹。使用python的suds模塊,這是一個第三方模塊,需要安裝,如果安裝了setuptools或pip,可以直接用easy_install 或pip命令安裝,easy_install suds或pip install suds即可,如果沒有安裝,可以去官網上下載,http://pypi.python.org/pypi/suds,下載後進入suds目錄python setup.py install 即可。
由於每個接口方法都是不一樣的,入參也不一樣,所以沒有辦法像http rest接口一樣寫成一個通用類,只能在測試的時候修改接口的方法名和入參了。
首先我們來看一下這個wsdl下都有哪些方法:from suds.client import Client#導入suds.client 模塊下的Client類
client = Client()#創建一個wsdl對象
print client#打印這個對象的詳細信息打印出來的結果如下:
Suds ( https://fedorahosted.org/suds/ ) version: 0.4 GA build: R699-20100913
Service ( MobileCodeWS ) tns="http://WebXml.com.cn/"
Prefixes (1)
ns0 = "http://WebXml.com.cn/"
Ports (2):
(MobileCodeWSSoap)
Methods (2):
getDatabaseInfo()
getMobileCodeInfo(xs:string mobileCode, xs:string userID, )
Types (1):
ArrayOfString
(MobileCodeWSSoap12)
Methods (2):
getDatabaseInfo()
getMobileCodeInfo(xs:string mobileCode, xs:string userID, )
Types (1):
ArrayOfString
=================================================
從上面的結果可以看到有兩個方法一個是getDatabaseInfo()沒有入參,一個是getMobileCodeInfo(),入參是一個字符串,手機號和用戶id,免費用戶的用戶id可以不填,下面就是用來測試的代碼了,註釋也很詳細:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
from suds.client import Client #導入suds.client 模塊下的Client類
Mobile_url="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl"#手機號碼歸屬地 |
python在webservice接口測試中的應用