2010年4月3日 星期六

使用者介面自動化測試使用sikuli

MIT 的學生開發一個使用視窗截圖來代替程式碼的方法。
你可很容易使用它的圖形化介面來進行自動化的測試。
它可大幅簡化你重覆測試程式的時間。

例如: 

# jPython syntax
# 關閉 find 找不到圖示的錯誤

setThrowException(False)
# 設定搜尋圖示的時間 (ms)
setAutoWaitTimeout(3000)

# 找到桌面上的VIM的圖示

xs = find()
# 若圖示存在, 則以雙擊開啓
if xs:
    doubleClick(xs)

# 等待程式開啟到下列畫面
wait()
# 按'a' 進入編輯模式
type('a')
# 輸入'hello'
type('hello')
# 按ESC鍵, 回到命令模式
type(Key.ESC)
# 儲存檔案
type(':wq D:\hello.txt')
type(Key.ENTER)

以文字內容來看
# text openvim.py
setThrowException(False)
setAutoWaitTimeout(3000)
xs = find("1270226485109.png")
if xs:
  doubleClick(xs)
wait("1270227406546.png")
type('a')
type('hello')
type(Key.ESC)
type(':wq D:\hello.txt')
type(Key.ENTER)

Download
你可以從此處下載測試版:
http://groups.csail.mit.edu/uid/sikuli/

3 則留言:

小斌 提到...
作者已經移除這則留言。
小斌 提到...

find() 傳回值並不是布林值,用 if 去判斷有點怪怪的。

find() 找不到東西時,會發生例外,可以用 try 來處理。例如:

try:
  find("1270226485109.png")
except: # 如果發生例外(找不到)
  pass # 什麼也不做
else: # 如果沒有發生例外(找到了)
  doubleClick("1270226485109.png")

超軟之家 提到...

感謝您的回覆, 這樣的錯誤處理比較正確.