本文介紹了一種改進的方法,在 IBM Rational Functional tester (RFT) 錄制的腳本中采用代碼和配置文件來啟動應用程序,每次跑腳本前,測試人員只需要打開配置文件設好 build 運行程序的路徑,就完成了配置過程。通過該方式也可以使用命令行來運行測試腳本,使自動化測試成為可能。
IBM® Rational® Functional Tester (RFT) 是 IBM 推出的自動化測試工具,借助這一工具,用戶可以錄制測試過程產生測試腳本,或者自己編寫測試腳本以獲取更多的靈活性,然后回放這些腳本來自動化測試應用程序。在進行錄制或者回放腳本前,為了能夠啟動要測試的應用程序,用戶首先要打開 RFT 的界面,在配置窗口里設好應用程序的名稱、種類、路徑、工作目錄等信息。在實際應用中,一個產品在 beta 或者 release 發布前,會根據項目進展推出一個個 build 。當腳本開發好后,每次為了測試新 build 都要打開 RFT 重新配置,顯得比較煩瑣,尤其當計劃只用命令行遠程調用測試腳本,以實現自動化測試的時候。本文介紹了一種改進的方法,即采用代碼和配置文件來啟動應用程序,每次運行腳本前,用戶只需要打開配置文件設好 build 運行程序的路徑,就完成了配置過程。通過該方式也可以使用命令行來運行測試腳本,使自動化測試成為可能。
本文將首先介紹如何在 RFT 中設置要啟動的應用程序,然后將其應用在一個實際的測試場景中,以此來說明采用默認設置方法在實際應用中會產生的問題。接著將提出一個改進的方法來取代默認方法,進而解決問題。該改進方法已經成功應用在 IBM Lotus Connection 2.0 的安裝程序的自動化測試中,在本文的測試場景中,將采用此產品作為測試對象進行說明。
設置要啟動的應用程序
本章將簡述在 RFT 中如何設置要啟動的應用程序,首先選擇 RFT 主界面工具欄上的“配置”,然后選擇“配置應用程序進行測試”,彈出如下對話框。如圖 1 。
圖 1. 配置應用程序對話框
該對話框顯示的是被測應用程序的相關信息,包括名稱、種類、路徑、工作目錄等。
當要添加新的應用程序時,點擊右側“添加”按鈕,然后在彈出對話框里選擇應用程序的種類,有三個類型,一般的應用程序的啟動文件都是可執行的 exe 或者 bat,這里我們選擇“可執行文件或批處理文件”。如圖 2 。
圖 2. 添加應用程序的種類
點擊“下一步”。然后選擇應用程序的 bat 或者 exe 的路徑,本文以 Lotus Connections 2.0 的安裝程序為例,選擇 < LC_installer_dir>\install.bat,即 Lotus Connections 2.0 安裝程序在本機上的文件路徑。如圖 3 。
圖 3. 添加應用程序對話框
點擊“完成”。然后可以得到以下的信息。如圖 4 。
圖 4. 配置應用程序對話框
默認名稱為 install,類型為 executable,表示可執行的,路徑和工作目錄為應用程序在本地磁盤的路徑,可執行的文件為選擇的 bat 文件名。
用戶可以點擊右側的“運行”按鈕進行測試,如果看到 Lotus Connections 2.0 安裝程序成功啟動,如圖 5 。則說明配置應用程序成功,接著便可以進行下一步操作,錄制或者回放腳本。
圖 5. Lotus Connections 安裝界面
分析啟動應用程序腳本
當 Lotus Connections 2.0 安裝程序在 RFT 中配置成功后,就可以錄制操作,然后生成測試腳本。要錄制操作,首先新建一個工程,點擊“文件”,然后點擊“新建 Functional Tester 項目”,填寫項目名稱和路徑。
新建完工程后,需要新建一個空的腳本文件,在工程上右擊,然后選擇“使用記錄器添加腳本”,輸入腳本名稱后點擊“完成”按鈕,會彈出一個“正在記錄對話框”,接著點擊上面的“啟動應用程序”。如圖 6 。
圖 6. 正在記錄對話框
點擊后彈出“啟動應用程序對話框”,從下拉列表里可以看到前面已經配置好的應用程序,選擇 install – excutable 。如圖 7 。
圖 7. 啟動應用程序對話框
點“確定”后將會啟動前面所見的 Lotus Connections 2.0 安裝程序界面,用戶接下來在應用程序上進行的操作都會被 RFT 記記錄并自動產生相應腳本。點擊“正在記錄對話框”(圖 6 )上面的“停止記錄”按鈕,可以完成錄制的行為。
查看生成的腳本,testMain(Object[] args) 是主函數,作為腳本執行的起始點,可以看到里面第一行的代碼是 startApp("install"),傳遞的參數正是前面配置的 Lotus Connections 2.0 安裝程序的名稱,后面是記錄用戶操作所生成的測試代碼。如清單 1 。
清單 1. RFT 生成的測試腳本
public void testMain(Object[] args) { startApp("install"); next_btn().click(); createDB_option().click(); next_btn().click(); DB2_option().click(); ...... } |