appium

appiumApache-2.0活跃维护

基于 W3C WebDriver 协议的跨平台自动化测试框架,用同一套 API 驱动 Android、iOS、Windows、macOS 上的原生、混合和 Web 应用。

Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol

[email protected]发布于 2026-10-31 21:15 UTC22,206star +9 / 7 天6,307fork同步于 2026-11-10 11:23 UTC

怎么上手

由 README 提炼,执行前请确认
npm i -g appium
appium driver install <driver-name>
appium server
硬件要求按 README 说明

README 未说明具体硬件或显存要求,仅提示查看安装文档中的系统要求;Appium 本身是 Node.js 服务端,实际运行依赖所装驱动对应的平台设备或模拟器。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 W3C WebDriver 协议的跨平台自动化框架,用一套脚本驱动原生、混合、移动 Web 和桌面应用

基于 W3C WebDriver 协议的跨平台自动化测试框架,用同一套 API 驱动 Android、iOS、Windows、macOS 上的原生、混合和 Web 应用。

核心能力

  • 基于 W3C WebDriver 标准协议统一驱动多平台
  • 通过 Driver 扩展支持 iOS、Android、macOS、Windows 等平台
  • 提供 Java、Python、Ruby、.NET C# 官方客户端库
  • 用插件机制在不改服务端代码的前提下扩展功能
  • xcuitest 与 uiautomator2 驱动支持原生与 WebView 无缝切换

容易踩的坑

