Sikuli 测试

今天看见论坛帖子有人答复我上次提的自动化测试工具的寻找问题。其中一人推荐Sikuli ,自己下载下来后在windows上运行了下,感觉很容易上手,还不错,但是不知道在linux系统上运行起来咋样,还在安装中,等待实践;不过对此款软件还是写几句感言,后续实践了再补充;

1、简单,依靠图像识别,UI界面也很简洁(当然有些该有的功能还没加上去);跨多平台,据说还可以实现android测试;

2、运行起来也简单,对基本的功能测试很实用,无需掌握太多编程知识;

不过缺点也有,因为是图像识别,其对环境的要求应该比较高,如果环境变化大,恐怕会不停修改脚本;

对java环境有要求,不然要报错;

下面是官方文档,保存起来,后续用到时在研究;

http://sikuli.org/docx/

http://blog.sikuli.org/

sikuli

目录

简介
工作原理
测试应用中的优缺点
项目进展

编辑本段简介

  MIT的研究人员设计了一种新颖的图形脚本语言Sikuli,计算机用户只须有最基本的编程技能(比如会写print"hello world"),他不需要去写出一行行代码,而是用屏幕截图的方式,用截出来的图形元素组合出神奇的程序。
  
  根据MIT研究人员的论文(PDF)描述,使用者只要对Python语言有基本的了解,Sikuli可以利用图形用户界面的截图元素自动的完成大多数编程任务。用研究人员的举的例子来说,就好象巴士正在转过街角,脚本能通知乘客,好让他及时赶上。  在上世纪80年代以前,要使用电脑软件需要记住大量的命令才完成相应的任务。但随后出现了GUI(图形用户界面),使用者只需要借助直观的按钮或其他视觉元素即可操作软件。但GUI的出现并没有给程序员带来便利,他们仍然需要借助代码来实现相应的功能。如果要让不同的软件相互配合,也同样要进行代码调用。  而麻省理工学院开发的Sikuli项目则可以使得这一过程变得更加简单,只需要略懂一点编程语言即可完成简单的编程和程序间的调用。利用 Sikuli,用户要使用其他的界面元素,或调用其他程序,不必输入代码,只需要插入相应的按钮或图标截图即可。  例如,当编程人员想要编写一个脚本,实现如下功能:当上班时所乘坐的公交车到达某一站时,自动向手机发送一条提示信息。如果是在以前,需要对相应的坐标进行确定,并通过文本的方式将其编写成代码。而如果在当地公交网站上有一个通过谷歌地图绘制的公交路线图,而且上面有活动的路标,那么编程人员便可将路标移动到需要发送短信的位置,并进行截图。这样一来,只需要将该截图插入到If之后,即可设定好条件语句,从而触发特定的信息。当然,这同样需要具备一些基本的编程基础。  当用户需要调用其他程序时也可以使用这一功能,例如,需要调用其他程序上的某个功能,则只需要将该功能所对应的按钮截图插入到代码中对应 的位置即可。  除了方便编程外,该技术还可以用于进行大规模的程序测试。例如,测试某一按钮是否正常工作。这时,通过Sikuli来调用待测试的按钮便可节约 大量时间。  此外,Sikuli还可用于可视化搜索。例如,对生活中的某一事物拍摄照片,即可搜索相关的信息;或是在某一地区迷路,只要将周围环境的照片上 传到搜索引擎,便可得到相应的地理位置。谷歌此前推出的Goggles也具备了类似的功能。  据麻省理工学院的研究人员介绍,Sikuli的工作模式与人眼一样,直接识别图像,而不是底层代码,因此因此不会产生不兼容的问题。 Sikuli在墨西哥维乔印第安人(Huichol Indians)的语言里是上帝之眼的意思。  这个项目的主创人员之一是来自台湾的张琮翔,他也是著名的技术博客系列追求神乎其技的程序设计之道的作者。

编辑本段工作原理

  工作原理图如下:
  

工作原理图

  以Jython为基础,需要搭建Java运行环境。

编辑本段测试应用中的优缺点

  优点:  1.与平台无关  可以实现任意类型的UI(GUI)测试,轻松实现跨平台测试,并可以解决web测试中的浏览器兼容性测试问题。  2.可读性强  代理可读性强,用图形表示逻辑关系更生动、形象,容易理解,便于维护。  3.提供.jar包  便于构建大型的测试框架,实现各类测试工具之间的互补。  4.用例设计与程序实施可分离  用例设计人员可以只关注图型逻辑关系和测试检查点,不需要懂得具体开发与程序语言基础;程序实施人员可以只进行编程而不过多参与设计。

编辑本段项目进展

  目前最新发布的版本为:1.0rc3
扩展阅读:
  • 1

    http://sikuli.org


你可能感兴趣的:(Sikuli 测试)