• 沒有找到結果。

實驗結果與分析

GUI 物件尋找

表 1 是 GART 與一些較具代表性的自動腳本工具作比較。GUI 物件尋 找是指用什麼方式在 GUI 上找到想要控制的物件。

表 1 物件尋找方式比較

物件尋找方式

Autoit Sikuli

按鍵精靈

GART

位置 ○ ○ ○ ○

顏色

截圖 ○ ○

物件類+編號

資訊樹

23

測試資料生成

一般腳本工具所提供的錄製/播放功能,其所產生的腳本,只包含滑 鼠的位置資訊。這樣的腳本很容易因為視窗位置的改變而失效,難以重覆 使用。GART 的錄製功能,能自動抓取物件的相關資訊,以方便建立測試 資料(自動產生之腳本範列請參閱附錄一)。表 2 列出了常見的腳本工具 錄製/播放的功能比較。

Autoit 有提供尋找物件的語法,但需要配合額外的工具(Autoit v3 Window Information[13])。GART 則是在錄製過程就能自動產生腳本,簡 化了編輯過程(表 3)。

表 3 腳本製作步驟比較

Autoit GART

1. 使用 Autoit v3 Window Information

工具,抓取欲控制的物件資訊。 錄製滑鼠動作。

2. 將 1.中所得的資訊寫入腳本代碼

裡。

3. 對每個想要的滑鼠點擊動作,重覆

1.和 2.。

表 2 錄製腳本功能比較

錄製腳本

Autoit Sikuli

按鍵精靈

GART

位置 ○ ○ ○

物件資訊

24

使用 Autoit v3 Window Information 工具抓取物件資訊還會遇到一個問 題,那就是無法抓取類似圖 10 中的物件。像這類失去滑鼠焦點就會自動 消失的彈出式工具視窗,便無法使用工具去抓取資訊。而 GART 是直接錄 製滑鼠動作,因此可以避免這個問題。

圖 10 彈出式視窗範例

25

實現的功能與測試資料

以下會列出目前 GART 已經完成的功能模組(5.3.1)與測試資料

(5.3.2)。

5.3.1 實現的功能

表 4 列出目前已經完成的模組插件及其主要的功能。除了_GART.DLL 是必要的檔案之外,其餘的模組插件都是可以動態掛載的。

表 4 功能模組列表

模組插件 功能

_GART.DLL 滑鼠/鍵盤的錄製與播放;呼叫其

他模組插件。

_GARTPlugIn_AudioPlay.DLL 播放弦波。

_GARTPlugIn_AudioRecord.DLL 錄音及音源分析。

_GARTPlugIn_Environment.DLL 判斷作業系統及音效晶片版本。

_GARTPlugIn_FindWindow.DLL 以 ITOS 的方法尋找物件。

_GARTPlugIn_If.DLL AND/OR 判斷條件式。

_GARTPlugIn_Log.DLL 輸出紀錄檔。

_GARTPlugIn_Mixer.DLL 控制系統音效的各種設定。

_GARTPlugIn_Repeat.DLL 重複執行。

_GARTPlugIn_RunCommand.DLL 執行應用程式。

_GARTPlugIn_ScriptFile.DLL 讀取並執行 JSON 腳本。

_GARTPlugIn_Sleep.DLL 睡眠。

_GARTPlugIn_TestData.DLL 測試資料庫資訊。

26

27

表 6 中列出了測試資料的檔案大小,其中可以重覆使用的部份超過 90%,

不僅能夠節省儲存空間,也節省了編寫測試資料所需的時間。以目前實現 的測試資料為例,在製作前 24 筆測試資料時,大約花了 40 個小時(包含 測試與調校),而之後的 168 筆測試資料,由於都利用之前寫好的腳本,只 花了 6 個小時便建製完成。

表 6 測試資料大小

測試項目 測試資料

大小(KB)

平均一個測 試大小(KB)

平均一個測 試可重複使 用部份(KB)

重複使用率

喇叭測試功能 264 16.3 15.3 93.8%

麥克風增益 146 21.8 20.6 94.4%

1 重複使用率=(平均一個測試可重複使用部份)/(平均一個測試大小)。

28

實際測試結果

我們實際在 VPanel 上執行已經實現的 192 筆測試資料,以下會列出執 行的結果(結果範例請參考附錄四)。

5.4.1 測試時間

表 7 是在繁體中文下的不同樣版上執行的結果;表 8 是在樣版 1 下的 不同語言上執行的結果。若以 18:00 下班到隔天 9:00 上班有 15 個小時來 計算,一個晚上至少可以跑 6300 筆測試資料,因此在實務上是可行的。

表 7 不同樣版之測試時間(單位為秒)

表 8 不同語言之測試時間(單位為秒)

測試項目 樣版 1 樣版 2 樣版 3 樣版 4 樣版 5 平均 喇叭測試功能 1356 1358 1359 1363 1356

1358.4

麥克風增益 288 289 287 330 287

196.2

總計 1644 1647 1646 1693 1643

1654.6

測試項目 繁體中文 英文 簡體中文 德文 法文 喇叭測試功能 1356 1355 1355 1358 1348 麥克風增益 288 251 251 288 250 總計 1644 1606 1606 1646 1598

測試項目 西班牙文 日文 韓文 俄文 平均

喇叭測試功能 1350 1350 1350 1359

1353.4

麥克風增益 287 288 288 288

275.4

總計 1637 1638 1638 1647

1628.9

29

30

限制

1. GART 是針對應用程式上的元件而開發的,無法分辨出同一元件 上的不同功能。如瀏覽器,一個網頁對應用程式來說就是一個物 件(window),GART 無法辨認同一網頁上的不同連結。

2. GART 使用資訊樹(詳見 4.5)作為尋找物件的主要依據,如果在 程式改版時,刪除或插入了某些視窗或物件 ID,可能造成資訊樹 改變,而讓測試資料失效。因此在軟體改版時,要注意不能更動 原本物件的資訊樹,否則測試資料將會產生錯誤。

3. 如果 GUI 上的物件 ID 是隨機生成的,便無法使用 ITOS 的資訊找 到正確的物件。如圖 3 的聲音視窗,有可能因為新增或移除音訊 裝置而在重新關機後造成物件 ID 改變。

4. ITOS 雖然保留了更多資訊,讓我們更容易找到目標物件,但也會 遇到二個物件完全無法分辨的情況。此時需要利用額外的資訊,

GART 使用位置來辨別不同的物件,也失去了在不同介面使用同 樣測試資料的好處。

5. GART 雖然能讓同筆測試資料跑在不同介面上,但如果介面改變 時,將橫(直)向的滑動條改為直(橫)向,將造成滑鼠拖曳的 方向錯誤。

31

相關文件