本章中學習如下內容:
1) 使用DataSource調用Excel中的數據給接口參數化;
2) 使用DataSource Loop使得測試用例根據Excel中的取值循環執行。
1.1 前提條件
這次我們使用“國內飛機航班時刻表 WEB 服務”接口來練手,因為接口中的方法“getDomesticAirlinesTime ”需要輸入多個參數,正符合我們的要求。
下面我們看一下方法“getDomesticAirlinesTime ”的介紹:
獲得航班時刻表 DataSet 輸入參數:startCity = 出發城市(中文城市名稱或縮寫、空則默認:上海);lastCity = 抵達城市(中文城市名稱或縮寫、空則默認:北京);theDate = 出發日期(String 格式:yyyy-MM-dd,如:2007-07-02,空則默認當天);userID = 商業用戶ID(免費用戶不需要) 返回數據:DataSet,Table(0)結構為 Item(Company)航空公司、Item(AirlineCode)航班號、Item(StartDrome)出發機場、Item(ArriveDrome)到達機場、Item(StartTime)出發時間、Item(ArriveTime)到達時間、Item(Mode)機型、Item(AirlineStop)經停、Item(Week)飛行周期(星期) |
getDomesticAirlinesTime 的請求如下:
我們輸入始發城市和終止城市得到如下響應:
最后我們把getDomesticAirlinesTime 加到測試用例中,如下圖所示,准備工作就結束了。
1.2 准備Excel文件
根據getDomesticAirlinesTime 的請求,創建一個Excel文件,內容如下,時間和userID都不參數化,留空,采用默認值。
1.3 設置DataSource
注意:免費版的SoapUI是沒有DataSource這個功能的。
1) 在測試用例中添加步驟DataSource,如下圖
2) 配置DataSource數據來源,如下圖選擇數據來源為“Excel”並填寫EXCEL數據的相關信息。
3) 在DataSource中添加參數,相對應EXCEL有幾個就添加幾個參數,一一對應,如下圖所示:
4) 運行DataSource取得Excel中的參數值,如下圖所示,取兩2行數據。
當然,也可以設置取哪一行到哪一行的數據,如下圖所示:
1.4 接口中參數化
配置好DataSource好,就可以在接口中進行參數化了,如下圖所示,測試用例中打開“getDomesticAirlinesTime”選擇要參數化的地方 > 右鍵選擇“Get Data..” > 選擇剛才配置的DataSource > 再選擇對應的參數。
如下,已配置好參數(其實我們手寫這個代碼也可以):
1.5 運行測試用例
如下圖,打開TestCase運行測試
在“TestCase Log”雙擊步驟“getDomesticAirlinesTime”,打開“Message Viewer”窗口,可以檢查請求信息中的參數值,如下圖所示,與Excel中的值一至。
1.6 使用DataSource Loop循環取值
1) 新建步驟DataSource Loop
2) 配置DataSource Loop,如下圖
3) 配置好DataSource Loop后還需要調整一下步驟順序,正確的步驟應當是“數據源---請求----數據源循環”。如下圖是我調整好的步驟順序:
4) 最后運行TestCase,如下圖在日志中可以看到接口循環執行了。
5) 最后還要說一點,我們可以設置TestCase的屬性,使得在當前循環不通過時,跳到下一個循環(循環執行的時候這個比較重要)。如下圖,打開TestCase option窗口,去掉“Abort test if an error occurs”的構選。