1. 程式人生 > 其它 >python httplib_Python 如何測試WebService介面

python httplib_Python 如何測試WebService介面

技術標籤:python httplibsoapui測試webservice介面vb webservice 自動轉xmlwebservice介面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檔案內容如下:

#正向的casecase1='''<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"           xmlns:xsd="http://www.w3.org/2001/XMLSchema">          <soap:Header>            <OGHeader xmlns="http://webservices.micros.com/og/4.3/Core/" transactionID="2019062118114433750450">              <Origin entityID="OW1" systemType="WEB"/>              <Destination entityID="TI" systemType="ORS"/>            OGHeader>          soap:Header>          <soap:Body>            <FetchProfileRequest xmlns="http://webservices.micros.com/oqq/5.1/Name.wsdl">              <NameID type="INTERNAL">186217986NameID>            FetchProfileRequest>          soap:Body>        soap:Envelope>'''
#反向的casecase2='''<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"           xmlns:xsd="http://www.w3.org/2001/XMLSchema">          <soap:Header>            <OGHeader xmlns="http://webservices.micros.com/og/4.3/Core/" transactionID="2019062118114433750450">              <Origin entityID="OW1" systemType="WEB"/>              <Destination entityID="TI" systemType="ORS"/>            OGHeader>          soap:Header>          <soap:Body>            <FetchProfileRequest xmlns="http://webservices.micros.com/oqq/5.1/Name.wsdl">              <NameID type="INTERNAL">1862179863NameID>            FetchProfileRequest>          soap:Body>        soap:Envelope>'''dict1={"success":case1,"fail":case2}

test.py檔案內容如下:

#coding=utf-8import httplibfrom data import dict1def Featchinfo(): url="test.beat.com" port=9700 path="/oqq_ws_51/Name.asmx" header={'Content-Type' : 'text/xml; charset=utf-8'} conn = httplib.HTTPConnection(url,port,timeout=10) for key,value in dict1.items():     conn.request('POST',path,value.encode('utf-8'),header)     response=conn.getresponse()     resp=response.read()     if(key=="success" and "resultStatusFlag=\"SUCCESS" in str(resp)):         print("case1 驗證通過")     elif(key=="fail" and "resultStatusFlag=\"FAIL" in str(resp)):         # print(resp)         print("case2 驗證通過")if __name__ == '__main__': Featchinfo()
結果輸出:case2 驗證通過case1 驗證通過

總結 :通過以上簡單的幾步就可以完成WebService Api的測試,對於示例中的測試資料大家可以根據Api文件的描述不斷的豐富測試場景。與君共勉,每天進步一點點。

友情提示:“無量測試之道”原創著作,歡迎關注交流,禁止第三方不顯示文章來源時轉載。更多原創文章請掃碼關注檢視,交流與合作請聯絡:[email protected]

QQ技術交流群:41564936

19af561d2702540017bfbac7fca90850.png

Python 實現Excel自動化辦公《上》

Python 實現Excel自動化辦公《中》

Python 實現Excel自動化辦公《下》

Python API自動化測試實操

Python 測試框架之 Unittest & Pytest

Python 爬蟲之Scrapy《下》

Python 爬蟲之Scrapy《中》

Python 一招搞定禪道提交bug

Shell 程式設計核心技術《四》

Shell 程式設計核心技術《三》

Git 必知必會《上》

Git 必知必會《下》

d8704319f6372d8a2419d1fbea15c0f1.png

77dfe0535591740279f78e587623e690.png