1.SikuliX基本介绍
Sikuli 是 2009 年由 Tsung-Hsiang Chang 和 Tom Yeh在麻省理工学院用户界面设计小组的一个开源研究项目。1 年,两人都离开了 Sikuli-X-0.3rc2012 的项目,RaiMan决定接管开发和支持,并将其命名为 SikuliX。
SikuliX 可以自动执行运行在 Windows、Mac 或某些 Linux/Unix 的台式计算机屏幕上看到的任何内容。它使用由 OpenCV 提供支持的图像识别来识别 GUI 组件。当无法轻松访问 GUI 的内部或要操作的应用程序或网页的源代码时,这很方便。SikuliX还可以运行鼠标和键盘来与识别的GUI元素进行交互。这适用于多显示器环境,甚至适用于具有某些限制的远程系统。
SikuliX 支持作为脚本语言
- Python 语言级别 2.7(由 Jython 支持)
- 支持运行 RobotFramework 文本脚本(参见文档)
- Ruby 语言级别 1.9 和 2.0(由 JRuby 支持)
- JavaScript(受 Java 脚本引擎支持)
2.SikuliX下载及使用
SikuliX是基于java开发的,目前下载程序也是一个jar包,可以通过官网地址下载
运行SikuliX的电脑上必须要有一个64位的java jdk安装,SikuliX本身提供两种使用方式:
1.基于IDE的脚本编写方式
双击jar文件启动或命令窗口中通过java -jar <path-to>/sikulix.jar启动;
SikuliX提供IDE界面,如下图所示,你可以在IDE里使用SikuliX提供的方法来编写脚本,保存后生成.sikuli格式的脚本,可直接在IDE里运行。
2.编程方式
在成熟的IDE里,如Eclipse,Pycharm等或在python,java等编程环境中,将SikuliX提供的API集成未功能库,或引入其提供的API库来直接编写自动化程序。
3.开始编写第一个程序
使用IDE方式实现hello world脚本:在“开始”菜单搜索框中自动键入“Hello World”,实现效果如下图所示:
要开始编写脚本,首先截取目标的屏幕截图,SikuliX IDE提供两种捕获目标图片的方式。第一种是单机工具栏中的相图案,第二种是使用热键(Ctrl+Shift+2)
屏幕捕获模式下,屏幕看起来会变暗并暂时冻结。 整个桌面变得像一个画布,您可以在其中绘制一个矩形圈住要捕获其图像的目标。在本例中,目标是“搜索”符号。红色虚线的十字表示您刚才的矩形的中心
本例子中我们使用click函数实现单击功能,使用type函数实现文本输入,具体的脚本如下所示:
运行报错了,猜测执行完语句1后,对应的输入框还未找到,此时语句2已经开始,导致报错,故增加wait等待,再次运行,脚本可以正常运行,至此完成了第一个简单脚本的搭建和运行。
如下是SukuliX提供的一些常用的命令:
openApp(someApp) # 我们使用一个应用程序 someApp
click(imageButton) # 我们点击某个按钮
wait(imageExpected1) # 我们等待应用做出反应并在屏幕上显示预期的结果
type(“some text”); type(Key.ENTER) # 我们填写一些文本并按 ENTER 键
wait(imageExpected2) # 再次等待一些预期的反应或结果
Sikulix 的一个基本功能是等待图像出现在给定区域:
# 屏幕左上角的某个部分
aRegion = 区域(0, 0, 500, 500)
# 文件系统上的 png 图片文件
# 这是我们要在给定区域中查找的图像
aImage = “someImage.png”
# 搜索并获取结果
aMatch = aRegion.find(aImage)
要加载图像,SikuliX 有 2 个原则:
- bundle path:图像与脚本文件(Python 为 .py,Ruby 为 .rb,JavaScript 为 .js)一起存储在名为 someScript.sikuli 的文件夹中,其中脚本文件的名称必须与文件夹相同(例如 someScript.py)。当使用SikuliX IDE时,这一切都会自动得到保证。
- 图像路径:此外,SikuliX 还支持将地点列表作为图像路径。可能的位置是文件系统中的文件夹、jar 文件中的文件夹以及 Internet 中某处的文件夹。有一些功能可用于管理您自己的图像路径。当必须加载图像时(例外:给出绝对路径),将按顺序检查位置是否存在图像。第一个匹配名次获胜。
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。