Appium自动化原理浅析

一、Appium的介绍

来自官网的解释:Appium 是一个开源工具,用于自动化 iOS 手机、 Android 手机和 Windows 桌面平台上的原生、移动 Web 和混合应用。

我们使用了系统自带的自动化框架。这样,我们不需要把 Appium 特定的或者第三方的代码编译进你的应用,这意味着你测试使用的应用与最终发布的应用并无二致。我们使用以下系统自带的自动化框架:

iOS 9.3 及以上: 苹果的XCUITest

iOS 9.3 及以下: 苹果的UIAutomation

Android 4.3+: 谷歌的UiAutomator / UiAutomator2

Android 2.3+: 谷歌的Instrumentation. (通过绑定独立的项目——Selendroid提供对 Instrumentation 的支持)

Windows: 微软的WinAppDriver

简而言之就是Appium作为一个中间桥梁,调用Android或iOS系统自带的自动化框架,来实现了自动化。

二、Appium的设计

appium是一个c/s 架构,appium把(系统本身的)供应商提供的框架封装到一套 api—— webdriver api内,WebDriver规定了一个客户端-服务端协议(JSON Write Product);使用python等语言由客户端向服务端发送HTTP请求。对于Android和iOS本质上工作原理一致:


对于Android而言,appium启动时会给设备发送一个jar包,方便后期通讯。

测试脚本通过web driver协议(http协议)发送给服务端———服务端命令发送给jar包,jar包调用系统内部的自动化测试框架,实现自动化测试。

对于Ios而言,appium封装了apple的XCUITest框架,在设备中注入了bootstrap.js(脚本)进行监听。

脚本 通过web driver协议(http协议)发送给服务端——服务端命令发送给jar包,脚本调用系统内部的自动化测试框架,实现自动化测试。


由于UIAutomator对H5支持有限,appium引入了chromdriver来支持H5 的自动化。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容