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 再将结果返回给脚本

相关推荐
liwulin050641 分钟前
【PYTHON-YOLOV8N】关于YOLO的推理训练图片的尺寸
开发语言·python·yolo
我送炭你添花1 小时前
Pelco KBD300A 模拟器:04+1.Python 打包详解:历史、发展与多种方式对比
python·测试工具·运维开发
yaoh.wang1 小时前
力扣(LeetCode) 27: 移除元素 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·双指针
幸存者letp1 小时前
Python 常用方法分类大全
linux·服务器·python
2401_841495641 小时前
【自然语言处理】中文 n-gram 词模型
人工智能·python·算法·自然语言处理·n-gram·中文文本生成模型·kneser-ney平滑
嘻哈baby1 小时前
为什么越来越多的人放弃Flask转向FastAPI?
python
ss2732 小时前
Java并发编程:DelayQueue延迟订单系统
java·python·算法
JHC0000002 小时前
118. 杨辉三角
python·算法·面试
@游子2 小时前
Python类属性与魔术方法全解析
开发语言·python
yuhaiqun19892 小时前
Typora 技能进阶:从会写 Markdown 到玩转配置 + 插件高效学习笔记
经验分享·笔记·python·学习·学习方法·ai编程·markdown