测试中的环境变量

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方案。

测试时,使用设置自定义环境变量启动应用程序或测试运行程序通常很有帮助。 例如,环境变量可用于控制应用程序的行为或为测试提供登录信息。

对于大多数框架,有用的环境变量在测试、应用程序或两者中都可用。 可以通过 App Center CLI 设置其他环境变量。

框架支持

在 App Center 中,某些框架和平台组合支持设置和使用自定义环境变量,以及使用自动提供给应用程序和测试的变量 (例如 RUNNING_IN_APP_CENTERAPP_CENTER_TEST) 。

下表列出了每个框架或平台支持的环境变量:

框架 测试环境变量 应用程序环境变量
Appium 可用 不可用
葫芦 可用 仅在 iOS 中可用
意大利浓咖啡 可用 可用
Xamarin.UITest 可用 仅在 iOS 中可用
XCUITest 不可用 不可用

注意

在 Espresso 测试和 Android 应用程序中,变量在 中可用, InstrumentationRegistry 因为 Android 不支持环境变量。

应用程序中可用的环境变量

对于支持的框架,这些环境变量在应用程序中可用:

环境变量 描述
RUNNING_IN_APP_CENTER 1设备在 App Center 测试中运行时设置为

测试中可用的环境变量

对于支持的框架,这些环境变量在测试中可用:

环境变量 描述
APP_CENTER_TEST 1在 App Center Test 中运行测试时,将 设置为 。
XTC_APP_ENDPOINT 设备上允许其他服务与应用程序通信的安全端口的地址。 由在应用程序中嵌入自己的 HTTP 服务器且需要与测试框架外部的应用交互的应用程序使用。 (仅 Android) 。

示例: http://devicehost151.prod:37777/proxy2/token-c059c5c6-37cc-4400-9038-96d1d342ed6e/
XTC_DEVICE 将操作系统名称和设备名称组合在一起。

示例: Google Pixel 2 XL (8.1.0)
XTC_DEVICE_INDEX 介于 0 到 N-1 范围内的字符串,其中 N 是运行测试的设备数。 在多个设备上并行运行同一测试的情况下使用。 XTC_DEVICE_INDEX 对于每个设备的每次测试运行,都是唯一的。 有关其他讨论,请参阅: 在测试期间处理并发数据库更改
XTC_DEVICE_NAME 运行测试的设备的名称。

示例: Google Pixel 2 XL
XTC_DEVICE_OS 运行测试的设备操作系统的名称。

示例: 8.1.0
XTC_LANG 用于运行测试的语言代码。

示例: en
XTC_PLATFORM 受测平台,或 androidios

设置其他环境变量

使用 CLI 将测试上传到 App Center 时,可以使用 选项请求设置 --test-parameter 环境变量。 可以为测试运行程序设置环境变量, (受测应用程序或 AUT) 设置环境变量。

注意

有关哪些框架支持 App Center 测试中的测试和应用程序变量的详细信息,请参阅 框架 支持。

测试的环境变量

$ appcenter test run < > \
  < args > \
  --test-parameter "test_env=USERNAME=clever_user@example.com" \
  --test-parameter "test_env=PASSWORD=pa$$w0rd" \
  --test-parameter "test_env=TWO_FACTOR_URL=https://staging.example.com/test-2FA" \
  --test-parameter "test_env=UPGRADE_PURCHASED=0"

应用程序的环境变量

$ appcenter test run < > \
  < args > \
  --test-parameter "app_env=VERBOSE_LOGGING=1" \
  --test-parameter "app_env=CONTENT_SERVER=staging.example.com \
  --test-parameter "app_env=API_LEVEL=3.2" \
  --test-parameter "app_env=UPGRADE_PURCHASED=0"

在测试中使用环境变量

示例 Appium 测试代码:

以下代码片段演示如何使用 Appium 访问 App Center Test 中的环境变量


String appCenterTest = System.getenv("APP_CENTER_TEST");

示例 Calabash 测试代码:

以下代码片段演示如何使用 Calabash 访问 App Center 测试中的环境变量


app_center_test = ENV["APP_CENTER_TEST"]

示例 Espresso 测试代码

由于 Android 不支持环境变量,因此 App Center 测试会改为为 Espresso 设置 InstrumentationRegistry 值。 以下代码片段演示如何访问 InstrumentationRegistry 值。


String appCenterTest = InstrumentationRegistry.getArguments().getString("APP_CENTER_TEST");

示例 Xamarin.UITest 测试代码

以下代码片段演示如何使用 Xamarin.UITest 访问 App Center 测试中的环境变量:

string appCenterTest = Environment.GetEnvironmentVariable("APP_CENTER_TEST");

在应用程序中使用环境变量

示例本机 Android 应用程序代码

注意

有关哪些框架支持 App Center 测试中的应用程序变量的详细信息,请参阅 框架 支持。

由于 Android 不支持环境变量,因此 App Center 测试会改为设置 InstrumentationRegistry 值。 以下代码片段演示如何访问 InstrumentationRegistry 值。


String runningInAppCenter = InstrumentationRegistry.getArguments().getString("RUNNING_IN_APP_CENTER");

示例本机 iOS 应用程序代码

注意

有关哪些框架支持 App Center 测试中的应用程序变量的详细信息,请参阅 框架 支持。

本机 iOS 应用程序通过 NSProcessInfo API 访问环境变量。

[[NSProcessInfo processInfo] environment]["RUNNING_IN_APP_CENTER"]
ProcessInfo.processInfo.environment["RUNNING_IN_APP_CENTER"]

获取帮助

可以在 App Center 门户中联系支持人员。 在屏幕右上角,选择“帮助 ( ) ”菜单,然后选择“联系支持人员”。 我们的专业支持团队将回答你的问题。

如果需要有关测试运行的帮助,请导航到有问题的测试运行,并从浏览器中复制 URL 并将其粘贴到支持对话中。 测试运行 URL 类似于 https://appcenter.ms/orgs/OrgName/apps/App-Name/test/runs/77a1c67e-2cfb-4bbd-a75a-eb2b4fd0a747