相見恨晚的自動化測試開發工具 Sikuli

2010年由一位在 MIT 就讀的台灣人發表的 graphic script language,

有別於一般的開發工具,利用一些截圖加上一些簡單的語法就可以操作電腦滑鼠、鍵盤。

開發這工具最難的,我覺得是圖形辨識跟操作行為的判斷。

這工具提供的語法滿完整的,不同的情境都可以簡單的使用,

搭配 Python 語法可以更靈活的操作。

我用了兩個小時的時間,就可以完成安裝並輕易完成一個自動化訂票的 script。

坦白說,效果讓我感到非常的驚豔,可能是本身是開發人員,能夠了解這軟體的困難。

只是覺得自己怎麼可以這麼 lag,六年前的玩意現在才知道。

-- 安裝步驟 --

先到 Sikuli 官網 下載 SikuliX 目前版本是1.1.0

檔案是 .jar,也就是 java 程式,所以請先安裝 jre 環境。

依教學是說只要檔案下載下來,直接點兩下執行,就會自動下載需要的檔案,

還有一個執行 Sikuli IDE 的批次檔。

安裝過程遇到 "Could not find the main class. Program will exit!"


直接在 console 下指令 " java -jar sikulixsetup-1.1.0.jar"

就會自動下載並安裝起來了。




語法的部份我是參考這個範例   Sikuli的入門使用

-- 遭遇問題 --

寫範例的過程遇到兩個問題,一個是中文的輸入問題、一個是按鍵的問題。

一、中文輸入的問題,網路上查到的解法是 type(u"中文") 或是 paste("中文"),

實際使用出現的都是亂碼。

最後解法是 paste(unicode("中文", "utf8"))

二、按鍵問題是一些特殊鍵的輸入,例如 windows 鍵 + 字母的特殊組合鍵、Enter 鍵。

這邊統一解答,windows 鍵+字母的特殊鍵組合是 type("d",KEY_META) ,

以這範例表示的是 windows 鍵 + d (一定要小寫唷!)

Enter 鍵是 type(Key.ENTER)   (Key 一定要首字大寫,ENTER是全大寫)

-- 最後完成的結果 --

我最後實作的程式是露營地的訂票程式,搭配 windows 工作排程、 Sikuli、javascript,

可以定時開始作業並完成訂票及驗證的工作。

影片就不放上來了,有興趣的私下跟我要。

-- 參考 --

Sikuli 官網: http://www.sikuli.org/
Sikuli API: http://sikulix-2014.readthedocs.io/en/latest/
作者 blog 介紹: http://blog.vgod.tw/2010/01/30/sikuli/  (作者已淡出 Sikuli 開發工作)


留言

  1. 你好,我有想找人做一個 sikuli 的程式,模擬點擊。如果你有意願接案或長期配合請 email 給我。mmmayagan@gmail.com

    回覆刪除

張貼留言

這個網誌中的熱門文章

[IIS] 自我簽署憑證來啟用SSL

sqlplus 中文亂碼解決方案