• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 【原】桌面自動化測試工具-sikuli

    上一篇 / 下一篇  2010-09-21 11:39:54 / 個人分類:測試工具

    一 簡介

    Sikuli在墨西哥惠慈爾土著人的語言中這是"上帝之眼"的意思,是一個利用圖片進行可視化檢索和自動化圖形界面的技術。貼個示例程序,就很容易明白了:

    也就是說,用戶不需要寫出一行行代碼,而是用屏幕截圖的方式,用截出來的圖形元素組合出神奇的程序。Sikuli作為一個代理,就像人看著屏幕,遇到指定的圖像后使用鼠標和鍵盤進行操作。

    目前sikuli還未廣泛使用,自身也有些bug未解決,但是已經有一些手機測試自動化使用它。我覺得sikuliGUI環境自動化方面還是大有可為的。

    安裝

    Sikuli的安裝很簡單,首先安裝最新版java runtime,然后在 http://groups.csail.mit.edu/ uid/sikuli /download.shtml下載Sikuli IDE安裝就可以了。Sikuli的編程語言為python,用戶按照python編程習慣就可以了。

    函數介紹

    在觀察屏幕方面,目前支持4種方法。wait(在指定時間內等待某圖像出現),waitVanish(在指定時間內等待某圖像消失),onAppear(當某圖像出現,做相應動作),onChange(有變化后做相應動作).在動作方面,Sikuli可以完成大多數的鼠標和鍵盤操作,click(左鍵單擊),doubleClick(雙擊),rightClick(右鍵單擊),hover(鼠標懸停),dragDrop(拖拽),keyDown(鍵盤按下),keyUp(鍵盤彈起),type(鍵盤輸入),paste(粘貼)等等。除了PrintScreen,ScrollLockPause鍵,支持所有鍵盤鍵。

           觀察屏幕的方法,我除了 onChange方法,其他方法均有使用。

    1waitPS,seconds

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

    示例:

    在啟動操作系統后,需要等待一段時間,桌面圖標才會出現。

     

    2waitVanish(PS,seconds)

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

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

    3onAppearPS,handler

    定義:當指定圖像出現(PS),觸發事件,交由相關事件處理器(handler)處理。

    示例:啟動VMware后,觀察10秒,當啟動圖標出現后,點擊啟動圖標。

    鼠標操作的方法,定義都大同小異,僅以click為例做概要介紹。

    (1)click(PS)

    定義:在指定圖像上,鼠標左鍵點擊一下。

    示例:虛擬機關機時,需要點擊關機按鈕。

    鍵盤操作方法不多做介紹了,重點介紹一下各種鍵的名稱和使用。

    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

    注意:當需要同時按下多個鍵時,特殊鍵和普通鍵之間使用“+”連接。如type(“hello”+Key.ENTER). 如要同時使用修飾鍵,使用“,”連接,如typeKey.F4,KEY_ALT

    注意事項

    1.sikuli不支持中文,因此無論在編程中或者保存路徑,都不可以使用中文!否則運行報錯。

    2.圖像因素:盡量避免比較大的目標,因為大目標必然需要比較大量像素,準確性和速度都有下降。盡量選擇可以唯一確定的圖像因素。

    3.使用變量保存需多次使用的圖像,Sikuli會將所有圖像都另存為圖片。

    左圖和右圖作用一樣,但右圖的做法會在工作路徑保存兩個完全相同的圖像。

    4.sikuli不可在遠程桌面編程,應該是它的bug,一截圖就死機。

    5.虛擬機需要全屏,點擊位置才不會出錯。

    Sikuli的類和方法在本篇文章內未能一一列舉,比如find,getOS,openApp,getClippboard等方法,Env,Finder,Location,Region,VDict等類,大家有興趣可以研究一下。本來word版本有貼圖說明例子的,但是發圖片太麻煩,敬請諒解

     

     

     

     


    TAG: 工具 自動化 sikuli

     

    評分:0

    我來說兩句

    顯示全部

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

    我的欄目

    日歷

    « 2011-06-14  
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  

    我的存檔

    數據統計

    • 訪問量: 431
    • 日志數: 1
    • 建立時間: 2010-09-21
    • 更新時間: 2010-09-21

    RSS訂閱

    Open Toolbar
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>