

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将适用于 iOS 的 XCTest UI 与 Device Farm 集成
<a name="test-types-ios-xctest-ui"></a>

Device Farm 为 XCTest UI 测试框架提供支持。[具体而言，Device Farm 支持同时使用 Swift Objective-C 和 Swift 编写的 xcTest 用户界面测试。](https://developer.apple.com/swift/)

 XCTest UI 框架支持在 iOS 开发环境中进行 UI 测试，该测试建立在 XCTest 之上。有关更多信息，请参阅 iOS Developer Library 中的 [User Interface Testing](https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html#//apple_ref/doc/uid/TP40014132-CH13-SW1)。

有关 Device Farm 中测试的一般信息，请参阅 [AWS Device Farm 中的测试框架和内置测试](test-types.md)。

按照以下说明将 Device Farm 与适用于 iOS 的 XCTest UI 测试框架集成。

**Topics**
+ [准备 iOS XCTest UI 测试](#test-types-ios-xctest-ui-prepare)
+ [选项 1：创建 XCTest UI .ipa 程序包](#how-to-use-create-XCTestUI-ipa-package)
+ [选项 2：创建 XCTest UI .zip 程序包](#how-to-use-create-XCTestUI-zip-package)
+ [上传 iOS XCTest UI 测试](#test-types-ios-xctest-ui-upload)

## 准备 iOS XCTest UI 测试
<a name="test-types-ios-xctest-ui-prepare"></a>

您可以为 XCTEST\_UI 测试程序包上传 `.ipa` 文件或 `.zip` 文件。

`.ipa` 文件是包含捆绑包格式的 iOS Runner 应用程序的应用程序存档。`.ipa` 文件中不能包含其他文件。**

如果您上传一个 `.zip` 文件，它可以直接包含 iOS Runner 应用程序，也可以包含一个 `.ipa` 文件。如果您想在测试期间使用其他文件，您也可以在 `.zip` 文件中包含它们。例如，您可以在 `.zip` 文件中包含诸如 `.xctestrun`、`.xcworkspace` 或 `.xcodeproj` 之类的文件，以便在 Device Farm 上运行 XCUI 测试计划。XCUI 测试类型的默认测试规范文件中提供了关于如何运行测试计划的详细说明。

## 选项 1：创建 XCTest UI .ipa 程序包
<a name="how-to-use-create-XCTestUI-ipa-package"></a>

当你构建项目进行测试时，*你的AppName*UITest-Runner.app 捆绑包由 Xcode 生成。您可在项目的 Products 目录中找到该捆绑包。

创建 .ipa 文件：

1. 创建名为 {{Payload}} 的目录。

1. 将您的应用程序目录添加到 Payload 目录。

1. 将 Payload 目录存档成一个 `.zip` 文件，然后将文件扩展名更改为 `.ipa`。

 以下文件夹结构显示了如何{{my-project-nameUITest-Runner.app}}将名为的示例应用程序打包为`.ipa`文件：

```
.
└── my-project-nameUITest.ipa
    └── Payload (directory)
        └── my-project-nameUITest-Runner.app
```

## 选项 2：创建 XCTest UI .zip 程序包
<a name="how-to-use-create-XCTestUI-zip-package"></a>

Device Farm 会自动为您生成一个 `.xctestrun` 文件，用于运行完整的 XCTest UI 测试套件。如果您想在 Device Farm 上使用自己的 `.xctestrun` 文件，您可以将 `.xctestrun` 文件和应用程序目录压缩成一个 `.zip` 文件。如果您已经有测试包的`.ipa`文件，则可以将其包含在此处，而不是{{\*-Runner.app}}。

```
.
└── swift-sample-UI.zip (directory)
   ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa
   ├── SampleTestPlan_2.xctestrun
   ├── SampleTestPlan_1.xctestrun
   └── (any other files)
```

 如果你想在 Device Farm 上为 XCUI 测试运行 Xcode 测试计划，你可以创建一个 zip 文件，其中包含你的 my-project-name UITest-Runner.app **或** *my-project-nam UITest.ipa* *e 文件以及使用测试计划运行 XCT* EST\_UI 所需的 xcode 源代码文件，包括或文件。`.xcworkspace` `.xcodeproj`

以下是使用 `.xcodeproj` 文件的 zip 示例：

```
.
└── swift-sample-UI.zip (directory)
   ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa
   ├── (any directory)
   └── {{SampleXcodeProject.xcodeproj}}
        ├── Testplan_1.xctestplan
        ├── Testplan_2.xctestplan
        └── (any other source code files created by xcode with .xcodeproj)
```

以下是使用 `.xcworkspace` 文件的 zip 示例：

```
.
└──swift-sample-UI.zip (directory)
   ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa
   └── (any directory)
   │   ├── SampleXcodeProject.xcodeproj
   │   ├── Testplan_1.xctestplan
   │   ├── Testplan_2.xctestplan
   |   └── (any other source code files created by xcode with .xcodeproj)
   └── {{SampleWorkspace.xcworkspace}}
       └── contents.xcworkspacedata
```

**注意**  
请确保您的 XCTest UI .zip 程序包中没有名为“Payload”的目录。

## 上传 iOS XCTest UI 测试
<a name="test-types-ios-xctest-ui-upload"></a>

使用 Device Farm 控制台上传您的测试。

1. 登录 Device Farm 控制台，网址为[https://console.aws.amazon.com/devicefarm](https://console.aws.amazon.com/devicefarm)。

1. 在 Device Farm 导航面板上，选择**移动设备测试**，然后选择**项目**。

1. 在项目列表中，选择要将测试上传到的项目。
**提示**  
您可以使用搜索栏按名称筛选项目列表。  
要创建项目，请按照 [在 AWS Device Farm 中创建项目](how-to-create-project.md) 中的说明操作。

1. 选择**创建运行**。

1. 在**运行设置**下的**运行类型**部分中，选择 **iOS 应用程序**。

1. 在**选择应用程序**下的**应用程序选择选项**部分中，选择**上传自己的应用程序**。然后，在**上传应用程序**下，选择**选择文件**。

1. 浏览到并选择您的 iOS 应用程序文件。该文件必须是 .ipa 文件。
**注意**  
确保为 iOS 设备 (而不是模拟器) 构建您的 .ipa 文件。

1. 在**配置测试**下的**设置测试框架**部分中，选择 **XCTest UI**。然后，在**上传应用程序**下，选择**选择文件**。

1. 浏览到并选择包含您的 iOS XCTest UI 测试运行器的 .ipa 或 .zip 文件。

1. 完成运行创建过程中的其余步骤。您将选择要从中进行测试的设备，并可选择指定其他配置。

1. 选择**创建运行**。Device Farm 运行测试并在控制台中显示结果。