Mac下的UI自动化测试 (三)】的更多相关文章

使用sikuli进行UI自动化测试固然是方便很多,不用一切都使用AppleScript那烦人的语法,只要界面的UI没有变化,结构的变化不会影响到基于sikuli的自动化,但是基于AppleScript的就会受到影响. 而且使用图像识别进行自动化,会比使用脚本实现的自动化更接近于真实的手动测试,毕竟人就是通过人眼来识别控件的,所以控件在UI上的变化都会影响到sikuli自动化,而对于BVT级别的自动化,重点还是关注与基本功能是否正常,对控件在UI上的变化还是不那么敏感为好. 在我实现一个产品的BV…
在我看来,实现UI自动化测试的过程一向都是令人快乐的事情,而维护它们就是跟噩梦一样了,尤其是对每次CI产生的build进行BVT测试,由于开发不会告诉你任何UI的变化,那么你拿到的测试结果就势必会一片红了.但是对于界面相对稳定的项目,有大量回归测试需要进行的项目,实现UI自动化的投资回报率还是很高的. 最近我实现了公司一个产品在Mac OSX上的UI自动化测试,下面就把具体的细节写出来. 首先,选用的是由 MIT 研究团队发布的图形化编程技术 Sikuli,它以图像检索为基础,提供了一套基于 J…
下面讲一下Sikuli的重要概念,就是region,所谓region就是Sikuli在进行图像识别的时候的一个区域,默认是整个屏幕. 当然,如果region选得太大的话,并且UI上存在相似的控件,那么就会造成图像识别的错误.而且region选得过大也会使得代码运行速度下降. 我在实际应用中,region选的是屏幕中间的工作区域,也就是除了最上方的global menu 和 system tray区域,和下方的dock区域,并且在被测程序启动后,将其最大化,以占满中间的工作区,防止其他应用的UI干…
在实际写testcase的时候会使用unittest框架,但是在sikuli中需要使用它提供的command来运行,位于/Applications/SikuliX.app/run,使用-r参数指定要运行的sikuli文件,然后再使用 --args参数将想传给这个sikuli文件的参数附在后面: sudo /Applications/SikuliX.app/run -r testcases/runner_html.sikuli --args report:[test report file, a…
文件处理 直接使用io调用 io.close();文件流关闭 io.flush():如果文件流以bufferd缓存模式处理,输入不会立即存入文件,需要调用本函数 io.input(file):输入 io.open(filename,mode);以相应的模式打开文件流. io.output(file)输出文件 io.tmpfile()打开一个临时文件流 io.type(obj) 类型 io.write(); 写入文件 明确调用 file:close();//关闭文件流 file = io.open…
PhantomJS(http://phantomjs.org/) 是一个基于WebKit的服务器端JavaScript API.它全面支持web而不需浏览器支持,其快速.原生支持各种Web标准:DOM处理, CSS选择器, JSON, Canvas, 和SVG. PhantomJS 可以用于页面自动化,网络监测,网页截屏以及无界面测试等. 0.下载安装(以Mac为例) 下载地址:http://phantomjs.org/download.html 下载后进行解压 将 phantomjs-2.0.…
一.缘 起 笔者之前一直在Windows环境下编写UI自动化测试脚本,近日在看<京东系统质量保障技术实战>一书中,萌生出在jenkins下构建UI自动化测试的想法 二.思 路 首先,在Linux环境搭建jenkins平台 然后,将脚本上传至Linux服务器 最后,在jenkins平台构建自动化任务 三.说 明 Linux环境,Centos7 64位 虚拟机 JDK1.8 + jenkins 2.121.2 Python3.6 + Selenium 2.5.3 + Phantomjs 2.1.1…
[原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式是因为确确实实一个项目开始去做自动化测试,由于公司当时有个内部研发项目,类似目前的“58同城”之类网站,不过最终由于各种原因,这个项目停掉了,可以看出腾讯内部其实在创新这块,有很多好的创新应用,但好多没做起来,也许是天时,地利,人和各种情况没有发生“共振”,造成了很多产品流产,也挺心痛的. 今天我们…
前两天分别讲述了UI自动化测试基础以及对页面元素该如何进行定位,这一篇自然就是对定位到的页面元素对象进行相应操作啦. 阅读目录 1.常用操作元素对象的方法 2.鼠标事件操作 3.键盘事件操作 4.WebElement接口常用方法 5.设置等待时间 6.打印验证信息 7.定位一组对象操作 8.层级定位操作 9.定位frame中对象操作 10.alert/confirm/prompt处理 11.下拉框处理 12.select菜单处理 1.常用操作元素对象的方法 webdriver中常用的操作元素的方…
在做这一节之前先配置我的另一篇文章所需要安装的前提准备条件:<[Mac + Appium学习(一)]之安装Appium环境前提准备> 一.安装IOS自动化测试环境 配置环境: Appium version :1.9.1 Appium-desktop:1.7.1 Xcode:10.0 iPhone5S:IOS(10.3.3) Mac:10.13.6 1.安装类库 ①安装Homebrew.npm 参考我的另一篇文章: <[Mac + Python]苹果系统之安装Python3.6.x环境&g…