SoapUI:使用Excel進行參數化


本章中學習如下內容:

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”的構選。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM