APP自动化-Appium原理

文章目录

  • [1. Appium 简介](#1. Appium 简介)
  • [2. Appium Drivers](#2. Appium Drivers)
  • [3. Appium原理](#3. Appium原理)
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

1. Appium 简介

Appium: 是一款开源框架,拥有丰富的生态系统和强大的社区支持。作为一种灵活的跨平台测试自动化工具,Appium 能够在 iOS、Android、Windows 和 Mac 设备上执行移动应用的自动化测试,并且支持使用相同的 API 编写适用于多个平台的测试脚本。

Appium 与 Selenium:

Appium 与 Selenium 类似,是一个跨语言的自动化框架,可与任何测试框架结合使用。支持多种编程语言编写测试脚本,包括 Java、JavaScript、PHP、Ruby、Python 和 C#。

2. Appium Drivers

  1. Appium 的核心是 Drivers(引擎),负责驱动设备或模拟器执行自动化脚本。
  2. Drivers 原为 Node.js 类,后被扩展为 BaseDriver,封装了 WebDriver 协议并加以增强,从而支持跨平台自动化测试,提升了灵活性和可扩展性。
  • iOS 引擎
    XCUITest-默认引擎:用于测试 iOS 原生应用程序。
    WebDriverAgent:基于 XCUITest 的开源框架,用于测试 iOS 应用程序
  • Android 引擎
    UiAutomator2-默认引擎:用于测试 Android 原生应用程序。
    Espresso:用于测试 Android 应用程序,特别适用于 UI 自动化测试。
    Selendroid:用于测试 Android 应用程序,支持旧版本的 Android 平台。
  • 其他引擎
    Chromium Driver:用于测试 Chrome 浏览器。
    Flutter Driver:用于测试 Flutter 应用程序。
    Windows Driver:用于测试 Windows 桌面应用程序。
    Mac2 Driver:用于测试 Mac 桌面应用程序。

Driver何时启动?

说明:Appium服务端收到POST /session请求时,根据automationName创建对应Driver实例

3. Appium原理

涉及客户端,服务端,移动端

  1. Client 端:与 Appium 的各种交互封装为可被调用的 API 或工具,可以通过 Inspector 或者 Java/Python/其他语言的 Appium 第三库对 Appium Server 进行调用。
  2. Server 端:起到了信息中转的作用。启动了一个 HTTP 服务,如此就可以接收Client 客户端的请求信息。会将所有的控制命令,比如:adb 命令,自动化的控制命令等其他命令转发到被测应用的移动端上面。
  3. 移动端:真正执行自动化测试的地方

【注】

Appium服务启动默认4723端口;

启动820x端口(一般是8200)启动自动化测试相关命令,传递给移动端6790端口;

Appium原理大致操作过程:

Appium 客户端(Python/Java库) → HTTP请求 → Appium服务器端(命令行/GUI,4723端口) → 匹配Driver → ADB命令(安装卸载/启动停止) → 端口转发(本地8200→设备6790) → 推送appium settings APK(初始化设置) → 启动appium server test APK(设备6790端口) → 移动端(真机/模拟器) → 操作被测App

xml 复制代码
# appium原理
客户端(Python/Java)
    ↓ HTTP请求 (POST /session + desired_caps)
Appium服务器 (localhost:4723)
    ↓ 解析capabilities,匹配automationName
创建AndroidUiautomator2Driver实例
    ↓ Driver初始化
ADB命令:
    ① 检查设备连接 (adb devices)
    ② 安装 appium-settings APK(后台权限控制)
    ③ 安装 appium-uiautomator2-server APK(自动化执行引擎)
    ④ 启动被测App
    ⑤ 端口转发:adb forward tcp:8200 tcp:6790
    ↓
设备端 appium-uiautomator2-server 在6790端口监听
    ↓
Appium服务器通过8200↔6790通道发送操作指令
    ↓
设备执行操作(点击、滑动、输入等)
    ↓
结果返回给客户端

总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐
神奇椰子1 小时前
Windows 系统 MC 服务器搭建保姆级教程
运维·服务器·windows
紫金桥软件1 小时前
安全可控,国标为证——紫金桥软件参与制定国家标准
安全·自动化·跨平台·scada·组态软件
林三的日常1 小时前
Nginx-Rift 漏洞
运维·nginx
DianSan_ERP1 小时前
快手订单接口中的逆向流程如何实现售后自动化处理?
运维·自动化
志栋智能1 小时前
从单点检查到全景监控:巡检超自动化的维度拓展
运维·服务器·网络·人工智能·自动化
实心儿儿1 小时前
Linux —— Linux进程信号 - 信号产生
linux·运维·服务器
qq_397752931 小时前
智能仓库技术:2026 自动化系统完整指南
自动化·仓储自动化·智能仓储·自动化仓库·智能仓库·仓储规划
b***25111 小时前
电池组PACK自动化生产线的工艺环节与关键控制
运维·自动化
csdn小瓯1 小时前
Pydantic V2 模型校验与配置管理最佳实践
运维·数据库·windows