Appium 初学者教程

⚡ 智能摘要

Appium 教程 Android iOS 移动应用测试引入了一个开源的 UI 自动化框架,该框架使用单一工具即可驱动 iOS 和 iOS 平台上的原生应用、混合应用和 Web 应用。 Selenium兼容的 API。本指南解释了如何 Appium 工作原理、安装步骤、检查器、模拟器附件以及 Java 计算器测试用例。

  • 📱 核心定义: Appium 是一个开源的移动 UI 自动化框架,支持原生应用、混合应用和 Web 应用。 Android 通过一个 API 即可连接 iOS。
  • ???? HTTP 服务器模型: Appium 运行方式为 Node.js HTTP 服务器,将 WebDriver JSON wire 命令转换为特定于平台的自动化调用。
  • 🧰 工具栈: 必备先决条件包括 Android SDK、JDK、 Eclipse, TestNG, Selenium 服务器 JAR 文件 Appium 客户端库,以及 Appium 桌面。
  • 🔍 督察和记录员: Appium Inspector 用于检查元素层级结构并生成样板脚本,而 UIAutomator Viewer 则是…… Windows 倒退。
  • Java 测试工作流程: 使用 DesiredCapabilities、RemoteWebDriver 和 TestNG 用于启动和验证原生应用的注解 Android 例如计算器之类的应用程序。

Appium 教程 Android iOS移动应用测试

什么是 Appium?

Appium 是一款免费分发的开源移动应用程序用户界面。 测试 框架。 Appium 它支持原生应用、混合应用和 Web 应用测试,并支持在物理设备、模拟器和仿真器上进行自动化测试。它提供跨平台应用测试——一个 API 即可同时用于这两种平台。 Android 以及 iOS 测试脚本。

Appium 具有 没有 对移动设备操作系统的依赖。该框架封装并转换 Selenium 将 WebDriver 命令导入 UIAutomation (iOS) 或 UIAutomator (Android) 命令取决于设备类型,而不是底层操作系统版本。

Appium 支持所有语言 Selenium 客户端库 — Java,Objective-C, JavaScript 使用 Node.js、PHP、Ruby Python, C#等等。

如何 Appium 工作?

  • Appium 是一个用 HTTP 服务器编写的服务器 Node.js 驱动 iOS 和平台的平台 Android 使用 WebDriver JSON 协议的会话。启动前,系统必须预先安装 Node.js。 Appium 服务器。
  • 日期 Appium 下载并安装完成后,在本地计算机上设置一个服务器,该服务器公开 REST API。
  • 服务器接受来自客户端的连接和命令请求,并在移动设备上执行命令(Android 或 iOS)。
  • 它会返回 HTTP 响应。要执行请求, Appium 调用原生移动自动化框架来驱动应用程序用户界面:
    • 适用于 iOS 的 Apple 乐器(乐器仅适用于 Xcode 3.0 或更高版本,以及 OS X v10.5 或更高版本)。
    • Google UIAutomator Android API 级别 16 或更高。
    • Selendroid HPMC胶囊 Android API等级15或更低。

使用前提条件 Appium

  1. 安装 Android 软件开发套件(SDK) (工作室) [链接].
  2. 安装 JDK (Java 开发套件)[链接].
  3. 安装 Eclipse [链接].
  4. 安装 TestNG HPMC胶囊 Eclipse [链接].
  5. 安装 Selenium 服务器 JAR [链接].
  6. Appium 客户端库 [链接].
  7. APK应用信息 on Google 玩 [链接].
  8. Node.js (并非严格要求——当 Appium 服务器已安装,Node.exe 和 NPM 已与当前版本捆绑在一起。 Appium 版)。
  9. 安装 Appium 桌面.

安装 Appium 桌面

Appium Desktop 是一个开源的 GUI 应用程序,它可以安装和运行 Appium 服务器。它捆绑了使用所需的所有先决条件。 Appium 服务器端,它自带一个检查器,用于显示有关应用程序的基本信息,以及一个录制器,用于生成自动化移动应用程序的样板代码。

步骤1) 在MyCAD中点击 软件更新 http://appium.io/ 点击下载 Appium.

Appium 官方网站下载页面

步骤2) 对于 Windows选择 .exe 文件并下载。该文件大小约为 162 MB,下载时间取决于您的网速。

选择 Windows Appium 桌面安装程序

步骤3) 点击下载的.exe文件。

