appium 的工作原理

**

安卓:

**

1.1 appuim 基于 uiautomator2 的原理

appium 服务启动后默认在 4723 端口上创建一个 http 服务,脚本通过服务地址

http://xxxx:4723/wd/hub 和 appium 进行通信

在 初 始 化 脚 本 和 appium 连 接 的 过 程 中 appium 会 向 手 机 就 安 装 辅 助 app

uiautomator2.server.apk 和 uiautomator2.server.test.apk,并且做端口转发 adb forward tcp 8200 tcp 6790,安装以后会在手机上启动 uiautomator2 的 server,这个 server 启动后会在手机上创建一个 netty server,端口是 6790,appium 和手机上的 uiautomator2 server的 6790 端口进行通信,把从 4723 端口收到的脚本指令通过 8200 端口转发到手机的 6790端口上

1.2 appium 基于 uiautomator1 的原理

Appium 服务启动后默认在 4723 端口上创建一个 http 服务,脚本通过服务地址

http://xxxx:4723/wd/hub 和 appium 进行通信在初始化脚本和 appium 连接的过程中 appium 会向手机发送 AppiumBootstrap.jar,并且 做 端 口 转 发 adb forward tcp 4724 tcp 4724, 安 装 以 后 会 在 手 机 上 启 动AppiumBootstrap.jar,启动后会在手机上创建一个 socket 服务,端口是 4724,appium 和手机上的 socket 服务的 4724 端口进行通信,把从 4723 端口收到的脚本指令通过 4724端口转发到手机的 4724 端口上

1.3 appium 基于 chromedriver 的原理,

测试 H5 时使用appium 服务启动后默认在 4723 端口上创建一个 http 服务,脚本通过服务地址http://xxxx:4723/wd/hub 和 appium 进行通信在初始化脚本和 appium 连接的过程中会启动 chromedriver 创建一个 http 服务,端口是 8000,appium 和 chromedriver 的服务通过 8000 端口进行通信,chromedriver 服务接收到 appium 指令后去操作手机,操作完成再返回给 appium,appium 再返回给脚本

**

IOS 手机:

**Appium 服务启动后默认在 4723 端口上创建一个 http 服务,脚本通过服务地址http://xxxx:4723/wd/hub 和 appium 进行通信在初始化脚本和 appium 连接的过程中会向手机编译安装 webdriveragent app,并且启动 wda 在手机上创建一个基于 8100 的 http 服务,appuim 通过 4723 的端口接收到脚本传递的指令,appium 再通过本地的 8100 端口将收到的指令转发给手机上 8100 wda 服务,wda服务接收到指令再去操作待测 app,操作完成后返回给 appium 操作结果,appium 再将结果返回给脚本

相关推荐
2401_8288906411 分钟前
使用 BERT 实现意图理解和实体识别
人工智能·python·自然语言处理·bert·transformer
多恩Stone1 小时前
【3DV 进阶-2】Hunyuan3D2.1 训练代码详细理解下-数据读取流程
人工智能·python·算法·3d·aigc
xiaopengbc2 小时前
在 Python 中实现观察者模式的具体步骤是什么?
开发语言·python·观察者模式
Python大数据分析@2 小时前
python用selenium怎么规避检测?
开发语言·python·selenium·网络爬虫
ThreeAu.2 小时前
Miniconda3搭建Selenium的python虚拟环境全攻略
开发语言·python·selenium·minicoda·python环境配置
偷心伊普西隆2 小时前
Python EXCEL 理论探究:格式转换时处理缺失值方法
python·excel
精灵vector3 小时前
LLMCompiler:基于LangGraph的并行化Agent架构高效实现
人工智能·python·langchain
java1234_小锋3 小时前
Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征选择 - 移除低方差特征(VarianceThreshold)
python·机器学习·scikit-learn