APPIUM 教程 Android & iOS 移动应用程序测试

什么是 Appium?

APPIUM是一个免费分发的开源移动应用程序UI 测试 框架。 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 有线协议来初始化会话。因此,在初始化 Appium 服务器,系统上必须预先安装 Node.js。
  • 在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 Appium 已下载并安装,然后在我们的机器上设置一个公开 REST API 的服务器。
  • 它接收来自客户端的连接和命令请求,并在移动设备上执行该命令(Android /iOS)。
  • 它以 HTTP 响应进行响应。同样,为了执行此请求,它使用移动测试自动化框架来驱动应用程序的用户界面。框架如下:
    • 适用于 iOS 的 Apple 乐器(乐器仅适用于 Xcode 3.0 或更高版本(OS X v10.5 及更高版本)
    • Google UIAutomator Android API 级别 16 或更高
    • Selendroid Android API 级别 15 或更低

使用 APPIUM 的先决条件

  1. 安装ANDROID SDK(Studio)[链接]-
  2. 安装 JDK(Java 开发套件)[链接]
  3. 安装 Eclipse [链接]
  4. 安装 TestNg Eclipse [链接]
  5. 安装 Selenium 服务器 JAR [链接]
  6. Appium 客户端库[链接]
  7. Google Play 上的 APK 应用信息 [链接]
  8. js(非必需 - 无论何时 Appium 服务器安装后,默认情况下会附带“Node.exe”和 NPM。它包含在当前版本的 Appium.)
  9. 安装 Appium 桌面版

安装 Appium 桌面版

Appium Studio 是一个开源的 GUI 应用程序,可以安装 Appium 服务器。它附带了安装和使用所需的所有先决条件 Appium 服务器。它还有一个检查器,用于获取应用程序的基本信息。它附带一个记录器,用于创建样板代码来自动化您的移动应用程序。

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

安装 Appium 桌面版

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

安装 Appium 桌面版

步骤3) 单击下载的 exe。

安装 Appium 桌面版

步骤4) 上 Windows 机器,无需安装 Appium。它直接从 exe 运行。单击 exe 后,您将在几分钟内看到以下图像。

安装 Appium 桌面版

对于 Mac,你需要安装 dmg

步骤5) 接下来,您将看到服务器启动窗口。它填充了您可以更改的默认主机和端口选项。它还提到了 Appium 正在使用。

安装 Appium 桌面版

步骤6) 单击“启动服务器”按钮后,将在指定的主机和端口上启动新服务器。显示服务器日志输出。

安装 Appium 桌面版

步骤7) 单击新建会话窗口.

安装 Appium 桌面版

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

安装 Appium 桌面版

APPIUM 检查员

像 Selenium IDE 录制和回放工具, Appium 有一个“检查器”来记录和播放。它通过检查 DOM 来记录和播放本机应用程序行为,并以任何所需语言生成测试脚本。但是,目前不支持 Appium 检查员 Microsoft Windows。在 Windows,它启动了 Appium 服务器无法检查元素。不过,UIAutomator 查看器可以用作检查元素的选项。

开始的步骤 Appium Mac 机器上的检查器:-

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

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

步骤2)现在,单击“选择”按钮将可以选择从本地驱动器浏览并选择测试文件。

APPIUM 检查员

步骤3) 在 Mac 机器上启动模拟器。

步骤4) 点击右上角的“启动”按钮,这将启用蓝色图标。再次点击此蓝色图标,它将打开 Appium 检查员和模拟器与预先选择的应用程序。

APPIUM 检查员

步骤5)– 启动您的 Appium 检查器将按列结构显示元素层次结构。此外,用户可以使用“点击”、“滑动”等按钮执行操作。

APPIUM 检查员

步骤6) 单击“停止”按钮停止录制。

附 Android 模拟器 Appium

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

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

附 Android 模拟器 Appium

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

例如——

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

附 Android 模拟器 Appium

步骤3) 开始您的 Android 模拟器或任何附加任何 Android 将设备连接到您的系统(确保您已 Android 在您的 Android 设备。要检查调试选项,请前往设备设置 >> 开发者选项 >> 勾选“调试选项”)。

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

步骤5)– 运行“adb devices”命令。您可以在命令提示符窗口中看到已连接的设备列表。(在 CMD 中输入“>adb devices”- 此命令将列出已连接的模拟器实例。例如:adb –s emulator-5554 install )

附 Android 模拟器 Appium

步骤6)– 运行“adb start-server”命令。它将启动 ADB 服务器,供 Appium 向你的 Android 。

步骤7) 现在,导航到 Appium 系统中的目录并启动 Appium 点击 Appium.exe 文件。

步骤8) 不要更改 IP 地址或端口号,然后单击“启动”按钮。您的 Appium 控制台从 127.0.0.1:4723 启动,如下所示。

附 Android 模拟器 Appium

步骤9) 点击“开始”按钮, Appium 服务器已开始在您的系统上运行。

本机的 APPIUM 测试用例 Android 应用程序(计算器)

步骤1))下载 ADT eclipse 插件或单独下载 ADT 捆绑包 点击这里

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

步骤3) 导入模板 Selenium 图书馆和 测试 在那个新项目里面。

步骤4) 现在为“Calculator.app”创建一个小测试程序来将两个数字相加。

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.CapabilityType;
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 app-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");
// This package name of your app (you can get it from apk info app)
	capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); // This is Launcher activity of your app (you can get it from apk info app)
//Create RemoteWebDriver instance and connect to the Appium server
 //It will launch the Calculator App in Android Device using the configurations specified in Desired Capabilities
   driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void testCal() throws Exception {
   //locate the Text on the calculator by using 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 edit box of the calculator by using By.tagName()
   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

误差 故障排除步骤
错误:- 需要以下所需功能,但未提供:设备名称、平台名称 在 APPIUM 脚本中添加所需功能:设备名称、平台名称。例如:capabilities.setCapability(“deviceName”,”Emulator”); capabilities.setCapability(“platformName”,”Android“);
错误:无法找到 adb。请使用 Android SDK 根目录路径。 您可能需要在系统‘环境变量’的‘Path’栏中设置SDK根目录路径
错误:org.openqa.selenium.SessionNotCreatedException:无法创建新会话。 您需要设置正确的应用程序路径并重新启动 Appium 服务器。
如何查找 DOM 元素或 XPath的 在移动应用程序中? 使用“UIAutomatorviewer”查找 DOM 元素 Android 应用程序。