在测试期间处理并发数据库更改

在测试期间,测试脚本通常需要更改外部数据并针对这些更改进行测试。 此过程通常包括将数据设置回已知或原始状态的方法,以便针对已知的初始状态编写测试。 它可能涉及测试数据库和测试用户的凭据。

这是一种常见方案,在一次在一台设备上运行单个测试时效果很好。 但是,使用 App Center测试同时在多个设备上执行时,多个同时进行的测试可能会导致测试数据库中的冲突更改。 如何了解这一点?

下面是其他人使用的一些方法,大致按复杂性和功率增加的顺序:

  1. 一次仅运行一个测试。
  2. 不要修改常用数据,或不要依赖可能在测试中更改的数据。
  3. 模拟测试数据。
  4. 创建具有唯一凭据的多个测试用户。 然后,使用 (索引) ,获取该测试运行中该设备的唯一标识符。 可以使用该值查找用户凭据,以便以不同用户身份登录同一测试运行中的并发设备。 此方法对于同时执行的多个测试运行不起作用;它仅适用于测试运行中的多个设备。
  5. 在测试外部创建一个 Web 服务,他们可以运行时访问该服务,以签出一组唯一的凭据。 这可能是最复杂的解决方案,但也是最常规的解决方案。

对于上面的数字4,App Center 测试具有可通过测试脚本访问 XTC_DEVICE_INDEX 的 环境变量 。 这是一个介于0到 N-1 之间的字符串,其中 N 是运行测试的设备的数量。 在多个设备上并行运行相同测试的情况下,此变量很有用。 此环境变量仅适用于 Calabash、Appium 和 UITest,并且仅适用于测试脚本。 它不适用于所测试的应用程序。