基於GUI測試工具Squish的使用
申請Squish試用
啟用資訊會在提交申請後的24小時之內通過郵件的形式傳送至您申請時所填寫的郵箱地址。
在填寫試用申請表的國家一項時,請不要選擇中國。我們發現如果申請表國家一欄選擇中國時,Squish的試用申請資訊會被轉交給Squish在中國方面的代理商,屆時您需要提供公司的相關資訊才能獲得啟用碼和下載連結。
目前官方提供的試用期限為 10天(不是30天)。
下載Squish安裝包
當試用申請通過以後,Squish官方會發送一個登入賬號資訊到您的註冊郵箱中。使用者名稱為您註冊時填寫的郵箱地址,密碼為隨機的8位字元。瀏覽器開啟(http://www.froglogic.com/secure/)頁面,填寫正確的登入資訊,即可登入Squish的下載頁面。此頁面同時提供軟體的啟用碼資訊。
針對本次自動化測試專案,您需要下載對應的Squish版本squish-6.2.0-qt55x-win32-msvc10.exe
檢視此Squish檔案的命名,我們可以得到以下資訊:
- Squish 6.2.0 版本
- 基於Qt 5.5.x物件庫
- Windows 32bit
- 軟體在Microsoft Visual Studio 2010下編譯完成
Squish的安裝
在開始運用Squish進行測試前,請確保電腦中成功安裝了基於GUI自動化測試的Squish for Qt工具。同安裝絕大多數Windows平臺應用程式一樣,Squish for Qt的安裝過程只需要一路預設安裝即可。
進行Squish for Qt安裝(此處以版本6.1.0進行示例安裝)
- 執行安裝
雙擊先前下載的程式squish-6.1.0-qt55x-win32-msvc10.exe,開始安裝
- 輸入有效的Squish啟用碼
- 同意試用許可協議
- 選擇Squish的安裝目錄
- 建立“桌面”與“開始選單”快捷方式
- 執行安裝
- 完成Squish for Qt安裝
新建測試專案集、測試用例
Squish for Qt的整合開發環境類似於Eclipse。如果您原先熟悉Eclipse軟體,相信您會很快掌握Squish for Qt的開發環境。
建立專案集:
- 依次開啟選單 File | New… | Squish Test Suite
- 在New Squish Test Suite對話方塊,填寫專案名稱並選擇專案儲存路徑
- 點選Next >進入程式語言選擇對話方塊;本專案選擇JavaScript語言作為程式語言
- 點選Next >進入測試程式選擇對話方塊,選擇被測試的程式(AUT)
- 點選Finish完成新建專案集的操作
- 在剛剛新建的專案集中,增加一個測試用例,即可以進行測試指令碼的開發事宜
專案集名稱以“suite_”開頭;測試用例以 “tst_”開頭。
執行測試用例
首先,載入被測試程式(AUT)
點選Test Suite Settings | Application Under Test (AUT)載入被測試程式。
執行單個測試用例
雙擊開啟所要執行的測試用例,執行(Run | Run Test Case)即可啟動被測程式按指令碼先後順序進行測試。
批量執行測試用例
勾選所要進行測試的指令碼,執行(Run | Run Test Suite)即可啟動被測程式。Squish for Qt會按照一定的順序執行勾選的各個指令碼。
測試結果的檢視
自動化測試結果會以日誌記錄的方式呈現Test Results (Window | Show View… | Other… | Squish Tests | Test Results)。在每次自動化測試完成後,Squish for Qt均會生成測試結果日誌。此日誌包括:
- Pass Messages(測試中通過的訊息)
- Expected Fail Messages (測試中預期失敗的訊息)
- Fail Messages (測試中失敗的訊息)
- Unexpected Pass Messages (測試中未預期通過的訊息)
- Error Messages (測試中錯誤的訊息)
- Fatal Messages (測試中嚴重錯誤的訊息)
- Warning Messages (測試中警告的訊息)
- Log Messages (測試中日誌記錄的訊息)
Squish for Qt提供了一個針對不同日誌訊息進行分類篩選(Filter the Results)的功能。利用此功能,您可以篩選出自己最想要看到的測試結果。當您最想知道測試結果中Error Messages一類訊息時,可以將其它訊息進行去除“勾選”,只保留Error Messages,這樣篩選出來的訊息即只有Error Messages一類。
結果檔案由XML轉成HTML
您可以在整合開發環境(Squish for Qt)中檢視日誌資訊,但這終究不方便。聰明的您可能會想到,是不是有其它更為便捷的方式進行報告檢視?為方便測試結果的檢視與測試中出現的問題定位,您需要將測試結果日誌匯出,並進行格式轉換。
匯出XML文件
在Test Results區域右鍵點選,選擇Export Results…將測試結果以XML格式匯出儲存。
在匯出的儲存位置對話方塊中,您可能注意到其“儲存型別(T)”為 Squish Report Files(v3)。這裡的v3代表著SquishReport version 3.1,即此版本的XML報告結構是基於Squish xml schema 的3.1版本進行的。
XML文件轉換成HTML文件
Squish for Qt安裝目錄下存在一個名為regressiontesting的目錄。位於這個目錄下的兩個Python檔案可以將XML轉換為HTML格式。
- squishxml2html.py
適合Squish xml 2.0版本的檔案。
- squishxml3html.py
適合Squish xml 3.1版本的檔案。
下面將進行文件格式轉換的處理,在此之前請確保您的機器安裝有 Python 2.7 。
將xml(以results.xml為例)結果檔案放於與 squishxml3html.py(請依據Squish xml的版本進行選擇)同一目錄下。
命令列模式下進入此目錄,執行以下程式碼:
python squishxml3html.py ./ results.xml
執行上述程式碼即可在同一目錄下生成results.html、index.html檔案。
- index.html(測試報告概要)
- results.html(自動化測試詳細內容)
通過瀏覽器開啟results.html,可以檢視測試結果的詳細內容。
官方提供的Python指令碼在處理中文字元時會出現問題,需要更改一下編碼型別。
解決方法是加入以下兩句話
reload(sys)
sys.setdefaultencoding( "utf-8" )
更新後的部分程式碼類似於下圖所示
squishxml3html.py檔案已經上傳至Git程式碼庫。相較於官方提供的版本,此squishxml3html.py指令碼更改了不同訊息的呈現顏色,並加入了Warning Messages類的訊息統計。