Appium – 移动应用的卓越测试工具
在寻找任何用于测试移动应用程序的自动化工具时,首先要考虑的是 - 它应该简单易用,并且在您的项目预算之内。但是,当您的应用程序运行在多个平台(例如 Android 和 iOS)上时,则需要一个可以在这两个平台上使用的工具。虽然您可以为每个平台使用单独的工具,但这可能会在维护和资源利用方面增加项目成本。因此,选择一个平台无关的工具来在多个平台上测试您的应用程序不是一个好主意吗?
最好有一个功能强大的工具来同时用于 Android 和 iPhone 应用程序,而不是为每个应用程序使用两个不同的工具。这样一个流行的开源工具,它弥合了这两个平台之间的差距,被称为 Appium。它不仅允许我们在多个平台上测试我们的应用程序,而且还具有许多有用的功能来满足我们的大部分测试需求。
什么是 Appium?
Appium 是一款免费的开源 UI 测试框架,广泛用于 Android 和 iPhone 移动应用程序。它支持多种语言,前提是这些语言支持 HTTP 请求和 Selenium 客户端库,例如 Java、JavaScript(使用 Node.js)、PHP、Ruby、Python、C#、Perl 等。
Appium 不依赖于用于移动设备的操作系统,因此它允许我们使用移动设备而无需担心 OS 的类型。这是因为 Appium 框架将 Selenium WebDriver 命令转换为 UIAutomator 命令(Android)和 UIAutomation 命令(iOS),因此它也取决于设备类型,而不是操作系统类型。
它**支持原生、混合和 Web 应用程序测试**,以及在真实设备以及模拟器和模拟器上的自动化测试。它还支持基于平台的应用程序测试,我们可以在多个平台(如 Android、iOS 和 Windows)上使用相同的 API。
让我们讨论一些 Appium 的流行特性,这些特性使其在众多工具中脱颖而出。
Appium 的独特卖点
- 首先,Appium 是一款**拥有积极贡献的庞大社区支持的开源工具**。
- **测试即将发布到市场上的相同应用程序。**无需担心维护和发布应用程序的正确版本,测试同一个版本,然后提交。
- 它是一个简单且**轻量级的应用程序,占用测试过程的内存很少**。简单的架构充当测试机器和自动化工具包之间的代理。
- 测试原生应用程序不需要 SDK,它配备了**可以在所有平台上使用的标准自动化 API**,因此证明了其重用和采用现有标准的理念。
- 测试脚本可以用任何你喜欢的与 Selenium WebDriver 兼容的语言编写,例如 Java、C#、Ruby、JavaScript(使用 Node.js)、PHP、Python 或 Perl,并且可以使用你选择的任何测试框架。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
支持的平台
- iOS
- Android
- Windows
- Firefox-OS
机器准备情况
对于 iOS
- Mac OS X 10.7+ Xcode 4.5+ 及其命令行工具
对于 Android
- Mac OS X 10.7+ 或 Windows 7+ 或 Linux Android SDK ≥ 16(在 Selendroid 模式下 SDK < 16)
Appium 究竟是如何工作的?
Appium 使用**客户端-服务器架构**。一旦连接建立,它就会监听命令,在连接的移动设备上执行这些命令,然后通过 HTTP 响应返回命令的执行结果。由于它具有客户端-服务器架构,因此我们可以自由地用任何语言编写测试脚本,前提是它具有 HTTP 客户端 API。
对于 iOS 平台,Appium 使用 UIAutomation 库,而对于较新版本的 Android 平台,它使用 UiAutomator 框架。它还通过使用 Selendroid 支持旧版本的 Android。对于 Windows,它使用 Microsoft 的 WinAppDriver。
C#、JAVA、Ruby、PHP 或 Python 等编程语言的客户端库支持 Appium 对 Selenium WebDriver 协议的扩展,因此,您可以选择使用这些编程语言的客户端库,而不是 WebDriver 客户端。
Appium Inspector – 它的作用是什么?
Appium 有一个非常有用的便捷工具,称为 Appium Inspector,用于录制和回放。它理解元素层次结构。与任何其他录制和回放自动化工具一样,它也录制和回放原生应用程序的行为并生成测试脚本。
因此,无论何时您想将手动操作录制到脚本中,或者想查找要用于 XPath 命令的元素的值、名称、描述或其他属性,Appium Inspector 都可以解决您所有这些问题。
Appium 的一些局限性
世界上没有什么是完美的,尽管 Appium 具有许多有助于我们自动化工作的优秀特性,但它也有一些局限性。
让我们讨论一些 Appium 的局限性。
- Appium 支持 Android 4.2 及更高版本,低于此版本不支持。这意味着对于**低于 Android 4.2 的较低版本**,它使用另一个名为**Selendroid 的开源库**,而不是 UIAutomator。
- 有用的 Appium Inspector 工具无法在 Microsoft Windows 上运行,但在其他平台上运行良好。
- 在 iOS 平台上,我们**无法使用一台 Mac 机器同时运行多个 iOS 设备**。因此,要在多个 iPhone 设备上进行测试,我们需要将它们分别连接到多台 Mac 机器。这肯定是一项昂贵的设置多台 Mac 机器以同时测试多个设备的方案。
可以通过在 Sauce Lab 的移动云上执行脚本来解决 iOS 平台的此限制。
让我们看看**在 Sauce Labs 移动云上使用 Appium 的优势**
- 无需在本地机器上设置 Appium,从而节省宝贵的时间
- 无需安装和配置模拟器和模拟器
- 您可以同时在多个 iOS 模拟器上测试您的脚本
最后,Appium 是一款优秀的移动自动化工具,可用于使用标准自动化 API 在多个平台上测试您的移动应用程序。并且可以使用多种编程语言的自由以及与 Selenium WebDriver 的关联增强了其流行度。