Одновременные изменения тестовой базы данных

Важно!

Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio до полного прекращения его использования, существует несколько рекомендуемых вариантов, на которые можно перейти.

Узнайте больше о сроках поддержки и альтернативных вариантах.

Сценарии тестирования часто изменяют внешние данные и проверяют их. Процесс обычно включает в себя установку данных в известное или начальное состояние, с которым были написаны тесты. Этот процесс может использовать тестовую базу данных с учетными данными для тестового пользователя.

Этот распространенный сценарий хорошо подходит для одного теста на одном устройстве за раз. При одновременном тестировании на нескольких устройствах тесты могут привести к конфликтующим изменениям в тестовой базе данных.

Чтобы избежать конфликтующих изменений базы данных, можно использовать следующие подходы в порядке сложности и мощности.

  1. Одновременно выполняйте только один тест.

  2. Не изменяйте общие данные или не полагайтесь на данные, которые могут быть изменены тестами.

  3. Имитация данных в тестах.

  4. Создайте несколько тестовых пользователей с уникальными учетными данными, чтобы параллельные устройства выполнялись в качестве разных пользователей. Используйте индекс устройства, чтобы получить уникальный идентификатор для каждого устройства в тестовом запуске, и используйте идентификатор для поиска учетных данных пользователя. Этот подход работает только для нескольких устройств в рамках одного тестового запуска, но не для нескольких параллельных тестовых запусков.

    Тестовые скрипты Центра приложений в Calabash, Appium и Xamarin.UITest могут получить доступ к переменнойXTC_DEVICE_INDEX среды. Переменная представляет собой строку с диапазоном 0 до N-1, где N — количество устройств, на которых выполняется тест. Эту переменную можно использовать для поиска учетных данных при параллельном выполнении теста на нескольких устройствах. Переменная доступна только для тестового скрипта, но не для тестируемого приложения.

  5. Создайте внешнюю веб-службу, которая проверяет доступ во время выполнения, чтобы получить уникальный набор учетных данных. Это решение является самым сложным, но и самым общим.