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