Java+Uiautomator2手机UI自动化实战 -- 1. Uiautomator2以及Uiautomator介绍

一 什么是Uiautomator?

UIAutomator是android的自动化测试框架,可跨APP。是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架。其最大的特点就是可以跨进程操作,我们可以使用UiAutomator框架提供的一些方便的API来对安卓应用进行一系列的自动化测试操作,如点击、滑动、键盘输入、长按以及常用的断言方法等。

Bootstrap是Appium在初始化的时候推送到安卓手机上的一个UiAutomator测试脚本,该脚本的唯一一个测试方法所做的事情是在手机端开启一个SocketServer(通信模块),用来监听Appium从PC端过来的命令发送给UiAutomator来执行处理。

Java+Uiautomator2手机UI自动化实战 -- 1. Uiautomator2以及Uiautomator介绍_第1张图片

WebDriver script:

  我们的测试脚本(java or python)

Appium:

  会首先开启一个监听4723端口的server,接收测试脚本发送过来的对应请求,再讲对应的请求发送给中间件Bootstrap.jar(注意这里的请求不是整个脚本文件,而是对应的命令请求,比如:点击一个元素就是一条请求)

Bootstrap.jar:

  监听4724端口由appium发送过来的相关请求,并且将请求转换成UiAutomator可以识别的命令发给UiAutomator进行处理

 

二 什么是Uiautomator2?

Uiautomator的升级版本

  • appium-uiautomator2-server模块的目标是使用Google的UIAutomator V2 API 重新实现appium-android-bootstrap的bootstrap模块。

  • appium-android-bootstrap建立在谷歌的UIAutomator v1之上,谷歌的UIAutomator v1 API现已破产并正式折旧。

  • Google UIAutomator v2修复了v1中的大部分问题。最重要的区别是将框架的升级过程与底层Android OS分离。

预置条件:此模块应支持Android 5.0(API Level 20)及更高版本

用法: 从Appium服务器是通过指定所需的能力要求automationName作为uiautomator2启动会话时。

如何运作呢?

当客户端请求创建新的AndroidDriver会话时,客户端将所需的功能传递给appium节点服务器。基于automationName所需功能的属性,appium重定向到相应的驱动程序模块(默认情况下appium传递给appium-android-driver,如果没有automationName

如果automationName是,uiautomator2则appium重定向到appium-uiautomator2-driver以创建新会话。

UIAutomator2驱动程序模块:创建会话,在设备上安装appium uiautomtor2服务器apks,启动服务器(Netty)并启动Netty服务器会话。

UIAutomator2服务器模块:一旦由驱动程序模块启动Netty服务器会话,服务器将继续在设备上侦听请求并相应地响应,直到调用DELETE SESSION。

由于UIautomator2创建会话,需要在设备上安装appium uiautomator2服务器的APK,这就是他的一个缺点,每次代码编译运行都要push安装一次APK,有点小麻烦。

 

三. Uiautomator1.0和2.0的区别?

两者的主要区别如下

(a)2.0基于 Instrumentation, 可以获取应用Context,可以使用Android服务及接口。

(b)2.0基于 Junit4,测试用例无需继承于任何父类,方法名不限,使用Annotation进行, 1.0需要继承UiAutomatorTestCase,测试方法需要以test开头。

(c)2.0采用Gradle进行构建,1.0使用Maven或Ant。

(d)2.0新增UiObject2、Until、By、BySelector等接口。

(e)2.0输出到Logcat,1.0可以使用System.out.print输出流回显至执行端。

(f)2.0输出为APK,1.0输出为JAR。

简单来讲,2.0操作更方便了。

 

 

你可能感兴趣的:(Java+Uiautomator2手机UI自动化实战 -- 1. Uiautomator2以及Uiautomator介绍)