您的位置 首页 java

Sikuli 基于图形识别的自动化测试技术

作为一名测试人员,测试过程如果遇到应用程序界面结构庞大,页面设计频繁变动,对页面元素定位比较困难的的情况,又需要进行大量重复操作的测试,我们有什么快速解决问题的方法呢?也许 Sikuli 可以成为你的选择之一,它可以让你摆脱对控件API的依赖,通过实时检索当前屏幕的图像,获取可操作对象,模拟用户行为,校验真实的屏幕展示结果。

什么是Sikuli?

sikuli 自动化测试,是将屏幕上展示的内容,通过图像识别,用来定位到元素的位置,并进行操作 GUI 组件,最后也可以通过识别图片中的内容来判断操作是否成功。这样使得测试人员可以通过截图来代替编写代码,从而降低测试成本,简化编写 测试脚本 的流程。

Sikuli是在墨西哥维乔 印第安人 的语言里是”上帝之眼”的意思,目标是让电脑能像人一样去看真实的世界,并与之交互。

Sikuli的开发者

Sikuli是一个开放源码的最初的用户界面设计组织在 麻省理工学院 的研究项目,现在是保持并进一步协调与 开源社区 开发的Sikuli实验室在美国科罗拉多州博尔德大学。这是支持的,部分由 国家科学基金会 奖IIS-0447800,广达电脑的一部分的TParty项目。Sikuli 的 MIT 许可证下发布的。

下载和安装

版本1.1.3以下官方下载页面是

Series sikulix : SikuliXSorry, we were unable to generate a preview for this web page, because the following oEmbed / OpenGraph tags could not be found: description, image

新版本的1.1.4以上在

如果使用1.1.3版本以下的,下载文件中直接双击打开sikulix.jar文件便是sikuli提供IDE,可以进行拖拽式的编写方式。

如下所示:

这种方式运行时要依赖于 IDE ,不方便使用脚本启动去执行测试,所以有另外两种方式,直接编写 Python 脚本来执行。

01

纯python环境-Lackey库

Lackey是Python的一个自动化库,专为易用性和Sikuli自动化脚本的交叉兼容而生。它提供了一个简单但强大的API,用来查找屏幕上的图片,以及使用鼠标和键盘的基本用户输入。

Lackey依赖库

numpy

pillow

opencv

keyboard

安装命令:pip install Lackey

脚本中导入方式:from lackey import *

该库支持截图类型有.bmp, .pbm, .ras, .jpg, .tiff, and .png

find(“***.png”):查找元素,不存在抛出异常

exists (“***.png”):查找元素,返回true或false

wait(“***.png”,5):等待指定秒数,查找元素

click(“***.png”):点击元素

dubleClick(“***.png”):双击元素

input _(“text”):输入文本

……

实现了一个类似monkey工具的脚本示例如下(将所有截图放在工程里的btn_pictrues目录下即可):

02

写python脚本调用sikulixapi.jar中的API

** **准备环境

1

安装 jython : pip install JPype1

2

安装 VCForPython27

3

安装 JDK ,并配置% JAVA _HOME%

可能遇到的坑

调用getDefaultJVMPath,找不到 java _HOME;或者启动 java虚拟机 会崩溃。可能是由于java和python安装版本位数不同导致的,两个同为32位或者64位软件才能正常运行。

注: 使用java -d32 或者 -d64查看32还是64位;终端中输入python,如下图查看查看32还是64位。

总结

Sikuli的优点是简单容易上手,支持多种编程语言(python/java),但是缺点也很明显。图片的分辨率色彩和尺寸等对程序执行结果影响很大,一台设备上执行成功的脚本可能一直到另一台设备上不能成功,需要重新截图。而且只能检测当前桌面上显示的内容,后台进程无法操作,pc端的所有用户操作并没有完全支持,sikuli本身还不完善,还在开发升级阶段。所以使用sikuli完成复杂的大型自动化测试,还不是一个最佳选择,但是它小而美的特点还是可以应用于测试的很多场景的

更多学习资料戳下方!!!

文章来源:智云一二三科技

文章标题:Sikuli 基于图形识别的自动化测试技术

文章地址:https://www.zhihuclub.com/194653.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图