

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

# 自定义测试环境的环境变量
<a name="custom-test-environment-variables"></a>

 Device Farm 动态配置多个环境变量，以便在自定义测试环境运行中使用。

**Topics**
+ [自定义环境变量](#custom-test-environment-variables-custom)
+ [常用环境变量](#custom-test-environment-variables-common)
+ [Appium 测试的环境变量](#custom-test-environment-variables-appium)
+ [XCUITest 测试的环境变量](#custom-test-environment-variables-xcuitest)

## 自定义环境变量
<a name="custom-test-environment-variables-custom"></a>

 Device Farm 支持配置在测试主机上作为环境变量应用的键值对。这些变量可以在 Device Farm 项目上配置，也可以在运行创建过程中进行配置；运行时配置的任何变量都将取代其父项目上可能配置的任何变量。以下限制适用：
+ 旧版 iOS 测试主机不支持自定义环境变量。有关更多信息，请参阅 [旧版 iOS 测试主机](custom-test-environments-hosts-ios.md#legacy-ios-host)。
+ 以开头的`$DEVICEFARM_`变量名保留供内部服务使用。
+ 自定义环境变量不得用于在测试规范中配置测试主机计算选择。

## 常用环境变量
<a name="custom-test-environment-variables-common"></a>

 本节介绍了 Device Farm 中所有测试共有的环境变量。

** `$DEVICEFARM_DEVICE_NAME` **  
 运行测试的设备。它代表设备的唯一设备标识符 (UDID)。

** `$DEVICEFARM_DEVICE_UDID` **  
 设备的唯一标识符。

** `$DEVICEFARM_DEVICE_PLATFORM_NAME` **  
 设备的平台名称。要么是要`Android`么`iOS`。

** `$DEVICEFARM_DEVICE_OS_VERSION` **  
 设备的操作系统版本。

** `$DEVICEFARM_APP_PATH` **  
 *（移动应用程序测试）*   
 在其上执行测试的主机上移动应用程序的路径。此变量在 Web 测试期间不可用。

** `$DEVICEFARM_LOG_DIR` **  
 默认目录的路径，存储客户日志、工件和其他所需文件以供日后检索。使用[示例测试规范](custom-test-environment-test-spec.md#custom-test-environment-test-spec-example)，此目录中的文件存档在 ZIP 文件中，并在测试运行后作为构件提供。

** `$DEVICEFARM_SCREENSHOT_PATH` **  
 测试运行期间捕获的屏幕截图（如果有）的路径。

** `$DEVICEFARM_PROJECT_ARN` **  
 作业的上级项目的 ARN。

** `$DEVICEFARM_RUN_ARN` **  
 作业的父项运行的 ARN。

** `$DEVICEFARM_DEVICE_ARN` **  
 被测设备的 ARN。

** `$DEVICEFARM_TOTAL_JOBS` **  
 与其父 Device Farm 运行相关的任务总数。

** `$DEVICEFARM_JOB_NUMBER` **  
 这份工作的编号在里面`$DEVICEFARM_TOTAL_JOBS`。例如，一次运行可能包含 5 个作业，每个任务都有一个`$DEVICEFARM_JOB_NUMBER`从 0 到 4 的唯一任务。

** `$AWS_REGION` **  
 AWS 区域。该服务会将其设置为与被测设备所在的区域相匹配。如果需要，它可以被自定义环境变量覆盖。

** `$ANDROID_HOME` **  
 *（仅限 Android 设备）*   
 Android 软件开发工具包安装目录的路径。

## Appium 测试的环境变量
<a name="custom-test-environment-variables-appium"></a>

 本节介绍任何 Appium 测试在 Device Farm 的自定义测试环境中使用的环境变量。

** `$DEVICEFARM_CHROMEDRIVER_EXECUTABLE_DIR` **  
 *（仅限 Android 设备）*   
 包含在 Appium Web 和 ChromeDriver 混合测试中使用的必要可执行文件的目录的位置。

** `$DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V<N>` **  
 *（仅限 iOS）*   
 为在 Device Farm 上运行 WebDriverAgent 而构建的版本的派生数据路径。变量上的编号将对应于的主要版本。 WebDriverAgent举个例子，`DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V9`将指向 9.x WebDriverAgent 的 a 版本。有关更多信息，请参阅 [为 iOS 测试选择 WebDriverAgent 版本](test-types-appium.md#test-types-appium-select-wda)。  
 `$DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V<N>`环境变量仅存在于非旧版 iOS 主机上。有关更多信息，请参阅 [旧版 iOS 测试主机](custom-test-environments-hosts-ios.md#legacy-ios-host)。

** `$DEVICEFARM_WDA_DERIVED_DATA_PATH_V9` **  
 *（仅限 iOS，已弃用）*   
 为在 Device Farm 上运行 WebDriverAgent 而构建的版本的派生数据路径。有关替换命名方案，请参阅。`$DEVICEFARM_APPIUM_WDA_DERIVED_DATA_PATH_V<N>`

## XCUITest 测试的环境变量
<a name="custom-test-environment-variables-xcuitest"></a>

 本节介绍 XCUITest 测试在 Device Farm 的自定义测试环境中使用的环境变量。

** `$DEVICEFARM_XCUITESTRUN_FILE` **  
 Device Farm `.xctestun` 文件的路径。它是从您的应用程序和测试程序包生成的。

** `$DEVICEFARM_DERIVED_DATA_PATH` **  
Device Farm xcodebuild 输出的预期路径。

** `$DEVICEFARM_XCTEST_BUILD_DIRECTORY` **  
测试程序包文件的解压缩内容的路径。