点击查看原文
上篇文章中,讲解 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 客户端的介绍。
- 公众号 「清菡软件测试」 首发,更多原创文章:清菡软件测试 87+原创文章,欢迎关注、交流,禁止第三方擅自转载。
热文精选
- Python+Appium运行简单的demo,你需要理解Appium运行原理!
- 举个华为计算器的栗子「Appium环境配置与调试」
- 持续集成有什么好处?快来看鸭
- 怎么安装配置ADB环境?
- 使用Typora+PicGo配置Gitee图床
- Jenkins持续集成「编译打包、代码检查、单元测试、环境部署、软件测试」
- 避免栽坑之掌握Jenkins工作原理
- Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」
- Jenkins读取Allure结果出报告
- pytest的fixture怎么用?