appium/uiautomator2的实现原理

Appium是一个跨平台的自动化测试工具,支持Android、iOS和H5,通过测试脚本控制服务器来操控移动设备。而uiautomator2专注于Android平台,简化了配置,通过安装atx-agent启动服务监听HTTP请求,实现设备操作。uiautomator2比Appium更简单易用,但不支持iOS。

appium总结自:https://testerhome.com/topics/11318

优点:
适用于android,ios,h5

实现原理:
测试脚本 – Appium工具 – 测试机
执行脚本,相当于发送命令给server端,Appium监听接受C端发来的请求,之后控制移动设备
在这里插入图片描述

uiaotomator2总结自:https://testerhome.com/topics/11357

优点:
简单,上手快,配置简单

缺点:
不能运用于ios,其他平台

实现原理:

  • u2封装了谷歌原生的u1,提供了便捷的python接口;
  • u2的init过程会让测试机安装atx-agent(守护进程),随后atx-agent启动 uiautomator2 服务 (默认
  • 7912 端口) 进行监听; 执行测试脚本(相当于发送 HTTP 请求到移动设备的 server 端) 移动设备通过 WIFI 或 USB
  • 接收到 PC 上发来的 HTTP 请求,执行制定的操作
### UIAutomator2Appium 的区别与关系 UIAutomator2 Appium 是两款用于 Android 应用自动化测试的工具,它们在功能使用场景上有一定的区别,同时也存在紧密的关系。 #### 区别 1. **开发语言与接口** UIAutomator2 是 Google 提供的一个基于 Java 的框架,主要用于 Android 原生应用的 UI 自动化测试。它封装了原生的 UiAutomator 框架,并提供了 Python 接口,使得开发者可以更方便地编写测试脚本 [^4]。而 Appium一个跨平台的自动化测试框架,支持多种编程语言(如 Java、Python、Ruby 等),并且不仅支持 Android 平台,还支持 iOS 平台的应用测试 [^4]。 2. **安装与配置** UIAutomator2 的安装相对简单,只需要通过 pip 安装即可: ```bash pip install uiautomator2 ``` 然后通过 ADB 连接设备并初始化: ```bash adb connect Your_Android_ip python -m uiautomator2 init ``` 而 Appium 的安装配置较为复杂,需要依赖 Node.js,并且通常会结合 Appium Desktop 使用以简化配置过程 [^1]。 3. **功能与灵活性** UIAutomator2 主要专注于 Android 原生应用的测试,支持黑盒测试跨应用测试,但它不支持 WebView 测试 [^4]。Appium 则更为灵活,除了支持 Android iOS 的原生应用外,还支持混合应用(Hybrid Apps) WebView 测试 [^4]。 4. **底层实现机制** UIAutomator2 在底层使用了 Netty 通信框架来监听来自 PC 端的请求,并将这些请求转发给底层的 UiAutomator2 框架 [^3]。而 Appium 则通过调用不同的驱动程序(如 `appium-uiautomator2-driver`)来与设备上的 UiAutomator2 Server 进行交互 [^2]。 5. **签名问题与中文输入** UIAutomator2 不涉及签名一致的问题,但需要处理中文输入问题;而 Appium 同样需要解决中文输入问题,但在某些情况下可能不需要关心签名一致性问题 [^4]。 #### 关系 尽管 UIAutomator2 Appium 在很多方面有所不同,但它们之间也存在密切的关系: 1. **依赖关系** Appium 在 Android 平台上进行自动化测试时,实际上是依赖于 UiAutomator2 的。当用户在 Appium 中设置 `automationName` 为 `UiAutomator2` 时,Appium Server 会调用 `appium-uiautomator2-driver`,并将 UiAutomator2 Server 的两个 APK 安装到测试设备上 [^2]。 2. **工作原理** Appium 通过 UiAutomator2 来执行具体的 UI 操作。具体来说,Appium Server 会启动 UiAutomator2 驱动模块,该模块负责创建会话并安装 UiAutomator2 Server 的 APK 到设备上。随后,UiAutomator2 Server 会监听来自 Appium 的请求,并将这些请求转发给底层的 UiAutomator2 框架 [^3]。 3. **互补性** 尽管两者都可以用于 Android 应用的自动化测试,但它们各有侧重。UIAutomator2 更适合于简单的 Android 原生应用测试,而 Appium 则更适合于复杂的跨平台或多类型应用测试。此外,Appium 提供了更多的插件扩展功能,能够更好地满足企业级自动化测试的需求 [^4]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值