Zagadnienia dotyczące testowania interfejsu użytkownika
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
W przypadku uruchamiania testów automatycznych w potoku ciągłej integracji/ciągłego wdrażania może być potrzebna specjalna konfiguracja w celu uruchomienia testów interfejsu użytkownika, takich jak testy Selenium lub Appium albo kodowane testy interfejsu użytkownika. W tym artykule opisano typowe zagadnienia dotyczące uruchamiania testów interfejsu użytkownika.
Wymagania wstępne
Zapoznaj się z agentami i wdrażaniem agenta w systemie Windows.
Tryb bezgłowy lub widoczny tryb interfejsu użytkownika?
Podczas uruchamiania testów Selenium dla aplikacji internetowej można uruchomić przeglądarkę na dwa sposoby:
Tryb bezgłowy. W tym trybie przeglądarka działa normalnie, ale bez wyświetlania żadnych składników interfejsu użytkownika. Chociaż ten tryb nie jest przydatny do przeglądania internetu, przydaje się do uruchamiania testów automatycznych w sposób nienadzorowany w potoku ciągłej integracji/ciągłego wdrażania. Przeglądarki Chrome i Firefox można uruchamiać w trybie bezgłówkowym.
Ten tryb zwykle zużywa mniej zasobów na maszynie, ponieważ interfejs użytkownika nie jest renderowany, a testy są uruchamiane szybciej. W związku z tym potencjalnie więcej testów można uruchomić równolegle na tej samej maszynie, aby skrócić całkowity czas wykonywania testu.
Zrzuty ekranu można przechwycić w tym trybie i użyć do rozwiązywania problemów z błędami.
Uwaga
Obecnie nie można uruchomić przeglądarki Microsoft Edge w trybie bezgłówkowym.
Widoczny tryb interfejsu użytkownika. W tym trybie przeglądarka działa normalnie, a składniki interfejsu użytkownika są widoczne. Podczas uruchamiania testów w tym trybie w systemie Windows wymagana jest specjalna konfiguracja agentów .
Jeśli uruchamiasz testy interfejsu użytkownika dla aplikacji klasycznej, takie jak testy Appium przy użyciu narzędzia WinAppDriver lub kodowane testy interfejsu użytkownika, wymagana jest specjalna konfiguracja agentów .
Napiwek
Kompleksowe testy interfejsu użytkownika zwykle są długotrwałe. W przypadku korzystania z trybu widocznego interfejsu użytkownika w zależności od struktury testowej może nie być możliwe równoległe uruchamianie testów na tej samej maszynie, ponieważ aplikacja musi być skoncentrowana na odbieraniu zdarzeń klawiatury i myszy. W tym scenariuszu można przyspieszyć cykle testowania, uruchamiając testy równolegle na różnych maszynach. Zobacz Równoległe uruchamianie testów dla dowolnego modułu uruchamiającego testy i równoległe uruchamianie testów przy użyciu zadania testowego programu Visual Studio.
Testowanie interfejsu użytkownika w widocznym trybie interfejsu użytkownika
Aby agenci uruchamiali testy interfejsu użytkownika w widocznym trybie interfejsu użytkownika, wymagana jest specjalna konfiguracja.
Widoczne testowanie interfejsu użytkownika przy użyciu agentów hostowanych przez firmę Microsoft
Widoczne testowanie interfejsu użytkownika w agentach hostowanych przez firmę Microsoft nie jest obsługiwane. Test kończy się niepowodzeniem z komunikatem o błędzie "element nie można wchodzić w interakcję". Agenci hostowani przez firmę Microsoft obsługują testowanie przeglądarki bez głowy.
Testowanie interfejsu użytkownika trybu bezgłowego przy użyciu agentów hostowanych przez firmę Microsoft
Agenci hostowani przez firmę Microsoft są wstępnie skonfigurowani na potrzeby testowania interfejsu użytkownika i testów interfejsu użytkownika dla aplikacji internetowych. Agenci hostowani przez firmę Microsoft są również wstępnie skonfigurowani z popularnymi przeglądarkami i pasującymi wersjami sterowników internetowych, których można używać do uruchamiania testów Selenium. Przeglądarki i odpowiednie sterowniki internetowe są okresowo aktualizowane. Aby dowiedzieć się więcej na temat uruchamiania testów Selenium, zobacz Testowanie interfejsu użytkownika za pomocą selenu.
Widoczne testowanie interfejsu użytkownika przy użyciu własnych agentów systemu Windows
Agenci skonfigurowani do uruchamiania jako usługi mogą uruchamiać testy Selenium tylko w przeglądarkach bezgłowych. Jeśli nie używasz przeglądarki bezgłównej lub jeśli uruchamiasz testy interfejsu użytkownika dla aplikacji klasycznych, agenci systemu Windows muszą być skonfigurowani do uruchamiania jako interaktywny proces z włączonym automatycznym logowaniem.
Podczas konfigurowania agentów wybierz pozycję "Nie", gdy zostanie wyświetlony monit o uruchomienie jako usługa. Kolejne kroki umożliwiają skonfigurowanie agenta za pomocą automatycznego dziennika. Po uruchomieniu testów interfejsu użytkownika aplikacje i przeglądarki są uruchamiane w kontekście użytkownika określonego w ustawieniach autologonu.
Jeśli używasz pulpitu zdalnego do uzyskiwania dostępu do komputera, na którym działa agent z autologonem, po prostu rozłączanie pulpitu zdalnego powoduje zablokowanie komputera, a wszystkie testy interfejsu użytkownika uruchamiane na tym agencie mogą zakończyć się niepowodzeniem. Aby uniknąć awarii, użyj polecenia tscon na komputerze zdalnym, aby odłączyć się od pulpitu zdalnego. Na przykład:
%windir%\System32\tscon.exe 1 /dest:console
W tym przykładzie numer "1" jest identyfikatorem sesji pulpitu zdalnego. Ta liczba może ulec zmianie między sesjami zdalnymi, ale może być widoczna w Menedżerze zadań. Alternatywnie, aby zautomatyzować znajdowanie bieżącego identyfikatora sesji, utwórz plik wsadowy zawierający następujący kod:
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
%windir%\System32\tscon.exe %%s /dest:console
)
Zapisz plik wsadowy i utwórz skrót do niego pulpitu, a następnie zmień właściwości skrótu na "Uruchom jako administrator". Uruchomienie pliku wsadowego z tego skrótu powoduje rozłączenie się z pulpitem zdalnym, ale zachowuje sesję interfejsu użytkownika i umożliwia uruchamianie testów interfejsu użytkownika.
Aprowizowanie agentów na maszynach wirtualnych platformy Azure na potrzeby testowania interfejsu użytkownika
Jeśli aprowizujesz maszyny wirtualne na platformie Azure, konfiguracja agenta na potrzeby testowania interfejsu użytkownika jest dostępna za pośrednictwem artefaktu agenta dla usługi DevTest Labs.
Ustawianie rozdzielczości ekranu
Przed uruchomieniem testów interfejsu użytkownika może być konieczne dostosowanie rozdzielczości ekranu w celu poprawnego renderowania aplikacji. W tym celu zadanie narzędzia do rozpoznawania ekranu jest dostępne w witrynie Marketplace. Użyj tego zadania w potoku, aby ustawić rozdzielczość ekranu na wartość obsługiwaną przez maszynę agenta. Domyślnie to narzędzie ustawia rozdzielczość na optymalną wartość obsługiwaną przez maszynę agenta.
Jeśli wystąpią błędy przy użyciu zadania rozpoznawania ekranu, upewnij się, że agent jest skonfigurowany do uruchamiania z włączonym automatycznym logowaniem i że wszystkie sesje pulpitu zdalnego są bezpiecznie rozłączone przy użyciu polecenia tscon zgodnie z powyższym opisem.
Uwaga
Zadanie narzędzia do rozpoznawania ekranu jest uruchamiane na ujednoliconym agencie kompilacji/wydania/testu i nie można go używać z przestarzałym zadaniem Uruchom testy funkcjonalne. Zadanie narzędzia rozpoznawania nie działa również w przypadku maszyn wirtualnych platformy Azure.
Rozwiązywanie problemów z błędami w testach interfejsu użytkownika
Podczas uruchamiania testów interfejsu użytkownika w sposób nienadzorowany przechwytywanie danych diagnostycznych, takich jak zrzuty ekranu lub wideo , jest przydatne do odnajdywania stanu aplikacji w przypadku napotkania błędu.
Przechwyć zrzuty ekranu
Większość platform testowania interfejsu użytkownika zapewnia możliwość przechwytywania zrzutów ekranu. Zebrane zrzuty ekranu są dostępne jako załącznik do wyników testu po opublikowaniu tych wyników na serwerze.
Jeśli używasz zadania testowego programu Visual Studio do uruchamiania testów, przechwycone zrzuty ekranu muszą zostać dodane jako plik wynikowy, aby był dostępny w raporcie testowym. W tym celu użyj następującego kodu:
Najpierw upewnij się, że element TestContext jest zdefiniowany w klasie testowej. Na przykład: public TestContext TestContext { get; set; }
.
Dodawanie pliku zrzutu ekranu przy użyciu polecenia TestContext.AddResultFile(fileName); //Where fileName is the name of the file.
Jeśli używasz zadania Publikuj wyniki testu do publikowania wyników, załączniki wyników testów można publikować tylko wtedy, gdy używasz formatu wyników VSTest (TRX) lub formatu wyników NUnit 3.0.
Nie można opublikować załączników wyników, jeśli używasz wyników testu JUnit lub xUnit. Dzieje się tak, ponieważ te formaty wyników testu nie mają formalnej definicji załączników w schemacie wyników. Zamiast tego możesz użyć jednej z poniższych metod publikowania załączników testowych.
Jeśli uruchamiasz testy w potoku kompilacji (CI), możesz użyć zadania Copy and Publish Build Artifacts (Kopiowanie i publikowanie artefaktów kompilacji ), aby opublikować więcej plików utworzonych w testach. Są one wyświetlane na stronie Artefakty podsumowania kompilacji.
Użyj interfejsów API REST, aby opublikować niezbędne załączniki. Przykłady kodu można znaleźć w tym repozytorium GitHub.
Przechwytywanie wideo
Jeśli używasz zadania testowego programu Visual Studio do uruchamiania testów, wideo z testu można przechwycić i jest automatycznie dostępne jako załącznik do wyniku testu. W tym celu należy skonfigurować moduł zbierający dane wideo w pliku .runsettings, a ten plik musi być określony w ustawieniach zadania.
Pomoc i obsługa techniczna
- Zobacz naszą stronę rozwiązywania problemów
- Uzyskaj porady dotyczące rozwiązania Stack Overflow i uzyskaj pomoc techniczną za pośrednictwem społeczności deweloperów