更新“Appium运行原理”讲解!

2020-12-02 15:40:30 浏览数 (1)

上篇文章中,讲解 Appium 运行原理、Web-Selenium 的运行原理的时候,图片放重复了,导致讲解不是很清晰。本篇文章更新一下此处的讲解,多有疏忽,请见谅!

1.Web-Selenium 运行原理:

图片来自网络

通过 Http 通信,没有改变浏览器访问系统的属性,只要访问就可以了。Appium 做自动化也是如此。

2.Appium 运行原理:

图片来自网络

安卓和 Ios 都有自己自带的自动化测试框架。因为 Ios 和安卓是不同的语言编写的,所以用 Appium(Appium 是跨平台跨语言)。

版本不一样,用的自动化框架也不一样。自动化框架不一样,API 接口也不一样。

图片来自网络

Appium server 去跟移动端的东西通信,首先确实是 Ios 还是安卓。即使确认了是安卓,也得确认下是 UiAutomator 的 Api 还是 Instrumentation 的 Api。

一般只支持主流版本,其它版本需要用户自己支持了。

启动一个模拟器或者真机就有一套自带的自动化框架。

图片来自网络

Appium 发送命令到手机,手机上有个 Bootstrap 接收命令。Bootstrap 是一个服务:Ip 地址和端口做的一个监听。

Appium server 启动后得到代码发送的命令后,不会直接发给手机。

比如你在安卓 8 的设备上做个什么操作,打开一个 APP,Appium server 检查下目前设备上有没有安卓 8 的。如果有,它就把这个命令发送给手机端。

Bootstrap 得到命令后,在本系统中调用 UIAutomator 提供的 API 去做一些实际的操作。就实现了通过 Python 代码去驱动移动端做一堆的事情。

Bootstrap.jar 就是利用了 UIAutomator 一个测试类在这个当中写了 Ip 地址和端口,启动这个服务就结束了。当然也会传达命令,调用 UIAutomator 等。

Appium server 是个服务,移动终端上面也放了一个服务。作为服务主要接收别人向我们发送的命令,实际上就是通信

Appium server 这个中间件支持 Ios、安卓。

移动端不仅有 Web 网页的操作,还有自己特性的操作。移动端的特点:手指触屏操作、多点触控、混合应用。移动端特有的操作,把命令加进来,做一个扩充就好了。

装了 Appium 没有装 Selenium 是肯定会报错的。因为 Appium 是基于 Selenium 的,Appium 做了些拓展。

很多东西和 Web 自动化,包括从概念上都是一样的。虽然说,它做了拓展,它也是基于现在的基础。现在通信原理的基础上增加了一些原理,增加了一些操作,核心是没有变的。原因很简单:大家都是界面操作。本质上是差不多的,就是在不同的平台上来做这些事情。

很多方面基本上都是这种思想来做的。现在开源的东西越来越多,很多实现思想就是这种分层、独立、兼容很多语言,可以不限定客户端是谁的。

Appium 本来就是开源的,是 Js 实现的。

以上是 Appium 客户端的介绍。


0 人点赞