只装核心服务端无法自动化任何平台,必须另外安装对应平台的 driver;从 Appium 1 升级前需先执行 npm uninstall -g appium 彻底卸载旧版;插件安装后不会自动生效,启动服务时需用 --use-plugins 显式启用;服务端默认监听 0.0.0.0:4723,客户端需按此地址端口连接。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本[email protected]
  1. @appium/[email protected]pre-release2026-10-31 · 2026-10-31 21:15 UTC
    查看更新说明

    8.0.0-beta.6 (2026-10-31)

    ⚠ BREAKING CHANGES

    • support: compareVersions() in @appium/support now orders prerelease versions correctly (2.0.0-beta.1 > 1.9.9, 2.0.0-beta.1 < 2.0.0). Before, it returned false for these.

    Features

    • support: accept removal options in rimraf helpers (#23105) (ed13ec7)

    Bug Fixes

    • support: compare prerelease versions by semantic precedence (#23116) (96c275f)
    • support: distinguish destinations on different devices (#23115) (e61d420)
    • support: handle circular arrays in getObjectSize (#23111) (efb5217)
    • support: preserve non-string values in safeJsonParse (#23110) (971fa8b)
  2. @appium/[email protected]pre-release2026-10-31 · 2026-10-31 21:15 UTC
    查看更新说明

    4.0.0-beta.7 (2026-10-31)

    Bug Fixes

    • universal-xml-plugin: report a malformed XPath as invalid selector (#23108) (bb93a07)
    • universal-xml-plugin: skip XML transformation when context is not NATIVE_APP (#23095) (84ad401)
  3. [email protected]pre-release最新正式版2026-10-31 · 2026-10-31 21:15 UTC

    4.0.0-beta.7 (2026-10-31)

    Bug Fixes

    • appium: respect server compatibility in extension update and warn on non-npm install (#23119) (80f69e3)
  4. @appium/[email protected]pre-release2026-10-31 · 2026-10-31 21:15 UTC
    查看更新说明

    6.0.0-beta.6 (2026-10-31)

    Bug Fixes

    • images-plugin: rethrow feature comparison errors besides a missing match (#23107) (9bf6c13)
    • opencv: bound every matched point in getImagesMatches rectangles (#23120) (4a04100)
  5. @appium/[email protected]pre-release2026-10-31 · 2026-10-31 21:15 UTC
    查看更新说明

    3.0.0-beta.7 (2026-10-31)

    Note: Version bump only for package @appium/storage-plugin

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    NPM version Monthly Downloads FOSSA Status StandWithUkraine CeasefireInGaza



    Appium is an open-source automation framework that provides WebDriver-based automation possibilities for a wide range of different mobile, desktop and IoT platforms. Appium is modular and extensible, and supports multiple programming languages, which means there is an entire ecosystem of related software:

    • Drivers add support for automating specific platforms
    • Clients allow writing Appium tests in your programming language of choice
    • Plugins allow to further extend Appium functionality

    Upgrading From Older Versions

    The Appium team only provides support for the most recent version of Appium. If you wish to upgrade from an older major Appium version, please refer to the migration guides:

    Installation

    Appium can be installed using npm (other package managers are not currently supported). Please check the installation docs for the system requirements and further information.

    If upgrading from Appium 1, make sure Appium 1 is fully uninstalled (npm uninstall -g appium). Unexpected errors might appear if this has not been done.

    npm i -g appium
    

    Note that this will only install the core Appium server, which cannot automate anything on its own. Please install drivers for your target platforms in order to automate them.

    Drivers

    Appium supports app automation across a variety of platforms, like iOS, Android, macOS, Windows, and more. Each platform is supported by one or more "drivers", which know how to automate that particular platform. You can find a full list of officially-supported and third-party drivers in Appium Ecosystem's Drivers page.

    Driver management is done using Appium's Extension command-line interface:

    # Install an official driver from npm (see documentation for a list of such drivers)
    appium driver install <driver-name>
    # Install any driver from npm
    appium driver install --source=npm <driver-name>
    # See documentation for installation from other sources
    
    # List already installed drivers
    appium driver list --installed
    # Update a driver (it must be already installed)
    # This will NOT update the major version, in order to prevent breaking changes
    appium driver update <driver-name>
    # Update a driver to the most recent version (may include breaking changes)
    appium driver update <driver-name> --unsafe
    # Uninstall a driver (it won't last forever, will it?)
    appium driver uninstall <driver-name>
    

    Clients

    Client libraries enable writing Appium tests in different programming languages. There are officially-supported clients for Java, Python, Ruby, and .NET C#, as well as third-party clients for other languages. You can find a full list of clients in Appium Ecosystem's Clients page.

    Plugins

    Plugins allow you to extend server functionality without changing the server code. The main difference between drivers and plugins is that the latter must be explicitly enabled on Appium server startup (all installed drivers are enabled by default):

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

    You can find a full list of officially-supported and third-party plugins in Appium Ecosystem's Plugins page.

    Similarly to drivers, plugin management is also done using Appium's Extension command-line interface:

    # Install an official plugin from npm (see documentation for a list of such plugins)
    appium plugin install <plugin-name>
    # Install any plugin from npm
    appium plugin install --source=npm <plugin-name>
    # See documentation for installation from other sources
    
    # List already installed plugins
    appium plugin list --installed
    # Update a plugin (it must be already installed)
    # This will NOT update the major version, in order to prevent breaking changes
    appium plugin update <plugin-name>
    # Update a plugin to the most recent version (may include breaking changes)
    appium plugin update <plugin-name> --unsafe
    # Uninstall a plugin
    appium plugin uninstall <plugin-name>
    

    Server Command Line Interface

    In order to start sending commands to the Appium server, it must be running on the URL and port where your client library expects it to listen. Appium's command-line interface is used to launch and configure the server:

    # Start the server on the default host (0.0.0.0) and port (4723)
    appium server
    # You can also omit the 'server' subcommand
    appium
    # Start the server on the given host, port and use a custom base path prefix (the default prefix is '/')
    appium --address 127.0.0.1 --port 9000 --base-path /wd/hub
    

    Appium supports execution of parallel server processes, as well as parallel driver sessions within a single server process. Refer the corresponding driver documentations regarding which mode is optimal for the particular driver or whether it supports parallel sessions.

    Why Appium?

    1. You usually don't have to recompile your app or modify it in any way, due to the use of standard automation APIs on all platforms.
    2. You can write tests with your favorite dev tools using any WebDriver-compatible language such as Java, Python, Ruby and C#. There are also third party client implementations for other languages.
    3. You can use any testing framework.
    4. Some drivers like xcuitest and uiautomator2 have built-in mobile web and hybrid app support. Within the same script, you can switch seamlessly between native app automation and webview automation, all using the WebDriver model that's already the standard for web automation.
    5. You can run your automated tests locally and in a cloud. There are multiple cloud providers that support various Appium drivers (mostly targeting iOS and Android mobile automation).
    6. Appium Inspector can be used to visually inspect the page source of applications across different platforms, facilitating easier test development.

    Investing in the WebDriver protocol means you are betting on a single, free, and open protocol for testing that has become a web standard. Don't lock yourself into a proprietary stack.

    For example, if you use Apple's XCUITest library without Appium, you can only write tests using Obj-C/Swift, and you can only run tests through Xcode. Similarly, with Google's UiAutomator or Espresso, you can only write tests in Java/Kotlin. Appium opens up the possibility of true cross-platform native app automation, for mobile and beyond!

    If you are looking for a more comprehensive description of what this is all about, please read our documentation on How Does Appium Work?.

    Sponsors

    Appium has a Sponsorship Program! If you or your company uses Appium and wants to give back financially to the project, we use these funds to encourage development and contributions, as well as support other open source projects we rely on. Become a sponsor via our OpenCollective page.

    Development and Strategic Partners

    Appium is incredibly grateful to our Development and Strategic Partners for their sustained contribution of project development and leadership!

    Other Sponsors

    A full list of sponsors is available at our Sponsors page.

    License

    Apache-2.0

    FOSSA Status

    @appium/logger package is under ISC License.