天天看點

[QTP] 資料驅動測試

1. 資料驅動測試方法

資料驅動測試方法要解決的核心問題是把資料從測試腳本中分離出來,進而實作測試腳本的參數化。資料驅動測試通常按以下步驟進行:

1) 參數化測試步驟的資料,綁定到資料表格中的字段。

2) 編輯資料表格,在表格中編輯多行測試資料。

3) 設定疊代次數,選擇資料行。

在qtp中,可以使用多種方式來對測試腳本進行參數化,資料表參數化是其中一種重要的方式,此外還有環境變量參數化、随機數參數化等。

首先,把測試步驟中的輸入資料進行參數化,例如搜尋關鍵詞。選擇輸入關鍵詞所在的步驟行,單擊"value"列所在的單元格,單擊單元格旁邊的"<#>"按鈕,如下所示:

[QTP] 資料驅動測試

選擇"parameter"選項,單擊"ok"按鈕,在關鍵字視圖中可以看到"value"值已經被參數化,替換成了"datatable("p_item", dtglobalsheet)",如下所示:

[QTP] 資料驅動測試

選擇菜單"view > data table",可以看到在"p_text"列中有一個預設資料"軟體測試",這是參數化之前錄制的腳本中的常量,可以在"p_text"列中繼續添加更多的測試資料,如下所示:

[QTP] 資料驅動測試

測試腳本中的下一個步驟是檢查輸入框,同樣需要進行适當的參數化,單擊檢查點所在測試步驟的"value"列中的單元格,單擊旁邊的"√"按鈕,所下所示:

[QTP] 資料驅動測試

選擇"value"屬性,再選擇"parameter"選項,單擊旁邊的編輯按鈕将"name"改為"p_text",單擊"ok"按鈕,即可完成檢查點的參數化設定,如下所示:

[QTP] 資料驅動測試

在運作測試腳本之前,還要做一些設定,選擇菜單"file > settings",切換到"run"頁面,在"data table iterations"中,可以設定資料表格的疊代方式,如下所示:

[QTP] 資料驅動測試

2. action測試輸入參數化

對于重複使用的測試用例,可以轉換成公共用例,适當參數化後,可被其他測試用例調用。在qtp中,可以把action的輸入适當參數化,轉換成可重用的測試步驟。

選擇action所在的行,單擊滑鼠右鍵,選擇菜單"action properties",切換到"parameters"頁,單擊"+"按鈕,添加調用action需要輸入的參數名和類型,如下所示:

[QTP] 資料驅動測試

添加完參數後,回到關鍵字視圖,單擊需要參數化步驟的"value"列的單元格旁邊的"<#>"按鈕,在"parameter"中,選擇"test/action parameter",然後選擇剛編輯好的參數,單擊"ok"按鈕,如下所示:

[QTP] 資料驅動測試

完成action的參數化後,就可以在其他action中調用這個action,方法是在action的測試步驟中,選擇菜單"insert >  call to existing action"插入現有的action,單擊"ok"按鈕,即可插入對其他action的引用,如下所示:

[QTP] 資料驅動測試

選中插入的action所在的行,單擊滑鼠右鍵,選擇菜單"action call properties",在"parameter value"頁中,為每一個參數設定輸入的參數值,也可以單擊"value"列旁的"<#>"按鈕,為輸入綁定到data table中的資料,如下所示:

[QTP] 資料驅動測試

3. 使用環境變量的參數化

在qtp中,除了上述的幾種參數化測試方式外,還可以使用環境變量來進行測試的參數化。在使用環境變量前,需要定義好環境變量,選擇菜單"file > settings",切換到"environment"頁,如下所示:

[QTP] 資料驅動測試

在"variable type"中選擇"user-defined",單擊旁邊的"+"按鈕,定義環境變量名和輸入的值,如下所示:

[QTP] 資料驅動測試

定義好環境變量并設定好其值後,就可以在測試步驟中使用該環境變量,單擊測試步驟"value"字段旁邊的"<#>"按鈕,在"parameter"中選擇"environment",然後選擇對應的環境變量,單擊"ok"按鈕,如下所示:

[QTP] 資料驅動測試

這樣,qtp在運作測試腳本時,就會讀取測試步驟所綁定的環境變量值,來執行相應的資料輸入。選擇菜單"file > setting",在界面中單擊"export"按鈕,可以把目前定義的環境變量導出到xml檔案中,如下所示:

[QTP] 資料驅動測試

對于導出的xml檔案,可以再次導入,選中"load variables and values from external file",選擇導出的xml檔案即可,如下所示:

[QTP] 資料驅動測試