Sikuli 的优势及局限
Sikuli 为脚本赋予了人类的视角,让计算机不单能够去捕捉后台的接口数据和返回值,而且能如同人眼一般,“看”到一个真实的 GUI 展现。使用者直接在脚本中引用目标 GUI 元素的截图来获取该对象,并指定对其所进行的操作,简单高效。使得 GUI 自动化摆脱了对应用的内部程序实现的依赖,无需获取 API,亦无须了解 GUI 的内部代码实现;忽略了标准控件和非标准控件在操作和获取上的差异性;普遍适用于所有运行在有图形用户界面的操作系统之上的应用,有 GUI 显示的地方即可被获取和操作。实时的图形检索定位,避免了位移和 UI 重排等位置变化造成的无法准确定位并获取控件的问题。Python 语法兼容 +Java 内核,为其赋予了很强的扩展性,同时,Open Source 也让 Sikuli 本身获得了更多的发展机会和空间。使用 GUI 元素截图所编制的 Sikuli 脚本具有良好的代码可读性,这一点从上述实例场景中能够有所体会——在这种简短的脚本中,已基本接近自然语言的表述方式。这样的一种展现形式和特性使得手工测试用例与自动化测试脚本的距离大大缩小,使得这两者之间的自动转化和整合成为可能。
另外,利用 GUI 截图进行编程的这种特性使得使用者只需要具有基本的程序设计知识即可快速上手,轻松地创建自动化脚本操作 GUI 界面完成各种操作,大大降低了程序设计的门槛。使得更多的人可以定制个性化的桌面应用。
但在实际应用中,我们也同样发现,在现阶段 Sikuli 仍具有一定的局限性:
依赖屏幕截图,使其在不同的操作系统上,不同的浏览器中,甚至是不同的显示分辨率下,需要独立维护一套图形源文件,对于其跨平台的能力造成障碍。
由于对于截图的检索依赖于实时的桌面显示,若出现程序逻辑之外的意外界面遮挡或焦点切换(如,弹出窗口等),则会对程序执行造成影响。
IDE 处于开发初级阶段,稳定性和易用性存在一定问题。其本身仅支持初级的代码编辑功能,对于规模较大的代码开发和调试工作仍存在不便之处。其在 Windows 平台和 Linux 平台上的运行稳定性也稍逊于在 MacOSX 上的表现。
因此,现阶段若要使用 Sikuli 独立完成具有一定规模的程序还有些困难,但作为现有自动化测试工具的有效补充,已可以很好的发挥其自身的优势,为日常工作带来便利。
总结
本文介绍了图形化编程技术 Sikuli,使测试人员对 Sikuli 脚本的特点和使用方法有初步的了解。同时通过实例展示如何应用 Sikuli 编写自动化脚本进行 GUI 交互操作及验证,分析目前 Sikuli 在应用上所具有的优势和局限。
参考资料
学习
随时关注 developerWorks 技术活动和网络广播。
访问 developerWorks Open source 专区获得丰富的 how-to 信息、工具和项目更新以及受欢迎的文章和教程,帮助您用开放源码技术进行开发,并将它们与 IBM 产品结合使用。
Sikuli 官方网站提供了 Sikuli 的安装包下载、完备的文档和丰富的实例。
vgod's blogSikuli 的主要开发者之一张琮翔的博客。