Mac下的UI自动化测试 (一)
在我看来,实现UI自动化测试的过程一向都是令人快乐的事情,而维护它们就是跟噩梦一样了,尤其是对每次CI产生的build进行BVT测试,由于开发不会告诉你任何UI的变化,那么你拿到的测试结果就势必会一片红了。但是对于界面相对稳定的项目,有大量回归测试需要进行的项目,实现UI自动化的投资回报率还是很高的。
最近我实现了公司一个产品在Mac OSX上的UI自动化测试,下面就把具体的细节写出来。
首先,选用的是由 MIT 研究团队发布的图形化编程技术 Sikuli,它以图像检索为基础,提供了一套基于 Jython 的脚本语言以及集成开发环境,使用者可利用屏幕截图直接引用 GUI 元素进行编程,完成交互操作。
所有的按钮操作和拖动操作都是用Sikuli来完成的,而像窗口的相关操作,比如非全屏最大化,控制Finder定位到一个路径等等操作都是用AppleScript实现的,因为用图像识别去操作一些很小的或者是与周围图像没有明显区别的控件时,使用Sikuli还是不稳定的。
Sikuli不光提供了类库,还提供了一个IDE, 当然其功能很简单,而且经常crash,所以建议还是能不用就不用它吧。
还有就是由于Sikuli提供的是一套java包,然后再使用Jython进行包装,让其语言更加简单,但是这就有可能导致你想用的python库不能与jython兼容。
环境准备:
1. 安装Java SDK
2. 下载Sikuli, 访问官网下载jar包即可
3. 安装Sikuli, 双击'sikulixsetup-1.1.0.jar', 勾选1, 2即可 (Sikuli的安装界面,左右一个开源项目来说,已经是很出色了)

4. 安装过后,会生成一个app文件,建议将其拖到Application中吧:

5. 最后执行SikuliX.app即可
到此,安装就结束了,打开即可开到Sikuli的IDE了:

可以使用它方便进行截图和调整图片的匹配度。
6. 由于使用的是图像识别,所以最好在开发和运行阶段都将OSX的透明度关掉,以免干扰图像识别的准确度。
在System Preferences中关掉透明:

7. 将需要用到的app加入到“Security & Privacy”的“Accessibility”中:

到此,环境准备的差不多了,当然如果需要用到python的相关模块, 可以安装get-pip.py,之后执行install命令了:
sudo pip install [module name]
Mac下的UI自动化测试 (一)的更多相关文章
- Mac下的UI自动化测试 (三)
使用sikuli进行UI自动化测试固然是方便很多,不用一切都使用AppleScript那烦人的语法,只要界面的UI没有变化,结构的变化不会影响到基于sikuli的自动化,但是基于AppleScript ...
- Mac下的UI自动化测试 (二)
下面讲一下Sikuli的重要概念,就是region,所谓region就是Sikuli在进行图像识别的时候的一个区域,默认是整个屏幕. 当然,如果region选得太大的话,并且UI上存在相似的控件,那么 ...
- Mac下的UI自动化测试 (四)
在实际写testcase的时候会使用unittest框架,但是在sikuli中需要使用它提供的command来运行,位于/Applications/SikuliX.app/run,使用-r参数指定要运 ...
- 使用phantomjs进行无界面UI自动化测试
PhantomJS(http://phantomjs.org/) 是一个基于WebKit的服务器端JavaScript API.它全面支持web而不需浏览器支持,其快速.原生支持各种Web标准:DOM ...
- [原创]浅谈Web UI自动化测试
[原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式 ...
- Jenkins下构建UI自动化之初体验
一.缘 起 笔者之前一直在Windows环境下编写UI自动化测试脚本,近日在看<京东系统质量保障技术实战>一书中,萌生出在jenkins下构建UI自动化测试的想法 二.思 路 首先,在Li ...
- RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难
消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...
- MAC下搭建appium UI自动化环境
参考资料: http://qa.blog.163.com/blog/static/190147002201510161119832/ http://blog.csdn.net/liuchunming0 ...
- appium+python 【Mac】UI自动化测试封装框架流程简介 <一>
为了多人之间更方便的协作,那么框架本身的结构和编写方式将变得很重要,因此每个团队都有适合自己的框架.如下本人对APP的UI自动化测试的框架进行进行了简单的汇总.主要目的是为了让团队中的其余人员接手写脚 ...
随机推荐
- Linux下全局安装composer方法
1.下载composer curl -sS https://getcomposer.org/installer | php 2.将composer.phar文件移动到bin目录以便全局使用compos ...
- [转]html5 video在安卓大部分浏览器包括微信最顶层的问题
能否解决video标签置顶的问题?答案是:不行的. 具体可查看官方解释:http://x5.tencent.com/guide?id=2009 //====================201604 ...
- hdu 1028 && hdu 1398 && hdu 1085 && hdu 1171 ——生成函数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1028 就是可以用任意个1.2.3....,所以式子写出来就是这样:(1+x+x^2+...)(1+x^2+ ...
- 在centos阿里云服务器上安装配置php运行环境 安装php7
http://blog.csdn.net/kesixin/article/details/72882469 单独安装php7 http://blog.csdn.net/tang05709/articl ...
- 开启VMSS Autoscale的报警功能
VMSS可以自动的实现Scale Out和Scale in.在VMSS做自动操作的时候,可以通过配置通知服务,通知VMSS的状态. 具体实现方式: 1, 在portal中选择"监视器&quo ...
- Angular5学习笔记 - 配置NG-ZORRO(八)
一.在项目中集成组件 $ cd PROJECT_NAME $ npm install ng-zorro-antd --save 二.在项目中导入组件 直接用下面的代码替换 /src/app/app.m ...
- 侯捷STL学习(一)--顺序容器测试
开始跟着<STL源码剖析>的作者侯捷真人视频,学习STL,了解STL背后的真实故事! 视频链接:侯捷STL 还有很大其他视频需要的留言 第一节:STL版本和重要资源 STL和标准库的区别 ...
- Vue2.0+Webpack+Element+Axios+vueRouter技术栈使用过程总结
搭建项目架构 目采用Webpack+Vue-router的架构方式,开始安装(一切操作都在windows系统上完成) 1.按Win+R,然后在文本框中输入cmd,回车打开命令行,输入vue-cli安装 ...
- oracle——存储过程分页
1.包头: CREATE OR REPLACE PACKAGE BAWQ_PROC_PAGE IS -- BAWQ_PROC_PAGE 是包头名 TYPE T_CURSOR IS REF CURSOR ...
- TCS3200颜色传感器测试实验
TCS3200颜色传感器测试实验 2013-08-02 17:18:24 分享: 标签: Arduino TCS3200 传感器 TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAO ...