Souběžné změny testovací databáze

Důležité

31. března 2025 je naplánované vyřazení z provozu. I když můžete dál používat Visual Studio App Center, dokud ho úplně vyřadíte, existuje několik doporučených alternativ, na které můžete zvážit migraci.

Přečtěte si další informace o časových osách a alternativách podpory.

Testovací skripty často mění externí data a testují změny. Tento proces obvykle zahrnuje nastavení dat zpět do známého nebo počátečního stavu, do kterého byly testy zapsány. Tento proces může používat testovací databázi s přihlašovacími údaji pro testovacího uživatele.

Tento běžný scénář funguje dobře pro jeden test na jednom zařízení současně. Pokud testujete na více zařízeních najednou, můžou testy způsobit konfliktní změny v testovací databázi.

Abyste se vyhnuli konfliktním změnám databáze, můžete použít následující přístupy v přibližně rostoucím pořadí složitosti a výkonu:

  1. Spouštějte pouze jeden test najednou.

  2. Neupravujte běžná data nebo nespoléhejte na data, která se můžou změnit v testech.

  3. Napodobení dat v testech

  4. Vytvořte několik testovacích uživatelů s jedinečnými přihlašovacími údaji, aby se souběžná zařízení přihlásila jako různí uživatelé. Pomocí indexu zařízení získáte jedinečný identifikátor pro každé zařízení v rámci testovacího běhu a použijete ho k vyhledání přihlašovacích údajů uživatele. Tento přístup funguje pouze pro více zařízení v rámci stejného testovacího běhu, ne pro více souběžných testovacích běhů.

    Testovací skripty App Center v Calabash, Appium a Xamarin.UITest mají přístup k XTC_DEVICE_INDEXproměnné prostředí. Proměnná je řetězec s rozsahem 0 do N-1, kde N je počet zařízení, na kterých test běží. Tuto proměnnou můžete použít k vyhledání přihlašovacích údajů při paralelním spuštění testu na více zařízeních. Proměnná je k dispozici pouze pro testovací skript, nikoli pro testovaná aplikace.

  5. Vytvořte externí webovou službu, ke které mají testy přístup za běhu, aby získaly jedinečnou sadu přihlašovacích údajů. Toto řešení je nejsložitější, ale také nejobecnější.