sikuli

sikuli

MIT的研究人員設計了一種新穎的圖形腳本語言Sikuli,計算機用戶只須有最基本的編程技能(比如會寫print"hello world"),他不需要去寫出一行行代碼,而是用螢幕截圖的方式,用截出來的圖形元素組合出神奇的程式。

基本簡介

MIT的研究人員設計了一種新穎的圖形腳本語言Sikuli,計算機用戶只須有最基本的編程技能(比如會寫print"hello world"),他不需要去寫出一行行代碼,而是用螢幕截圖的方式,用截出來的圖形元素組合出神奇的程式。

根據MIT研究人員的論文(PDF)描述,使用者只要對Python語言有基本的了解,Sikuli可以利用圖形用戶界面的截圖元素自動的完成大多數編程任務。用研究人員的舉的例子來說,就好像巴士正在轉過街角,腳本能通知乘客,好讓他及時趕上。

在上世紀80年代以前,要使用電腦軟體需要記住大量的命令才完成相應的任務。但隨後出現了GUI(圖形用戶界面),使用者只需要藉助直觀的按鈕或其他視覺元素即可操作軟體。但GUI的出現並沒有給程式設計師帶來便利,他們仍然需要藉助代碼來實現相應的功能。如果要讓不同的軟體相互配合,也同樣要進行代碼調用。

而麻省理工學院開發的Sikuli項目則可以使得這一過程變得更加簡單,只需要略懂一點程式語言即可完成簡單的編程和程式間的調用。利用 Sikuli,用戶要使用其他的界面元素,或調用其他程式,不必輸入代碼,只需要插入相應的按鈕或圖示截圖即可。

例如,當編程人員想要編寫一個腳本,實現如下功能:當上班時所乘坐的公車到達某一站時,自動向手機傳送一條提示信息。如果是在以前,需要對相應的坐標進行確定,並通過文本的方式將其編寫成代碼。而如果在當地公交網站上有一個通過谷歌地圖繪製的公交路線圖,而且上面有活動的路標,那么編程人員便可將路標移動到需要傳送簡訊的位置,並進行截圖。這樣一來,只需要將該截圖插入到If之後,即可設定好條件語句,從而觸發特定的信息。當然,這同樣需要具備一些基本的編程基礎。

當用戶需要調用其他程式時也可以使用這一功能,例如,需要調用其他程式上的某個功能,則只需要將該功能所對應的按鈕截圖插入到代碼中對應 的位置即可。

除了方便編程外,該技術還可以用於進行大規模的程式測試。例如,測試某一按鈕是否正常工作。這時,通過Sikuli來調用待測試的按鈕便可節約 大量時間。

此外,Sikuli還可用於可視化搜尋。例如,對生活中的某一事物拍攝照片,即可搜尋相關的信息;或是在某一地區迷路,只要將周圍環境的照片上 傳到搜尋引擎,便可得到相應的地理位置。谷歌此前推出的Goggles也具備了類似的功能。

據麻省理工學院的研究人員介紹,Sikuli的工作模式與人眼一樣,直接識別圖像,而不是底層代碼,因此不會產生不兼容的問題。 Sikuli在墨西哥維喬印第安人(Huichol Indians)的語言裡是上帝之眼的意思。

這個項目的主創人員之一是來自台灣的張琮翔,他也是著名的技術部落格系列追求神乎其技的程式設計之道的作者。

工作原理

工作原理圖如下:

工作原理圖 工作原理圖

以python為基礎,需要搭建Java運行環境。

相關特點

優點:

1.與平台無關

可以實現任意類型的UI(GUI)測試,輕鬆實現跨平台測試,並可以解決web測試中的瀏覽器兼容性測試問題。

2.可讀性強

代碼可讀性強,用圖形表示邏輯關係更生動、形象,容易理解,便於維護。

3.提供.jar包

便於構建大型的測試框架,實現各類測試工具之間的互補。

4.用例設計與程式實施可分離

用例設計人員可以只關注圖型邏輯關係和測試檢查點,不需要懂得具體開發與程式語言基礎;程式實施人員可以只進行編程而不過多參與設計。

項目進展

目前最新發布的版本為:1.0rc3

相關詞條

相關搜尋

熱門詞條

聯絡我們