Współbieżne zmiany testowej bazy danych
Ważne
Program Visual Studio App Center ma zostać wycofany 31 marca 2025 r. Mimo że można nadal używać programu Visual Studio App Center do momentu jego pełnego wycofania, istnieje kilka zalecanych alternatyw, do których można rozważyć migrację.
Dowiedz się więcej o osiach czasu pomocy technicznej i alternatywach.
Skrypty testowe często zmieniają dane zewnętrzne i testować pod kątem zmian. Proces zwykle obejmuje ustawienie danych z powrotem na znany lub początkowy stan, względem którego zostały zapisane testy. Ten proces może używać testowej bazy danych z poświadczeniami użytkownika testowego.
Ten typowy scenariusz dobrze sprawdza się w przypadku pojedynczego testu na jednym urządzeniu jednocześnie. Jeśli testujesz na wielu urządzeniach jednocześnie, testy mogą powodować konfliktowe zmiany w testowej bazie danych.
Aby uniknąć konfliktowych zmian bazy danych, można użyć następujących metod, w przybliżeniu zwiększając kolejność złożoności i mocy:
Uruchom tylko jeden test naraz.
Nie modyfikuj wspólnych danych ani nie polegaj na danych, które mogą ulec zmianie.
Pozoruj dane w testach.
Utwórz wielu użytkowników testowych z unikatowymi poświadczeniami, więc urządzenia współbieżne loguje się jako różni użytkownicy. Użyj indeksu urządzenia, aby uzyskać unikatowy identyfikator dla każdego urządzenia w ramach przebiegu testowego i użyj identyfikatora, aby wyszukać poświadczenia użytkownika. Takie podejście działa tylko w przypadku wielu urządzeń w ramach tego samego przebiegu testu, a nie w wielu współbieżnych przebiegach testów.
Skrypty testowe usługi App Center w środowisku Calabash, Appium i Xamarin.UITest mogą uzyskiwać dostęp do zmiennej środowiskowej
XTC_DEVICE_INDEX
. Zmienna jest ciągiem z zakresem0
doN-1
, gdzieN
jest liczbą urządzeń uruchamianych w teście. Za pomocą tej zmiennej można wyszukać poświadczenia podczas równoległego uruchamiania testu na wielu urządzeniach. Zmienna jest dostępna tylko dla skryptu testowego, a nie dla aplikacji testowej.Utwórz zewnętrzną usługę internetową, która testuje dostęp w czasie wykonywania, aby uzyskać unikatowy zestaw poświadczeń. To rozwiązanie jest najbardziej złożone, ale jest również najbardziej ogólne.