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\)提供支持。