运行 Appium 桌面安装程序可执行文件

步骤4) 上 Windows 这台机器没有安装向导。 Appium 直接运行.exe文件。点击.exe文件后,会出现以下启动画面,持续几分钟。

Appium 桌面加载动画

对于 macOS你需要安装 .dmg 文件。

步骤5) 服务器启动窗口打开。它会填充默认主机和端口(您可以更改它们),并显示以下内容: Appium 正在使用的版本。

Appium 服务器启动窗口,显示主机和端口

步骤6) 点击 启动服务器在指定的主机和端口上启动一个新服务器,服务器日志输出显示在控制台中。

Appium 服务器启动后的日志输出

步骤7) 点击 新的会话窗口.

在“打开新会话窗口”中 Appium 桌面

步骤8) 输入所需功能并开始会话。

输入所需功能以开始 Appium 会议

Appium 检查员

类似于 Selenium IDE录制和回放工具 Appium 有一个 检查员 用于录制和回放测试。它通过检查 DOM 来录制和回放原生应用程序的行为,并生成任何受支持语言的测试脚本。请注意: Appium 检查器不受支持 Microsoft Windows: 上 Windows 它启动了 Appium 服务器无法检查元素。建议使用 UIAutomator Viewer 来检查元素。 Windows.

开始步骤 Appium Mac 电脑上的 Inspector:

步骤1) 下载并开始您的 Appium 服务器使用默认 IP 地址 0.0.0.0 和端口 4725。

  1. 从本地驱动器中选择源文件或 .app 文件进行测试。
  2. 选中“应用路径”复选框以启用“选择”按钮。

步骤2) 点击“选择”按钮,浏览并选择本地驱动器中的测试文件。

Appium Mac 上的检查器应用程序路径选择

步骤3) 在Mac电脑上启动iOS模拟器。

步骤4) 点击 正式上线 右上角有一个按钮。点击此按钮会显示一个蓝色图标——点击该图标即可打开。 Appium 检查器和模拟器,以及预选的应用程序。

正式上线 Appium 使用 iOS 模拟器的检查器

步骤5) 一经推出, Appium 检查器以列式结构显示元素层级。用户还可以执行点击、滑动等类似手势操作。

Appium 检查器元素层次结构视图

步骤6) 点击 Stop 停止 结束录制。

附加 Android 模拟器 Appium

步骤1) 安装 Android 系统上的SDK。

打开控制面板 > 系统和安全 > 系统。在左侧面板中,单击 高级系统设置在“系统属性”弹出窗口中,单击 先进的 选项卡然后 环境变量.

打开环境变量 Windows

步骤2) 在“环境变量”弹出窗口中,双击 途径 并设置 ANDROID_HOME 指向 SDK 目录的变量。请附加完整的 SDK 文件夹路径。例如:

C:\User\ABC\Desktop\adt-bundled-windows-x86_64-20140321\sdk

在环境变量中设置 ANDROID_HOME。

步骤3) 开始 Android 模拟器,或连接一个 Android 将设备连接到您的系统。请确保已在设备上启用 USB 调试。 Android 设备:进入设备设置 > 开发者选项 > 启用“USB调试”。

步骤4) 打开命令提示符并导航到 Android SDK的 \platform-tools\ 目录(例如, D:\adt-bundle-windows-x86_64-20130514\sdk\platform-tools).

步骤5) 运行 adb devices 命令。您连接的设备将显示在命令提示符窗口中。完整格式为: adb -s emulator-5554 install <Location of .apk file>.

adb devices 命令输出显示已连接的模拟器

步骤6) 运行 adb start-server 命令。ADB 服务器启动,并且 Appium 会用它来向您发送命令 Android 。

步骤7) 导航到 Appium 在您的系统上找到该目录并开始 Appium 通过点击 Appium.exe 文件。

步骤8) 请勿更改默认 IP 地址或端口号。点击 正式上线。 你的 Appium 控制台从 127.0.0.1:4723 开始,如下所示。

Appium 控制台运行在 127.0.0.1:4723

步骤9) 点击 开始。 该 Appium 服务器现在正在您的系统上运行。

Appium 原生测试用例 Android 应用程序(计算器)

步骤1) 下载ADT Eclipse 插件或单独获取 ADT 软件包 开始.

步骤2) 可选 Eclipse 创建一个新的项目 > 包 > 类。

步骤3) 导入 Selenium 图书馆和 TestNG 投入到新项目中。

