并发测试数据库更改

重要

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

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

测试脚本通常会更改外部数据,并针对更改进行测试。 此过程通常包括将数据设置回写入测试的已知或初始状态。 此过程可能会使用具有测试用户的凭据的测试数据库。

此常见方案适用于一次在一台设备上进行单个测试。 如果同时在多台设备上进行测试,测试可能会导致测试数据库中的更改发生冲突。

若要避免发生数据库更改冲突,可以使用以下方法,大致增加复杂性和功能的顺序:

  1. 一次只运行一个测试。

  2. 不要修改常见数据,也不依赖于测试可能会更改的数据。

  3. 模拟测试中的数据。

  4. 创建具有唯一凭据的多个测试用户,以便并发设备以不同的用户身份登录。 使用设备索引获取测试运行中每个设备的唯一标识符,并使用标识符查找用户凭据。 此方法仅适用于同一测试运行中的多个设备,而不适用于多个并发测试运行。

    Calabash、Appium 和 Xamarin.UITest 中的 App Center 测试脚本可以访问XTC_DEVICE_INDEX环境变量。 变量是一个字符串,其范围0N-1为,其中N测试运行的设备数。 在多个设备上并行运行测试时,可以使用此变量来查找凭据。 该变量仅适用于测试脚本,而不适用于正在测试的应用程序。

  5. 创建一个外部 Web 服务,测试可以在运行时访问以获取一组唯一的凭据。 此解决方案是最复杂的,但也是最通用的解决方案。