【原】桌面自動(dòng)化測試工具-sikuli
上一篇 / 下一篇 2010-09-21 11:39:54 / 個(gè)人分類(lèi):測試工具
Sikuli在墨西哥惠慈爾土著(zhù)人的語(yǔ)言中這是"上帝之眼"的意思,是一個(gè)利用圖片進(jìn)行可視化檢索和自動(dòng)化圖形界面的技術(shù)。貼個(gè)示例程序,就很容易明白了:
也就是說(shuō),用戶(hù)不需要寫(xiě)出一行行代碼,而是用屏幕截圖的方式,用截出來(lái)的圖形元素組合出神奇的程序。Sikuli作為一個(gè)代理,就像人看著(zhù)屏幕,遇到指定的圖像后使用鼠標和鍵盤(pán)進(jìn)行操作。
目前sikuli還未廣泛使用,自身也有些bug未解決,但是已經(jīng)有一些手機測試自動(dòng)化使用它。我覺(jué)得sikuli在GUI環(huán)境自動(dòng)化方面還是大有可為的。
二 安裝
Sikuli的安裝很簡(jiǎn)單,首先安裝最新版java runtime,然后在 http://groups.csail.mit.edu/ uid/sikuli /download.shtml下載Sikuli IDE安裝就可以了。Sikuli的編程語(yǔ)言為python,用戶(hù)按照python編程習慣就可以了。
三 函數介紹
在觀(guān)察屏幕方面,目前支持4種方法。wait(在指定時(shí)間內等待某圖像出現),waitVanish(在指定時(shí)間內等待某圖像消失),onAppear(當某圖像出現,做相應動(dòng)作),onChange(有變化后做相應動(dòng)作).在動(dòng)作方面,Sikuli可以完成大多數的鼠標和鍵盤(pán)操作,click(左鍵單擊),doubleClick(雙擊),rightClick(右鍵單擊),hover(鼠標懸停),dragDrop(拖拽),keyDown(鍵盤(pán)按下),keyUp(鍵盤(pán)彈起),type(鍵盤(pán)輸入),paste(粘貼)等等。除了PrintScreen,ScrollLock和Pause鍵,支持所有鍵盤(pán)鍵。
觀(guān)察屏幕的方法,我除了 onChange方法,其他方法均有使用。
(1)wait(PS,seconds)
定義:在給定的時(shí)間(seconds)內等待指定圖像(PS).時(shí)間以秒為單位,可以使用FOREVER永久等待。
示例:
在啟動(dòng)操作系統后,需要等待一段時(shí)間,桌面圖標才會(huì )出現。
(2)waitVanish(PS,seconds)
定義:在給定時(shí)間(seconds)內等待指定圖像(PS)消失。時(shí)間以秒為單位,可以使用FOREVER永久等待。
示例:在卡巴升級過(guò)程中,需等待升級的圖標消失,才能繼續下面的操作。
(3)onAppear(PS,handler)
定義:當指定圖像出現(PS),觸發(fā)事件,交由相關(guān)事件處理器(handler)處理。
示例:?jiǎn)?dòng)VMware后,觀(guān)察10秒,當啟動(dòng)圖標出現后,點(diǎn)擊啟動(dòng)圖標。
鼠標操作的方法,定義都大同小異,僅以click為例做概要介紹。
(1)click(PS)
定義:在指定圖像上,鼠標左鍵點(diǎn)擊一下。
示例:虛擬機關(guān)機時(shí),需要點(diǎn)擊關(guān)機按鈕。
鍵盤(pán)操作方法不多做介紹了,重點(diǎn)介紹一下各種鍵的名稱(chēng)和使用。
(1)修飾鍵常量
KEY_ALT, KEY_CMD, KEY_CTRL, KEY_META, KEY_SHIFT, KEY_WIN
(2) 特殊鍵
Key.ALT, Key.BACKSPACE, Key.DOWN, Key.END, Key.ENTER, Key.ESC, Key.DELETE, Key.F1 ~ Key.F15, Key.HOME, Key.INSERT, Key.LEFT, Key.PAGE_DOWN, Key.PAGE_UP, Key.RIGHT, Key.TAB, Key.UP
(3)普通鍵
A~Z, a~z,1~10
注意:當需要同時(shí)按下多個(gè)鍵時(shí),特殊鍵和普通鍵之間使用“+”連接。如type(“hello”+Key.ENTER). 如要同時(shí)使用修飾鍵,使用“,”連接,如type(Key.F4,KEY_ALT)
四 注意事項
1.sikuli不支持中文,因此無(wú)論在編程中或者保存路徑,都不可以使用中文!否則運行報錯。
2.圖像因素:盡量避免比較大的目標,因為大目標必然需要比較大量像素,準確性和速度都有下降。盡量選擇可以唯一確定的圖像因素。
3.使用變量保存需多次使用的圖像,Sikuli會(huì )將所有圖像都另存為圖片。
左圖和右圖作用一樣,但右圖的做法會(huì )在工作路徑保存兩個(gè)完全相同的圖像。
4.sikuli不可在遠程桌面編程,應該是它的bug,一截圖就死機。
5.虛擬機需要全屏,點(diǎn)擊位置才不會(huì )出錯。
Sikuli的類(lèi)和方法在本篇文章內未能一一列舉,比如find,getOS,openApp,getClippboard等方法,Env,Finder,Location,Region,VDict等類(lèi),大家有興趣可以研究一下。本來(lái)word版本有貼圖說(shuō)明例子的,但是發(fā)圖片太麻煩,敬請諒解
相關(guān)閱讀:
- 自動(dòng)化測試實(shí)例分析 (wangyajing, 2010-9-08)
- 性能測試工具在測試工作中的重要性及使用指南 (墨竹, 2010-9-16)
- 5類(lèi)軟件測試工具介紹 (wangyajing, 2010-9-17)
- 基于GUI的自動(dòng)化測試工具淺談 (wangyajing, 2010-9-19)
- 軟件測試工具VBscript的err對象 (墨竹, 2010-9-20)
- 有關(guān)軟件測試和測試工具比較 (wangyajing, 2010-9-20)
- 領(lǐng)測軟件測試網(wǎng)首發(fā)性能測試工具-LoadRunner 11 詳細評測 (墨竹, 2010-9-20)
- 性能測試工具 HP LoadRunner 11.00 嘗鮮評測 (seanhe, 2010-9-20)
- 性能測試工具 HP LoadRunner 11.00 嘗鮮評測 (墨竹, 2010-9-21)
導入論壇 引用鏈接 收藏 分享給好友 推薦到圈子 管理 舉報
我的欄目
標題搜索
日歷
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | 3 | 4 | ||||||
5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
26 | 27 | 28 | 29 | 30 |
我的存檔
數據統計
- 訪(fǎng)問(wèn)量: 431
- 日志數: 1
- 建立時(shí)間: 2010-09-21
- 更新時(shí)間: 2010-09-21