Appium基础学习之 | Appium-Desktop与UiAutomator2

一、Appium-Desktop

在Appium1.4.16版本之后,Appium重新发布了新的集成工具Appium-Desktop,可以把Appium-Desktop当作是Appium1.4.16版本之后的替代品,Appium-Desktop同样提供了Appium Server端服务于客服端,也同样提供了像UI Automator Viewer获取设备页面的元素,除了这些它还提供了新手梦寐以求的录制功能(不建议使用),但Appium-Desktop并不是Appium,应该说它包含了Appium Server,但不仅仅是Appium Server这么简单。

为什么Appium之后冒出一个Appium-Desktop呢?一部分原因是对Appium的一次升级,增加更多功能让用户使用更简单方便,另一方面当然就是因为Appium基于的UiAutomator同样也升级了,就是现在主流App测试框架UiAutomator2.0。相对UiAutomator1.0来说,UiAutomator2.0底层内部实现逻辑改动,所以Appium Server也要相对的做出改变。

Appium-Desktop的安装、使用就不多说了,在网上百度一大堆,就不造轮子了。(安装Appium-Desktop必须要有JDK、android SDK环境)。

二、UiAutomator2.0

Google在2015年发布UiAutomator2.0,相对于UiAutomator1.0来说,UiAutomator2.0到底有什么变化,先回顾一下UiAutomator1.0的特点。

1.UiAutomator1.0

在使用UiAutomator1.0中,是在Eclipse中写好脚本,脚本需要继承UiAutomatorTestCase,每个测试方法名都是Junit3的风格需要以test开头,通过ant打包成jar推送到手机设备端执行;然后通过源码分析知道执行测试是通过继承Junit的TestCase来完成的;再然后到了UiAutomation连接AccessibilityServer来完成元素定位操作,总结后得到:

(1)支持Junit3,通过Junit执行测试

(2)java项目(打包成jar包执行)推送到设备

(3)通过UiAutomation子命令runtest运行执行测试

2.UiAutomator2.0

到了2.0版本,如果要用到UiAutomator2.0完成移动端测试,则变成创建Android项目来编写代码了,脚本不需要继承任何父类,并支持了Junit4使用注解的方式来表示一个测试,测试方法名可任意命名合法的java方法名字。相同的是2.0通过依赖与Junit来执行测试,同样的通过UiAutomation连接AccessibilityServer来完成元素定位操作。最大的区别是在于2.0基于Instrumentation,什么是Instrumentation后面再说。

(1)支持Jnuit4,以注解的方式表示测试

(2)android项目,UiAutomator2.0是基于Instrumentation来运行的,而Instrumentation是android内部API,必须与应用APK处于同一进程中运行才能使用。通过Gradle构建打包成Apk应用推送到设备端

(3)通过am子命令instrument运行执行测试

(4)UiAutomator2.0保留了原来UiAutomator的所有逻辑,并新增了UiObject2、Until、By、BySelector等类,让定位效率更高。

你可能感兴趣的:(Appium,Appium学习)