测试中的环境变量

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

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

框架支持

在 App Center 中,某些框架和平台组合支持设置和使用自定义环境变量,并使用可用于你的应用程序的变量,并自动 (例如 RUNNING_IN_APP_CENTERAPP_CENTER_TEST) 。

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

框架 测试环境变量 应用程序环境变量
Appium 可用 不可用
Calabash 可用 仅适用于 iOS
意大利浓咖啡 可用 可用
Xamarin.UITest 可用 仅适用于 iOS
XCUITest 不可用 不可用

备注

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

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

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

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

测试中可用的环境变量

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

环境变量 描述
APP_CENTER_TEST 当测试 1 在"测试"中运行时App Center设置为 。
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 测试中的环境变量


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

示例 Calabash 测试代码:

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


app_center_test = ENV["APP_CENTER_TEST"]

示例 Espresso 测试代码

由于 Android 不支持环境变量,App Center 测试将设置 InstrumentationRegistry 值而不是 Espresso。 下面的代码段演示如何访问这些 InstrumentationRegistry 值。


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

示例 UITest 测试代码

下面的代码段演示如何使用 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