当前位置: 代码迷 >> 综合 >> 安卓自动化工具介绍+android-sdk相关工具:appium,AndroidSDK,uiautomatorviewer,monkeyrunner,
  详细解决方案

安卓自动化工具介绍+android-sdk相关工具:appium,AndroidSDK,uiautomatorviewer,monkeyrunner,

热度:65   发布时间:2023-11-21 17:57:27.0

1.appium

1.1原理图:

概述:

1.appium开启http服务:0.0.0.0:4723/wd/hub,

2.脚本调用库向appium服务发送信息,appium通过脚本的连接信息知道连接哪个设备和要操作的app

服务端和设备如何通讯?

服务端和设备默认使用4724端口进行通讯的,底层调用uiautomator工具,在测试的时候服务端会给设备扔一个jar包就是appiumbootstrap.jar,会启动这个包,启动之后会在手机上创建一个socket服务,暴露的就是4724的端口;相对于socket服务来说,appium服务端又是一个客户端;

服务端的4724可以修改,设备上的不可以;服务端收到脚本传递过来的命令之后,通过电脑上的4724端口,想设备上的4724端口发送指令,appiumbootstrap.jar收到指令后回去完成点击,滑动其他的操作,完成之后再通过服务给服务端一个相应。服务端收到之后再去相应脚本。

1.2Appium的加载过程

1)调用Android adb完成基本的系统操作

2)向Android上部署bootstrap.jar

3)Bootstrap.jar Forward Android的端口到PC机器上

4)Pc上监听端口接收请求,使用webdriver协议

5)分析命令并通过forward的端口发给bootstrap.jar

6)Bootstrap.jar接收请求并把命令发给uiautomator

7)Uiautomator执行命令

1.3appium工作过程

1.appium是c/s模式的 
2.appium是基于webdriver协议添加对移动设备自动化api扩展而成的,所以具有和webdriver一样的特性,比如多语言支持 
3.webdriver是基于http协议的,第一连接会建立一个session会话,并通过post发送一个json告知服务端相关测试信息 
4.对于android来说,4.2以后是基于uiautomator框架实现查找注入事件的,4.2以前则是instrumentation框架的,并封装成一个叫Selendroid提供服务 
5.客户端只需要发送http请求实现通讯,意味着客户端就是多语言支持的 
6.appium服务端是node.js写的,所以你安装的时候无论哪个平台都是先装node,然后npm install -g appium安装(翻墙墙)

2.uiautomatorviewer

E:\program files\AndroidSDK\android-sdk-windows\tools\uiautomatorviewer.bat

是android SDK自带的工具。通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。该工具位于SDK目录下的tools\bin子目录下。可以看到,它是通过bat文件启动的。

使用uiautomatorviewer进行元素定位

图片说明:

1.刷新按钮:模拟器或实体机页面变化时需点击此按钮,在uiautomatorviewer中重新加载页面

2.手机中某个按钮

3.按钮被解析出来的对应的节点

4.按钮元素(节点)的id属性

5.按钮元素(节点)的class属性

tips:元素定位工具还可用appium-desktop

3.monkeyrunner

monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。

monkeyrunner工具同Monkey工具的差别

Monkey:

Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流。

monkeyrunner:

monkeyrunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。

3. android-sdk相关工具


Android SDK Manager (目录: .\android-sdk-windows\SDK Manager.exe)就是一个Android软件开发工具包管理器,就像一个桥梁,连通本地和服务器,从服务器下载安卓开发所需工具到本地。

AVD Manager (目录: .\android-sdk-windows\AVD Manager.exe)是一个Android虚拟驱动管理器,主要用来创建安卓模拟器(即手机模拟器)。当然,安卓模拟器所需的镜像(可以理解成模拟器的操作系统)是通过SDK Manager来下载的。

对于SDK Manager和AVD Manager的使用,还需要一个基础工具包tools (目录: .\android-sdk-windows\tool\)提供支持。
 

  相关解决方案