会截图就会自动化测试:Sikuli编程技术

发表于:2014-05-22来源:领测软件测试网作者:领测软件测试网采点击数: 标签:自动化测试Sikuli
会截图就会自动化测试Sikuli:创新的图形化编程技术本文将介绍由 MIT 研究团队发布的图形化编程技术 Sikuli。它以图像检索为基础,提供了一套基于 Jython 的脚本语言以及集成开发环境,使用者可利用屏幕截图直接引用 GUI 元素进行编程,完成交互操作。文中将

  本文将介绍由 MIT 研究团队发布的图形化编程技术 Sikuli。它以图像检索为基础,提供了一套基于 Jython 的脚本语言以及集成开发环境,使用者可利用屏幕截图直接引用 GUI 元素进行编程,完成交互操作。文中将通过其在 GUI 自动化测试中的实际应用分析及程序示例,阐述其带来的应用思路和可能性。

  引言

  在 GUI 测试中,识别个性化控件、模拟用户行为及对校验屏幕显示结果常常成为自动化测试的瓶颈,此类测试场景大多数情况下仍然依赖于手工测试。本文介绍一种新兴的 图形化编程技术 Sikuli,它摆脱了对控件 API 的依赖,通过当前屏幕的实时图像检索获取操作对象,模拟用户行为,匹配屏幕区域以校验真实的视觉显示结果。文中将通过其在 GUI 自动化测试中的实际应用分析及程序示例,阐述其带来的应用思路。

  作为一个手工或者黑盒测试人员,有一项技能应该是必备的,那就是截图技能。好的bug截图会让开发人员一眼就能定位到bug所在,让他们很清晰直观的了解到什么地方出了bug,这个bug究竟是什么。截图技巧的高低会直接影响到开发人员对测试人员的评价高地及信任程度,以至于很多时候,有一些刚入行的同学在跟我聊天的时候隐约提到,他们认为手工测试就是 点来点去 + 截图。当然这个观点自然是片面和消极的,不过从这里我们也可以看出,对测试人员来说,截图一手好图不亚于某风流才子吟得一首好诗,会截图,截好图的测试人员会潜移默化的使得整个团队都变得高效和敏捷起来。

  测试人员都会截图。以前我们截的图都是给人看的,现在我们要截图给机器看,让机器通过截图去“读懂”我们的想法,为我们进行自动化测试。

  Sikuli是什么?

  下面是来自于官网的介绍:

  Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script automates anything you see on the screen without internal API’s support. You can programmatically control a web page, a Windows/Linux/Mac OS X desktop application, or even an iphone or android application running in a simulator or via VNC.

  Sikuli是一种使用截图进行UI自动化测试的技术。Sikuli包括sikul脚本,基于Jython的API以及sikuli IDE。Sikuli可以实现任何你可以在显示器上看到ui对象的自动化,你可以通过编写一些代码来实现web 页面,window/linux/Mac OS X桌面应用、甚至是iphone和android模拟器的自动化测试。

  安装jruby/sikuli及其他软件:

  在这里我们先介绍一下如何使用sikuli + jruby + watir-web_driver来实现基于web的自动化测试,因此在开始之前,我们需要安装一些基本工具。

  安装sikuli:

  在这里下载安装sikuli:http://sikuli.org/download.shtml

  注意:

  1,sikuli是跨平台的,所以请选择对应的平台版本进行下载;

  2,sikuli需要最新的JRE作为支持,所以安装前请将jre升级到最新;

  3,Sikuli安装完成后,运行sikuli IDE,检查是否正常安装。

  安装jruby:

  下载地址:http://www.jruby.org/download

  注意:

  1,如果是windows系统,请选择JRuby 1.6.1 Windows Executable (md5, sha1)进行安装;

  2,安装完成后,进入命令行,键入jruby -v查看jruby版本,确定jruby是否安装成功;

  3,将sikuli安装目录下的sikuli-script.jar文件拷贝至jruby安装目录\lib目录下;

  安装watir-webdriver

  安装完jruby后,进入命令行,键入jgem install watir-webdriver,进行安装。

  注意:

  1,无法安装时请google

  2,如果仍然无法安装,请联系本文作者;

  安装jruby是因为在sikuli运行的时候会用到Java对象,因此需要在jruby环境中使用。当然,也可以使用jython来调用sikuli,sikuli IDE默认的脚本语言是jython。

  安装watir-webdriver是因为我们需要一套web 页面的自动化测试框架来配合sikuli使用,让sikuli的作用发挥至最大。

  Sikuli 是什么

  Sikuli 是由 MIT 的研究团队发布的新型图形化编程技术。它以图像检索技术为基础,提供了一套基于 Jython 的脚本语言以及集成开发环境。使用者可利用屏幕截图直接引用 GUI 元素进行编程,完成交互操作。Sikuli 一词取自墨西哥 Huichol Indian 土著语,意为“上帝之眼”,正如其开发者张琮翔所说—— Sikuli 让电脑能像人一样“看”这个“真实世界”。

  Sikuli 的安装与 IDE 使用

  目前 Sikuli 的最新版本为 Sikuli X-1.0rc2。在其 官方网站下载区可获得为 Mac OS X、Windows 和 Linux 操作系统所提供的安装文件及安装方法简介。

  需注意的是,在 Windows 平台下,要求有 Java 6 的运行环境支持,若要正常使用 1.0rc2 版本中新增的扩展组件 Sikuli Guide,还需更新 Java 至当前最新版本。在 Linux 平台上,除了要安装 Java6 的运行环境之外,还需安装 wmctl 和 opencv2.0 的 libcv4, libcvaux4, libhighgui4 包。

  Sikuli 提供了一个简易的脚本开发环境。缺省界面由菜单栏、工具栏、侧边栏、编辑区、控制台和状态栏六部分组成,如图 1 所示。

  图 1. Sikuli-IDE 界面组成

图 1. Sikuli-IDE 界面组成

  工具栏中提供了两组共计 5 个常用工具按钮及文本搜索框:

屏 幕截图(Take screenshot):点击该按钮,进入屏幕截图状态,拖拽辅助线选取需要截取的界面元素,释放鼠标左键的同时,自动将该截图插入到编辑区中光标当前位 置。使用快捷键 Ctrl+Shift+2(Command+Shift+2)也可激活截图状态,以完成对于弹出菜单、下拉框一类的控件的实时截图。该快捷键亦可通过主菜 单 File->Preferences 进行自定义。

原文转自:http://www.ltesting.net