APP自动化环境安装(一)

环境安装

Node.js
appium server-desktop
安卓ADT
appium python库
模拟器(真机)

UiAutomator、UiAutomator2、Bootstrap的关系

首先来说下UiAutomator和bootstrap:

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

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

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


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

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

UiAutomator2:
appium在最近有加入了对UiAutomator2(也可称为UiAutomator V2)的支持实现Android端自动化,原理同之前的UiAutomator+Bootstrap有很大的不同:

为了能够支持UiAutomator2,Appium引入了appium-uiautomator2-server(类似driver与Selenium关系)
以下是其官网的wiki介绍,提供官网WIKI
https://github.com/appium/appium-uiautomator2-server/wiki
ps:在获取到toast信息的时候需要将automationName设置成UiAutomator2,就是因为在UiAutomator2上新增了AccessibilityService服务,可以实现Toast的获取。

以下是其使用原理图:

WebDriver script:

不用多说,就是我们的执行脚本

Appium:

客户端传递desired capabilities属性配置给Appium Server来创建一个会话,Appium Server会调用appium-uiautomator2-driver,同时将UiAutomator2 server的两个apk安装到测试设备上

1、appium-uiautomator2-server-vx.x.x.APK

2、appium-uiautomator2-server-debug-androidTest.apk

UiAutomator2 server两个apk的作用:

1、UiAutomator2 驱动模块,负责创建会话,安装UiAutomator2-server.apk到设备上,开启Netty(这是一个通信框架,相当于Bootstrap使用的SocketServer升级版本)

2、UiAutomator2服务器模块,当驱动模块创初始化完毕,服务器就会监听PC端Appium发送过来的请求,将请求发送给真正底层的UiAutomator2。

你可能感兴趣的:(APP自动化环境安装(一))