天天看點

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

本節書摘來自異步社群《軟體功能測試自動化實戰教程》一書中的第6章6.7節檔案資料源的資料驅測試,作者51testing網 , 周煥來 , 賈海濤,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

6.7 檔案資料源的資料驅測試

軟體功能測試自動化實戰教程

執行資料驅測試前要先定義測試所需的資料源,資料驅動測試的資料源除了uft自帶的datatable之外,可以是文本檔案、excel檔案、資料庫表格等。本小節主要列舉了以文本檔案或者以excel檔案為代表的檔案資料源的資料驅動測試執行個體。

6.7.1 文本檔案作為資料源

在本執行個體中以uft自帶訂票系統為例講解如何使用文本檔案存儲資料源實作資料驅動測試。

首先,錄制訂票系統的業務流程,如圖6-44所示:

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

其次,用記事本編輯一個文本檔案作為測試的資料源,在文本檔案中的每一行測試資料包括了訂票系統中預訂航班的時間、航班預訂的起點、航班預訂的終點及航班表名稱,它們代表了調用訂票系統做的一個測試動作。這四個輸入資料采用分号将其分隔開,把檔案儲存為datacase.txt檔案存放于c盤中,格式如下:

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

然後,在錄制好的uft腳本中編輯腳本實作文本檔案作為資料源的資料驅動測試。修改後的uft腳本如下:

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

在該腳本中,先建立filesystemobject對象,該對象是windows檔案系統對象,它可以将一系列操作檔案和檔案夾的動作通過調用對象本身的屬性直接實作。在本執行個體中采用的是opentextfile函數對檔案進行讀、寫或追加。再采用systemutil對象的run方法打開uft中的訂票系統,在循環中通路資料檔案,每次讀入一行資料直到最後一行,每一行采用split函數按分号“;”切割取到每個變量對應的資料,在本執行個體訂票系統的腳本中預訂航班的時間資料、航班起點、航班終點、名稱分别就可以用datastr(0)、datastr(1)、datastr(2)、datastr(3)替換。

編輯完腳本後,運作uft就可以實作外部資料源的資料驅動測試,由于在datacase.txt檔案中包括了3行資料,則訂票系統一共要運作3次。運作結果如圖6-45、圖6-46和圖6-47所示。

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試
《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試
《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試
《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

6.7.2 excel作為資料源

用excel組織測試資料是采用外部資料源進行資料驅動測試中很常見的一種方法。采用文本檔案作為資料源的一個不足點就是使用者需要自己定義資料之間的分隔符,并且在讀入資料時用split函數來進行分割。然而采用excel檔案作為資料源則可以避免這個不足,因為excel本身就是用于資料表格存儲的,每一個資料采用一個單元格存儲。在本執行個體中仍然以uft自帶訂票系統為例講解如何使用excel檔案存儲資料源實作資料驅動測試。在本執行個體中,業務流程與文本檔案作為外部資料源的資料驅動測試一樣,是以它的腳本如圖6-44所示。

然後設計資料源,在excel表格中每一行測試資料包括了訂票系統中預訂航班的時間(data_of_flight)、航班預訂的起點(fly_from)、航班預訂的終點(fly_to)及名稱(custom_name),執行表格中的一行就代表訂票系統的一個測試動作。将excel中資料3行資料以名為datacase1.xls儲存于c盤中,excel中資料格式如圖6-49所示。

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

其次,在錄制好的uft腳本中再次編輯腳本實作excel檔案作為資料源的資料驅動測試。修改後的uft腳本如圖6-50所示。

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

在該執行個體腳本中利用了excel的com接口進行程式設計,首先在腳本中建立了excel.application對象。application對象是excel對象模型中最高層級的對象,代表excel應用程式自身,它包括工作簿、工作表、單元格集合及它們包含的資料。利用workbooks對象的open方法打開工作簿的檔案名,通過設定對應的工作表以後就可以通過worksheet.cells 屬性找到工作表中的對象變量。那麼,訂票系統中測試的對象預訂航班的時間(data_of_flight)、航班預訂的起點(fly_from)、航班預訂的終點(fly_to)及名稱(custom_name)分别用sheet.cells(rowcout,1)、sheet.cells(rowcout,

2)、sheet.cells(rowcout,3)、sheet.cells(rowcout,4)替換,rowcout代表了excel的行數。最後,循環通路資料檔案,每次讀入一行資料直到運作到excel表中的末尾。

編輯完腳本後,運作uft實作excel檔案外部資料源的資料驅動測試,由于在datacase1.xml檔案中包括了3行資料,則訂票系統一共要運作3次。運作結果如圖6-51、圖6-52和圖6-53所示。

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試
《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試
《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

最後,檢視運作結果,如圖6-54所示。

《軟體功能測試自動化實戰教程》—第6章6.7節檔案資料源的資料驅測試

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。