<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            【原】桌面自動(dòng)化測試工具-sikuli

            上一篇 / 下一篇  2010-09-21 11:39:54 / 個(gè)人分類(lèi):測試工具

            一 簡(jiǎn)介

            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é)得sikuliGUI環(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,ScrollLockPause鍵,支持所有鍵盤(pán)鍵。

                   觀(guān)察屏幕的方法,我除了 onChange方法,其他方法均有使用。

            1waitPS,seconds

            定義:在給定的時(shí)間(seconds)內等待指定圖像(PS).時(shí)間以秒為單位,可以使用FOREVER永久等待。

            示例:

            在啟動(dòng)操作系統后,需要等待一段時(shí)間,桌面圖標才會(huì )出現。

             

            2waitVanish(PS,seconds)

            定義:在給定時(shí)間(seconds)內等待指定圖像(PS)消失。時(shí)間以秒為單位,可以使用FOREVER永久等待。

            示例:在卡巴升級過(guò)程中,需等待升級的圖標消失,才能繼續下面的操作。

            3onAppearPS,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í)使用修飾鍵,使用“,”連接,如typeKey.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ā)圖片太麻煩,敬請諒解

             

             

             

             


            TAG: 工具 自動(dòng)化 sikuli

             

            評分:0

            我來(lái)說(shuō)兩句

            顯示全部

            :loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

            我的欄目

            日歷

            « 2011-06-14  
               1234
            567891011
            12131415161718
            19202122232425
            2627282930  

            我的存檔

            數據統計

            • 訪(fǎng)問(wèn)量: 431
            • 日志數: 1
            • 建立時(shí)間: 2010-09-21
            • 更新時(shí)間: 2010-09-21

            RSS訂閱

            Open Toolbar
            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>