1 簡介
官方介紹:html
Sikuli腳本自動化,你在屏幕上看到的任何東西。它使用圖像識別,識別和控制GUI組件。這是有用的,當有一個GUI的內部或源代碼的訪問是不容易的。java
Sikuli(在墨西哥維喬印第安人的語言裏是」上帝之眼」的意思)是由美國麻省理工學院開發的一種最新編程技術,使得編程人員能夠使用截圖替代代碼,從而簡化代碼的編寫流程。從它研究方向上看,是一種編程技術,可是該技術還能夠用於進行大規模的程序測試,腳本程序編寫使用的是python語言。python
簡單的說,Sikuli就是能夠直接操做截圖來進行自動化測試。編程
2 安裝
2.1 Sikuli安裝
1) 下載安裝包「sikulixsetup-1.1.0.jar」,網址:https://launchpad.net/sikuli/sikulix/1.1.0api
2) 將安裝包拷貝到安裝目錄下,如D:\Sikuli1.1框架
3) 在命令行裏運行「Java –jarsikulixsetup-1.1.0.jar」,彈出安裝嚮導:jvm
選第一個和第二個測試
選擇好安裝項後,單擊[Setup Now]進行安裝spa
4) 在彈出的question...嚮導框裏選擇[Yes]下載須要的安裝文件.net
5) 文件正在下載
6) 確認是否下載Jython,單擊[Yes]開始下載Jython
若是以爲在線下載不方便,能夠在安裝前去https://launchpad.net/raiman/sikulix2013+/1.1.0將「sikulixlibswin.jar」,「sikulixsetupAPI-1.1.0-forsetup.jar」和sikulixsetupIDE-1.1.0-forsetup.jar下載好,並和sikulixsetup-1.1.0.jar放到同一目錄(例如:D:\Sikuli1.1)下,這樣在安裝過程當中,Sikuli會自動檢測是否有下載好的jar包,若是有它會直接使用已下載好的jar包
7) 文件下載好後,會顯示以下信息,並開始安裝
8) 安裝完成的提示:
9) 安裝成功的提示:
此時,SikuliX安裝成功並能夠使用了
10) 安裝完成後安裝目錄D:\Sikuli1.1下應該有5個文件:
runsikulix.cmd
sikulix.jar
SikuliX-1.1.0-SetupLog.txt
sikulixapi.jar
sikulixsetup-1.1.0.jar
sikulixsetup-1.1.0.jar是剛纔的安裝包;runsikulix.cmd用來啓動SikuliIDE;sikulix.jar是IDE須要的jar包;SikuliX-1.1.0-SetupLog.txt是安裝日誌;sikulixapi.jar是Java api
2.2 jpype庫安裝
jpype的做用是在python中調用Sikuli的api java庫。
能夠到https://pypi.python.org/pypi/JPype1下載庫,直接安裝
3 Sikuli IDE
打開Sikuli安裝目錄中的runsikulix.cmd,直接打開sikuli IDE:
如圖,sikuli IDE的操做很是簡單明瞭,直接按照提示進行操做就行了。
可是這跟selenium-IDE同樣,只能做爲demo代碼,因此須要把sikuli集成到咱們的UI自動化框架中
4 Python Sikuli
Sikuli庫是用java編寫的,打包成Jar,要在python中使用,須要使用jpype進行轉換。
Python中調用sikuli的demo以下:
# coding=utf-8
from jpype import *
startJVM(r'C:\ProgramFiles\Java\jre1.8.0_111\bin\server\jvm.dll', '-ea', r'-Djava.class.path=D:\sikuli\sikulixapi.jar')
# shutdownJVM()
App = JClass('org.sikuli.script.App')
Screen = JClass('org.sikuli.script.Screen')
screen = Screen()
參考:http://blog.csdn.net/a23764996/article/details/53541047
python安裝jpype會遇到問題:
參考:
http://blog.csdn.net/linshiyx/article/details/51699163
http://blog.csdn.net/a23764996/article/details/53541047
https://www.cnblogs.com/monsteryang/p/6498690.html
貌似robot framework 能夠集成sikuli