步骤4) 编写一个小型测试程序 计算器应用 计算两个数之和。

package src_Appium;

import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.*;

public class Calculator {
    WebDriver driver;

    @BeforeClass
    public void setUp() throws MalformedURLException {
        // Set up desired capabilities and pass the Android app activity and package to Appium
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("BROWSER_NAME", "Android");
        capabilities.setCapability("VERSION", "4.4.2");
        capabilities.setCapability("deviceName", "Emulator");
        capabilities.setCapability("platformName", "Android");

        capabilities.setCapability("appPackage", "com.android.calculator2");
        // Package name of the app (get it from an APK info app)
        capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");
        // Launcher activity of the app (get it from an APK info app)

        // Create a RemoteWebDriver instance and connect to the Appium server
        // Launches the Calculator app on the Android device using the capabilities above
        driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }

    @Test
    public void testCal() throws Exception {
        // Locate the keys on the calculator by name
        WebElement two = driver.findElement(By.name("2"));
        two.click();
        WebElement plus = driver.findElement(By.name("+"));
        plus.click();
        WebElement four = driver.findElement(By.name("4"));
        four.click();
        WebElement equalTo = driver.findElement(By.name("="));
        equalTo.click();
        // Locate the calculator output by tag name
        WebElement results = driver.findElement(By.tagName("EditText"));
        // Check the calculated value on the edit box
        assert results.getText().equals("6") :
            "Actual value is : " + results.getText() + " did not match with expected value: 6";
    }

    @AfterClass
    public void teardown() {
        // Close the app
        driver.quit();
    }
}

开始 Appium 服务器和 Android 从 AVD 管理器中启动模拟器,然后单击“运行”> TestNG该程序在选定的模拟器上运行 Calculator.app,并将结果显示在屏幕上。 Eclipse 使用控制台 TestNG 框架。

限制 Appium

  1. Appium 不支持对以下内容进行测试 Android 版本低于 4.2。
  2. 对混合应用测试的支持有限——例如​​,无法测试在 Web 视图和原生视图之间双向切换的操作。
  3. 不支持运行 Appium 检查员 Microsoft Windows.

常见错误及故障排除步骤 Appium

误差 故障排除步骤
错误:需要以下功能,但未提供:deviceName、platformName 添加所需功能 deviceNameplatformName 以及 Appium 脚本。例如: capabilities.setCapability("deviceName", "Emulator");capabilities.setCapability("platformName", "Android");
错误:无法找到 adb。请使用 Android SDK 根目录路径。 在系统环境变量的 Path 条目下设置 SDK 根目录。
错误:org.openqa.selenium.SessionNotCreatedException:无法创建新会话。 设置正确的应用程序路径并重启。 Appium 服务器。
如何查找 DOM 元素或 XPath的 在移动应用程序中? 使用 UIAutomator Viewer 检查 DOM 元素 Android 领域广泛应用,提供了卓越的解决方案。

常见问题

Selenium 自动浏览网页; Appium 实现移动应用程序自动化。 Appium 它重用了 WebDriver 协议,因此 Selenium 用户接受速度很快,但是 Appium 它还驱动原生应用、混合应用和移动 Web 应用。 Android 并通过平台特定的自动化引擎支持 iOS。

Appium 支持所有具有以下功能的语言 Selenium WebDriver客户端,包括 Java, Python, Java使用 Node.js、Ruby、C#、PHP 和 Objective-C 编写的脚本。这使得 Appium 无需强制更改语言即可适应不同的工程团队。

是的。 Appium 测试对象包括安装在设备上的原生应用、嵌入网页视图的混合应用以及在 Chrome 或 Safari 浏览器中运行的移动网页应用。所有这三种类型的应用都由同一个基于 WebDriver 的 API 驱动,从而简化了跨平台测试的维护。

人工智能改善 Appium 通过自愈定位器、视觉验证和 AI 生成的测试步骤来增强测试套件的性能。AI 引擎可以检测应用程序更新过程中定位器的漂移,推荐稳定的 XPath 替代方案,并自动对不稳定的测试进行分类,从而使工程师能够专注于真正的缺陷,而不是维护工作。

是的。AI移动测试工具会分析应用屏幕,识别交互元素,并生成…… Appium 脚本具备所需的功能和定位器。测试人员随后审查并完善这些脚本,从而减少样板代码,并加快新团队的上手速度。 Appium 自动化。

总结一下这篇文章: