Appium

Appium 是一个支持原生,混合和移动 web apps 的开源的跨平台测试框架工具

NPM version
Build Status

支持平台

为什么选择 appium ?

  1. 你不需要以任何方式重新编译或者修改你的 app,就可以在所有的平台上使用标准的自动化 APIs
  2. 你可以用你喜欢的开发工具使用任何 WebDriver 兼容的语言来编写测试用例.比如 Java, Objective-C, JavaScript with Node.js (in both callback and yield-based flavours), PHP, Python, Ruby, C#, Clojure, 或者 Perl 可以使用标准的 Selenium WebDriver API 和特定语言的客户端库.
  3. 你可以使用任何测试框架.

依托 WebDriver 意味着你可以押宝在一个已经成为事实上标准的独立,自由和开放的协议.而不会被限制在任何的专利中

如果在没有使用 Appium 的情况,你使用了 Apple 的 UIAutomation 库就只能通过 Javascript,并且只能通过 Instruments application 插桩应用来运行你的测试.
同样的,在 Google 的 UiAutomator 体系下,你只能用 Java 写你的测试案例.
Appium 最终开启了跨平台原生移动自动化的可能.

依赖

你的环境需要配置好运行测试相关的特定移动平台,下面列出相关的依赖平台
如果你想通过npm install来运行 appium, 为 Appium 研究和贡献力量.你需要node.js and npm 0.8 或者更高版本 (brew install node).

IOS 依赖

android 依赖

FirefoxOS Requirements

快速开始

启动 Appium server,并运行用你喜欢的 WebDriver 兼容的语言编写的测试用例.
你可以用 node.js 或者下面的应用程序来运行 Appium

使用 Node.js

$ npm install -g appium
$ appium &

使用 app

为 Appium 编写测试

我们支持 Selenium WebDriver JSON Wire Protocol 的一个子集
首先还需要指定特定移动平台相关的 desired capabilities 来通过 appium 运行你的测试

你可以通过 WebDriver 的元素定位策略的一个子集来定位元素
更多信息请参考 finding elements

我们也对 JSON Wire Protocol for automating mobile gestures 做了一些扩展以支持像 tap, flick, 和 swipe 这样的动作 (松开,按压,滑动等手机手势)

你也可以在混合模式下自动化你的用 HTML5 构建的 Web 页面 hybrid app
guide

这个代码地址包含了 很多不同语言的测试例子!

想了解全部的 Appium 的文档页面,请访问 这个目录.

工作原理

Appium 通过多种原生自动化框架来提供基于 Selenium 的 WebDriver JSON wire protocol api

Appium 驱动 Apple 的 UIAutomation 库提供 IOS 支持. UIAutomation 基于Dan Cuellar's

Android 支持上, 在新版本的 Android 使用了 Uiautomator 框架,老版本的 android 上使用了
Selendroid

FirefoxOS 的支持依赖一个基于 Gecko 平台并且兼容 WebDriver 的自动化驱动Marionette,不过暂不翻译了.因为暂时用不到

如何贡献代码

可以看下我们的文档 contribution documentation
以了解如何从源代码中进行编译,测试和运行

其他项目的授权和灵感来源

Credits

邮件列表

声明和公告经常放到讨论组 Discussion Group, 需要注册

问题定位

我们增加了一个 问题定位指南.
如果你遇到一些问题,请看下这个问的那个.它包含了一些常见的错误说明,以及在无法解决的情况如何和社区联系

使用 Robots 扩展

可以使用 appium 的一些 robots 扩展.或者其他的 robots.想了解更多可以看看 Appium Robots


↙↙↙阅读原文可查看相关链接,并与作者交流