接口測試工具-目錄
Web Service簡介
Web Service 是一種跨平台RPC(遠程方法調用)解決方案。基於SOAP協議,使用XML這種跨平台語言傳輸對遠程方法的調用信息及返回結果,並提供WSDL接口描述服務。
Web Service主要概念如下:
- SOAP:簡單面向對象協議,基於XML語言,使用HTTP協議傳輸
- XML:可擴展標記語言,同JSON一樣是一種跨平台語言
- WSDL:Web Service服務描述語言,提供遠程對象的調用描述信息(類似於接口文檔,XML格式)。
SOAP協議
SOAP協議基於XML語言格式。SOAP消息體,首先必須有個信封(Envelope),信封中可以有信息頭(Header)和信息體(Body),其中Body中還可以包含錯誤信息(Fault),基本格式如下:
<!-- 信封固定格式 指定命名空間為soapenv -->
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2001/12/soap-envelope" soapenv:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soapenv:Header> <!--信息頭 可選,可寫成但標簽-->
......
</soapenv:Header>
<soapenv:Body> <!--信息體 實際調用內容-->
......
</soapenv:Body>
</soap:Envelope>
SoapUI Pro 簡單使用
SoapUI Pro是一款接口功能測試工具,支持REST和SOAP類型的接口。SoapUI Pro不僅支持接口功能測試,還支持接口壓測(Load Test)和安全測試。
SoapUI Pro是商業軟件。對應有免費版的Soap UI,在官方網站下載安裝即可。
以下通過一個項目演示Soap UI Pro的簡單使用
新建項目
示例接口:http://115.28.108.130:4000/?wsdl
對於SOAP類型的接口,由於Postman等不具備將wsdl接口信息解析成對象描述的功能,使用SoapUI Pro更方便。
新建SOAP項目,填寫wsdl地址,勾選創建Test Suite,如圖2.55所示。
新建SOAP項目時可以勾選Create a Test Suite for the imported WSDL,為該項目自動創建一個測試套件,每個接口服務創建一個對應的測試用例,如圖2.56所示。
項目Application下的接口列表可以用來調試接口,測試套件中對應的測試用例則可以使用指定數據對接口進行測並添加特定的斷言。
調試接口
在Application每一個接口下會自動生成一個用於調試的Request 1。點擊后,主題區左側為請求區,右側為響應區。在請求區中,切換到Form選項卡,填寫請求參數,點擊請求區左上角綠色的三發送箭頭即可發送請求,右側響應區會顯示響應結果,並可通過切換選項卡使用不同形式查看。如圖2.57所示。
測試用例及斷言
調試完接口,即可編寫對應的測試用例。切換到測試套件中該接口對用的用例中,在請求區填寫使用的測試數據,在下方Assertions選項卡工具欄左上角點擊添加,選擇Property Content,選擇Contains包含,填入響應應包含的字段“添加成功”。如圖2.58所示。
4.批量運行
在對所有用例設置完請求數據和斷言后,便可運行整個測試套件。在測試套件上點擊右鍵,選擇Launch Test Runner,啟動測試運行器,在Reports選項卡中勾選Exports all results(not only errors),導出所有結果,並填寫導出路徑,如圖2.59所示。
點擊Launch按鈕即可開始運行,如圖2.60所示。
覆蓋率報告
專業版的SoapUI Pro還支持生成測試覆蓋率報告,即勾選Generrate WSDL Coverage report(SoapUI Pro only),勾選Opens generated report(s) in browser(SoapUI Pro only)后,在運行結束時會自動打開覆蓋率報告。如圖2.61所示。
負載測試
Soap UI Pro還支持負責測試。測試套件中每個接口下會有一個Load Test 1,點擊該測試,在右側的主體區輸入線程數、選擇測試,輸入Limits運行時間,點擊左上角的運行按鈕即可對該接口進行壓測。如圖2.62所示。
安全測試
SoapUI Pro還支持對接口進行安全測試。在測試套件中指定接口下右鍵點擊Security Test(0),新建安全測試,使用Automatic自動方式。點擊Next,如圖2.63所示。
在生成的安全測試項列表頁面,點擊左上角的運行按鈕即可開始測試,如圖2.64所示。