使用Appium在真实设备上运行iOS测试
#测试 #mobile #ios #appium

设置

我们将首先安装必需应用程序,以帮助使用Appium运行iOS应用程序测试。

首先,检查您是否具有最新版本的Xcode。 XCode和Imusic是Apple唯一可以使用iOS连接的应用程序。因此,将其安装在系统中至关重要。

我们将使用Hommbrew,因此最好如果您仍然需要进行更新。我们还将安装Libimobiledevice;这允许Appium完成某些操作,因为Apple应用程序不容易启用程序化使用。 Appium还使用iOS-Deploy;此软件包将使您可以将iOS应用程序传输到您的设备上。让我们同时安装:

brew install libimobiledevice

brew install ios-deploy

Appium将自动构建WDA应用程序。由于WDA需要一个名为Carthage的iOS的依赖管理器,因此我们需要安装它以启用WDA Bootstrap流程。

brew install carthage

现在我们已经安装了基本要求,让我们开始使用Appium。

功能

现在,我们已经安装和运行了应用程序,我们可以开发一个基本的iOS app automation test来打开应用程序并搜索屏幕以查看特定单词。我们(希望)完美无瑕的Apple配置意味着我们在Appium中要做的就是利用适当的功能:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "iOS");
capabilities.setCapability("platformVersion", "12.0.1");
capabilities.setCapability("deviceName", "iPhone 8");
capabilities.setCapability("udid", "auto");
capabilities.setCapability("bundleId", "");
capabilities.setCapability("xcodeOrgId", "");
capabilities.setCapability("xcodeSigningId", "iPhone Developer");
capabilities.setCapability("updatedWDABundleId", "");

捕获是理解在每个空间中要写的内容。

平台名称:平台的名称为ios。

PlatformVersion :它是您的应用程序正在运行的iOS版本。

devicename :如果您使用的是Appium和performing real device testing,则需要输入udid的iPhone 13之类的值,但是您可以选择您的设备模型的任何udid用于测试目的。

udid :我们通过其唯一标识符或udid的设备来指代设备。由于只有一台设备插入,如果将Appium放在自动上,它将自动为您找到设备的udid并使用它。

bundleid :我们的应用程序捆绑包是iOS使用的唯一标识符。您可以在我们选择团队的同一Xcode应用程序设置窗口中更改它。这是一个独一无二的标识符,您可以应用于任何程序。

xcodeorgid :您可以在xcodeorgid中找到我们先前记下的“组织单位”值;这是发行证书制作应用程序的开发人员团队的唯一标识符。

xcodesigningId :它是开发人员证书的“通用名称”的第一个元素。

更新wdabundleid :Appium将利用Updatedwdabundleid欺骗您的设备让其安装WDA。

测试

您必须定义测试代码。一旦实例化驾驶员并进行了测试,Appium将负责所有事情。借助上述功能以及适当签名的应用程序和经过良好配置的设备的背景,Appium为您完成了所有繁重的举重。详细说明如下:

  • 通过使用CLI或Appium Desktop应用程序,请启动Appium Server。
  • 使用上述功能,运行您开发的Java测试,查看iOS设备何时启动您的应用程序。
  • 激活设备的解锁功能,并单击“信任计算机”选项,如果提示允许访问我们的Mac。此步骤是一次性的要求,但这是必要的。
  • 如果出现问题,请查看Appium生成的日志。

请注意,您可以将BundleD功能与我们iOS设备上已经存在的应用一起使用。在XCode中修改应用程序代码后,单击“部署”按钮以更新设备上的应用程序代码。然后,我们可以重新启动Appium测试。

另一个选项是使用应用功能,并将其指向磁盘上.IPA文件的路径。您必须确保正确签名此步骤,并且是Xcode生成的应用程序存档。

您可以将下面的代码用作iOS应用测试自动化的模板。但是,您可能需要其他代码。不是因为它是一个损坏的代码,而是因为您需要的某些数字是特定于设备的。因此,将其用作模板来增强您的工作。

import io.appium.java_client.ios.IOSDriver;
import java.net.MalformedURLException;
import java.net.URL;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Edition041_iOS_Real_Device {
    private IOSDriver driver;

    @Before
    public void setUp() throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformName", "iOS");
        capabilities.setCapability("platformVersion", "12.0.1");
        capabilities.setCapability("deviceName", "iPhone 8");
        capabilities.setCapability("udid", "auto");
        capabilities.setCapability("bundleId", "");
        capabilities.setCapability("xcodeOrgId", "");
        capabilities.setCapability("xcodeSigningId", "iPhone Developer");
        capabilities.setCapability("updatedWDABundleId", "");

        driver = new IOSDriver<>(new URL("http://localhost:4723/wd/hub"), capabilities);
    }

    @After
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }

    @Test
    public void testFindingAnElement() {
        driver.findElementByAccessibilityId("Login Screen");
    }
}

结论

Headspin可以帮助您满足所有测试需求。它使您可以访问真实的设备和全面的功能列表,这些功能将帮助您获得有效的测试结果。