

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

# 用于自定义测试环境的主机
<a name="custom-test-environments-hosts"></a>

 Device Farm 通过使用测试主机环境支持一组带有预配置软件的操作系统。在测试执行期间，Device Farm 使用亚马逊管理的实例（主机），这些实例（主机）动态连接到所选的被测设备。此实例已完全清理，不会在两次运行之间重复使用，并在测试运行结束后以其生成的工件终止。

**Topics**
+ [自定义测试环境的可用测试主机](#custom-test-environments-hosts-available)
+ [为自定义测试环境选择测试主机](#test-host-selection)
+ [自定义测试环境中支持的软件](custom-test-environments-hosts-software.md)
+ [安卓设备的测试环境](custom-test-environments-hosts-android.md)
+ [iOS 设备的测试环境](custom-test-environments-hosts-ios.md)

## 自定义测试环境的可用测试主机
<a name="custom-test-environments-hosts-available"></a>

 测试主机完全由 Device Farm 管理。下表列出了用于自定义测试环境的当前可用和支持的 Device Farm 测试主机。


| 设备平台 | 测试主机 | 操作系统 | 架构 | 支持的设备 | 
| --- | --- | --- | --- | --- | 
|  Android  |  amazon\_linux\_2  |  Amazon Linux 2  |  x86\_64  | Android6 及以上 | 
|  iOS  |  macos\_sequoia  | macOS Sequoia（第 15 版） |  arm64  | iOS15 到 26 | 

**注意**  
Device Farm 会定期为设备平台添加新的测试主机，以支持较新的设备操作系统版本及其依赖项。发生这种情况时，相应设备平台的较旧测试主机将终止支持。

### 操作系统版本
<a name="test-host-os"></a>

 每台可用的测试主机都使用当时 Device Farm 支持的特定版本的操作系统。尽管我们尝试使用最新的操作系统版本，但这可能不是最新的公开发行版本。Device Farm 将使用次要版本更新和安全补丁定期更新操作系统。

 要了解测试运行期间使用的操作系统的特定版本（包括次要版本），可以将以下代码片段添加到测试规范文件的任何阶段。

**Example**  

```
phases:
  install:
    commands:
      # The following example prints the instance's operating system version details
      - |-
        if [[ "Darwin" == "$(uname)" ]]; then
          echo "$(sw_vers --productName) $(sw_vers --productVersion) ($(sw_vers --buildVersion))";
        else
          echo "$(. /etc/os-release && echo $PRETTY_NAME) ($(uname -r))";
        fi
```

## 为自定义测试环境选择测试主机
<a name="test-host-selection"></a>

 您可以在测试[规范文件的相应`ios_test_host`变量中指定 Android `android_test_host` 和 iOS 测试](custom-test-environment-test-spec.md#custom-test-environment-test-spec-syntax)主机。

 如果您没有为给定设备平台指定测试主机选择，则测试将在Device Farm设置为指定设备和测试配置的默认设置的测试主机上运行。

**重要**  
在 iOS 18 及更低版本上进行测试时，如果未选择主机，则将使用旧版测试主机。有关更多信息，请参阅上的主题[旧版 iOS 测试主机](custom-test-environments-hosts-ios.md#legacy-ios-host)。

 例如，请查看以下代码片段：

**Example**  

```
version: 0.1
android_test_host: {{amazon_linux_2}}
ios_test_host: {{macos_sequoia}}

phases:
  # ...
```