Appium
Appium是一个开源的、跨平台的测试自动化工具,用于本地、混合和移动web和桌面应用程序,在模拟器(iOS)、仿真器(Android)和真实设备(iOS、Android、Windows、Mac)上进行测试。
Supported Platforms
iOS
Android
Windows
Mac
请参阅平台支持doc以获得更详细的信息。
Why Appium?
1、由于在所有平台上使用标准的自动化api,您不必重新编译应用程序或以任何方式修改它。
2、您可以使用您喜欢的开发工具编写测试,使用任何与WebDriver兼容的语言,如Java、objective - c、JavaScript和Node.js(in promise, callbackorgeneratorflavors)、PHP、Python、Ruby、c#、Clojure或Perl中使用Selenium WebDriver API和特定于语言的客户程序库。
3、您可以使用任何测试框架。
在WebDriver协议上投资意味着你在一个单一的、免费的、开放的测试中打赌,这已经成为一个事实上的标准。不要把自己锁在一个专有的堆栈里。
如果你使用苹果的ui自动化库,而不使用Appium,你只能使用JavaScript编写测试用例,而且只能通过工具应用程序运行测试。同样,使用谷歌的UiAutomator,您只能在Java中编写测试用例。Appium打开了真正跨平台的本地移动自动化的可能性。
我还没明白…
如果你是Appium小白,或者想要更详细地描述这一切,请阅读我们的Appium概念介绍。
需求(Requirements)
您的环境需要为您想要运行测试的特定移动平台设置。具体的平台需求见下文。
如果您想通过npm安装运行Appium,对Appium进行hack或贡献,您将需要node.js和npm 4或更高的版本(使用n或brew安装节点来安装node . js)。确保你没有安装有sudo的节点或Appium,否则你会遇到问题。我们推荐最新的稳定版本。
为了验证Appium的所有依赖项是否满足,您可以使用appium-doctor命令行。使用命令行安装npm install- g appium-doctor(或从源代码运行它),然后运行appium-doctor,并提供——ios或——android标志,以验证所有的依赖项都是正确设置的。
您还需要下载您的语言的Appium客户端,这样您就可以编写测试。Appium客户端是对WebDriver客户端的简单扩展。您可以在Appium客户端列表中看到客户端和链接的下载说明。
iOS Requirements
1、Mac OS X 10.10 or higher, 10.11.1 recommended
2、XCode >= 6.0, 7.1.1 recommended
3、Apple Developer Tools (iPhone simulator SDK, command line tools)
Android Requirements
1、Android SDKAPI >= 17 (Additional features require 18/19)
2、Appium在OS X、Linux和Windows上支持Android。确保你遵循了在不同的OSes中正确设置你的环境的变量:
Windows Requirements
1、Windows 10
2、文档
Mac Requirements
1、Mac OS X 10.7 +
Quick Start
启动一个Appium服务器,然后运行你最喜欢的webdriver兼容语言的测试!您可以使用node.js或使用该应用程序开启一个Appium服务器,见下文。
(通过使用node.js开启一个Appium服务)Using Node.js
$ npm install -g appium(这里有一个巨坑,npm版本如果是最新(5.3.0)的则无法安装,会一直报错,所以需要给npm降低版本:npm install npm@4 -g,如果这一步出错,那就需要先清除npm缓存:npm cache clean 如果这一步出错,那就试试:npm cache verify。然后再降低版本)
$ appium
如前所述,您可能想要运行命令行:appium-doctor,以确保您的系统正确设置:
$ npm install -g appium-doctor
$ appium-doctor(执行这个命令和点击图形化界面上的“听诊器”图标(如下图:)检测是一致的,效果如图:)
通过使用Appium Desktop应用程序开启一个Appium服务
1、首先需要下载Appium Desktop:Download the Appium app
2、Run it!
编写Appium测试用例
开始编写和运行测试用例的主要指南是the running tests doc,其中包括对iOS、Android和Android旧设备的解释。如果您对物理硬件测试感兴趣,您可能会对我们的真机测试感兴趣。
(注意:如果你在自动操作ios10 +,一定要看看我们的XCUITest迁移指南,因为苹果的自动化支持自ios10以来已经发生了显著的变化,在Appium中发生了相应的变化)。
从本质上讲,我们支持一个子集的WebDriver JSON线路协议(Selenium WebDriver JSON Wire Protocol),并扩展它,这样您就可以指定移动目标desired capabilities(这个很重要,需要的测试参数格式)通过Appium运行您的测试。
您可以使用WebDriver的元素查找策略的一个子集来查找元素。有关详细信息,请参阅查找元素。对于像点击、晃动和滑动这样的自动移动手势,我们也有几个扩展到JSON Wire协议。
您还可以在混合应用程序中自动化web视图!参见混合应用指南。
这个存储库包含许多不同语言的测试示例!
对于完整的Appium文档页面列表,请访问此目录。
Appium是如何工作的(How It Works)
Appium驱动各种本机自动化框架,并提供基于Selenium的WebDriver JSON线路协议的API。
对于新的iOS版本(9.3和up),Appium驱动着苹果的XCUITest库。我们对XCUITest的支持使用了Facebook的WebDriverAgent项目。
对于旧的iOS版本(9.3和以下),Appium驱动苹果的UIAutomation库,使用基于Dan Cuellar在iOS Auto上的工作的策略。
Android支持使用新的平台的UiAutomator框架和较老的Android平台的Selendroid。
Windows支持使用了微软的WinAppDriver。
(Contributing)
请查看我们的贡献文档,了解如何从源代码构建、测试和运行Appium。
路线图(Roadmap)
对未来的Appium有兴趣?看看路线图
原文出处:Appium。
补充:
注意:Make sure you have not installed Node or Appium with sudo, otherwise you'll run into problems。