自从xcode8与ios10发布之后,使用appium做ios自动化测试的就苦逼了。appium团队在连续发布1.6的三个beat版本试用之后总是有这样那样的问题,不过还是怀着一颗兴奋的心情迫不及待的投入试用过程中,试用过程如下:
首先需要强调的是,由于这个还是beta版本,很多东西都需要源码进行,所以重要的事情强调三遍:安装新版appium请翻墙!安装新版appium请翻墙!安装新版appium请翻墙!
appium 1.6的npm安装
|
|
- 安装新版appium首先需要将本地的老版本appium删除
- 新版appium安装需要依赖的node版本需要是最新版的(我也不知道为什么,网上也没有找到原因,但是升级了最新的node后安装就莫名其妙的搞定了)
我本地的版本如下所示:1234~ npm --version3.10.8~ node --versionv7.0.0
appium1.6的底层依赖
appium1.6会用到webdriverAgent,按照如下链接安装
WebDriverAgent
修改所依赖的jar包
实际在跑case的时候,总会遇到各种各样的报错,当时着急找方案解决,忘记记录下报错信息了,尴尬ing。。。
总结起来appium升级后对于本地的影响最大的还是做依赖的jar包版本,特别是基于某些内部的框架进行编写时,需要修改的jar包主要是selenium相关的各种jar包,具体修改的jar包与版本如下:
PS:如何下载以及导入jar包,自行搜索
对脚本影响最大的就是基于xpath识别的控件
xcode8对于自动化测试底层支持已经由以前的UIautomation全面换成xcuitest了,所以之前我们大家所熟识的xpath已经不能再用了。
暂时appium没有发布想对应的GUI程序,所以暂时的xpath识别可以使用阿里的macaca的inspector。链接如下:
Macaca macaca app-inspector 安装使用记
macaca不可用
你在mac上使用macaca时,会遇到一个无敌巨坑,这个解决稍微麻烦些,后续我会讲解。万一你遇到这种情况了,但是又着急使用有没有其他获取方式呢,只能不幸的告诉你,手动打印,肉眼看吧。。。。
当加载出你需要获取xpath的控件界面时,使用如下代码打印界面:
跑起来后你会在相应的位置得到一个界面的xml文件,使用浏览器打开,你看看到大致如下的一个xml文件:
可以根据xml文件中的层级关系编写“立即启程”按钮的xpath路径如下:
其他的点击等事件与之前封装的方法一致.
后续补充
完成了上面的操作,那么我们就可以开始愉快的编写用例了,然后年会偶然一天跑了下之前写的测试用例,第一步就被block住了。。。打开一看是开机动画变成了滑动界面了,真是欲哭无泪,这也就表明了基于UI的自动化测试固然方便,但是后续的维护成本真的很高啊。。。
想实现滑动其实也很简单,新版的appium还是可以继续支持touchAction方法的,所以我们可以直接使用已经封装好的swipe方法,实例如下:
需要注意的是swipe方法的五个参数,一次代表起始点x、y坐标,相对于起点坐标的偏移量x、y和滑动时间,单位毫秒。如果想滑的快,就把时间设置小,反之。