Appium:跨平台测试自动化的通用解法

Appium 在 GitHub 上已经有 21593 Star。

它是一个开源自动化框架,基于 WebDriver 协议,为 iOS、Android、macOS、Windows 乃至 IoT 设备提供统一的测试自动化能力。核心特点:一套脚本覆盖多个平台,不需要修改被测应用本身。

1、 这玩意儿是干嘛的

Appium 只干一件事:让测试脚本可以操控各类设备上的应用。

原生应用、混合应用、移动网页、桌面程序,都在支持范围内。底层依赖各平台官方提供的自动化接口,但向上统一封装成 WebDriver 协议。你写的测试脚本,可以用 Java、Python、Ruby 或 C# 中的任意一种来完成。

整个体系分成三块:

  • Drivers:负责对接具体平台
  • Clients:提供各编程语言的 SDK
  • Plugins:在不改服务端代码的前提下扩展功能

正文顶部截图

2、 为什么要用它

做过移动端测试的人通常都有类似体验:iOS 用 XCUITest,Android 用 UiAutomator,桌面端又换一套工具。每种平台单独维护测试脚本,写法不统一,团队学习成本也高。

Appium 把这些差异统一了。你不需要重新编译应用,不需要在代码里埋点,直接用标准 WebDriver API 写测试。一个脚本里可以同时操作原生页面和 WebView,切换过程对脚本完全透明。

README区域截图

3、 怎么安装使用

安装 Appium 核心服务:

npm i -g appium

核心服务本身不能驱动任何设备,还需要安装对应平台的 driver:

appium driver install xcuitest      # iOS
appium driver install uiautomator2  # Android

启动服务,默认监听 0.0.0.0:4723:

appium server
# 或指定地址和端口
appium --address 127.0.0.1 --port 9000 --base-path /wd/hub

Driver 也支持更新和卸载:

appium driver list --installed
appium driver update <driver-name>
appium driver uninstall <driver-name>

如果需要插件扩展,先安装再启用:

appium plugin install <plugin-name>
appium --use-plugins=<plugin-name>

Driver 和插件都支持通过 npm 安装第三方扩展。

4、 适合哪些人用

  • 需要在 iOS 和 Android 上同时跑回归测试的 QA 团队
  • 希望用 Python 或 Java 写测试、而不是被平台原生语言绑定的开发者
  • 做跨平台 UI 自动化、需要统一脚本语言和执行流程的技术团队
  • 搭建云测试平台、需要标准化接口的基础设施团队
  • 正在做持续集成流水线、想把移动端测试接入 CI/CD 的工程师

Appium 也支持单台机器上跑多个服务端进程,以及单个服务端内跑多 session 并行测试,具体能力取决于所用 driver 的支持程度。

Appium 也支持单台机器上跑多个服务端进程,以及单个服务端内跑多 session 并行测试,具体能力取决于所用 driver 的支持程度。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