Rozpoczęcie pracy z testami regresji wizualnej przy użyciu Appium
Opublikowany: 2023-09-17Dzisiejsze oprogramowanie wymaga płynnej obsługi użytkownika na wielu platformach i urządzeniach. Jednym z najtrudniejszych aspektów w tej domenie jest utrzymanie integralności wizualnej aplikacji. W tym miejscu w grę wchodzą testy regresji wizualnej (VRT), oferujące usprawniony sposób wychwytywania błędów wizualnych i niespójności, które w przeciwnym razie mogłyby pozostać niezauważone. Dla tych, którzy chcą rozpocząć pracę z VRT, Appium oferuje solidną, skalowalną platformę do automatyzacji tego rodzaju testów na szerokiej gamie platform.
Co więcej, usługi takie jakLambdaTest oferują rozwiązanie do orkiestracji testów i wykonywania testów oparte na sztucznej inteligencji na potrzeby testów regresji wizualnej, eliminując potrzebę konfigurowania własnej infrastruktury testowej i zarządzania nią przez zespoły.To podejście oparte na chmurze zapewnia dostęp na żądanie do różnych rzeczywistych przeglądarek i urządzeń, umożliwiając jednoczesne testowanie w wielu środowiskach, skracając czas wykonywania testów i zapewniając spójność wyglądu i funkcjonalności aplikacji internetowych. LambdaTest oferuje również szczegółowe raporty z testów i integrację z popularnymi frameworkami testowymi w celu szybkiej identyfikacji i rozwiązywania problemów.
W tym artykule omówimy podstawy rozpoczęcia pracy z VRT przy użyciu Appium, dzięki czemu będziesz mógł wznieść swoją strategię testowania na wyższy poziom.
Co to jest test regresji wizualnej?
Testowanie regresji wizualnej to technika sprawdzania poprawności stosowana w celu zapewnienia, że zmiany wprowadzone w aplikacji nie będą miały niekorzystnego wpływu na wizualną prezentację interfejsu użytkownika aplikacji (UI). Jego głównym celem jest potwierdzenie, że układ i elementy wizualne są zgodne z wcześniej zdefiniowanymi oczekiwaniami, gwarantując w ten sposób nieskazitelne wrażenia wizualne użytkownika. Te kontrole wizualne obejmują różne atrybuty, takie jak położenie, luminancja, kontrast i kolor przycisków, menu, komponentów, tekstu i innych. Ta metoda jest czasami nazywana testowaniem wizualnym lub testowaniem interfejsu użytkownika.
Jak działają testy regresji wizualnej?
Zasadniczo testy regresji wizualnej polegają na przechwytywaniu migawek interfejsu użytkownika przed modyfikacją, a następnie porównywaniu ich ze zrzutami ekranu wykonanymi później. Wszelkie rozbieżności są następnie podkreślane w celu sprawdzenia przez inżyniera testującego. W praktyce istnieją różne techniki przeprowadzania testów regresji wizualnej. Niektóre z najczęściej używanych są wymienione poniżej:
Ręczne testy wizualne
Metoda ta polega na ręcznej kontroli interfejsu użytkownika bez użycia specjalistycznych narzędzi. Projektanci i programiści poświęcają czas podczas każdego wydania na wizualną kontrolę stron, aktywnie wyszukując wszelkie wady wizualne. Chociaż takie podejście może być pracochłonne i podatne na błędy ludzkie, jeśli zostanie zastosowane do całej aplikacji, jest przydatne do doraźnych lub eksploracyjnych testów interfejsu użytkownika, szczególnie na wczesnych etapach programowania.
Porównanie piksel po pikselu
Technika ta analizuje dwa zrzuty ekranu na poziomie pikseli, ostrzegając inżyniera testowego o wszelkich rozbieżnościach. Porównanie pikseli, zwane również różnicami pikseli, może zidentyfikować wszystkie potencjalne problemy, ale może również wykryć wiele nieistotnych różnic, które są niezauważalne dla ludzkiego oka i nie wpływają na użyteczność (np. Różnice w renderowaniu, wygładzanie lub różnice w dopełnieniu/marginesach ). Inżynier testowy musi skrupulatnie przeglądać te „fałszywie pozytywne wyniki” podczas każdego przebiegu testu.
Porównanie oparte na DOM
Ta metoda porównania opiera się na analizie Obiektowego Modelu Dokumentu (DOM) przed i po zmianie stanu oraz identyfikacji różnic. Chociaż skutecznie podkreśla modyfikacje związane z kodem w DOM, nie zapewnia prawdziwego porównania wizualnego. Często generuje fałszywie negatywne lub pozytywne wyniki, gdy kod pozostaje niezmieniony, ale interfejs użytkownika ewoluuje (np. treść dynamiczna lub treść osadzona) lub gdy kod się zmienia, ale interfejs użytkownika pozostaje statyczny. W związku z tym wyniki badań mogą być niespójne i wymagać dokładnej analizy, aby zapobiec przeoczeniu wad wzroku.
Porównanie wizualnej sztucznej inteligencji
Testy regresji wizualnej wykorzystujące wizualną sztuczną inteligencję wykorzystują wizję komputerową do postrzegania interfejsu użytkownika w sposób podobny do ludzkiego. Dobrze wyszkolona sztuczna inteligencja może pomóc inżynierom testującym poprzez oznaczanie wyłącznie różnic, które zauważyłby ludzki obserwator, eliminując pracochłonne zadanie rozwiązywania problemów „fałszywie dodatnich”, typowych w testach porównawczych pikseli i DOM. Ponadto Visual AI może oceniać zawartość dynamiczną i identyfikować problemy tylko w nieoczekiwanych obszarach lub regionach.
Powody wykonywania testów regresji wizualnej
W tej sekcji wyjaśniono najważniejsze powody, dla których warto przeprowadzać testy regresji wizualnej w aplikacji. Więc czytaj dalej….
Zapewnienie spójności wizualnej
Testy regresji wizualnej pomagają zapewnić spójność interfejsu użytkownika i elementów wizualnych aplikacji mobilnej w różnych wersjach, urządzeniach i platformach. Ta spójność jest ważna dla zapewnienia bezproblemowego doświadczenia użytkownika.
Walidacja zmian projektowych
Po wprowadzeniu zmian projektowych w aplikacji testy regresji wizualnej mogą sprawdzić, czy zmiany te zostały poprawnie wdrożone i czy nie spowodowały niezamierzonych problemów wizualnych.
Szybsza pętla sprzężenia zwrotnego
Testy regresji wizualnej mogą zapewnić programistom i projektantom szybką informację zwrotną, umożliwiając im zajęcie się problemami na wczesnym etapie cyklu rozwojowego. Zmniejsza to ryzyko, że krytyczne wady wizualne dotrą do produkcji.
Lepsze doświadczenie użytkownika
Wizualne usterki i niespójności mogą negatywnie wpłynąć na wygodę użytkownika i zszarganić reputację aplikacji. Wychwytując te problemy za pomocą testów regresji wizualnej, możesz zwiększyć zadowolenie użytkowników.
Testowanie regresyjne dla bibliotek interfejsu użytkownika
Jeśli Twoja aplikacja korzysta z bibliotek lub struktur interfejsu użytkownika innych firm, testy regresji wizualnej pomagają upewnić się, że aktualizacje tych bibliotek nie wprowadzają niepożądanych zmian wizualnych.
Kroki, aby rozpocząć testowanie regresji wizualnej za pomocą Appium
Testy regresji wizualnej przy użyciu Appium obejmują porównywanie elementów wizualnych interfejsu użytkownika aplikacji w celu wykrycia wszelkich niezamierzonych zmian wizualnych pomiędzy różnymi wersjami aplikacji. Oto kroki, jak rozpocząć testy regresji wizualnej przy użyciu Appium:
Krok 1: Skonfiguruj Appium i środowisko testowe
Najpierw upewnij się, że masz zainstalowane i skonfigurowane Appium w swoim systemie. Będziesz także potrzebować biblioteki klienta Appium dla preferowanego języka programowania (np. Java, Python). Ponadto zainstaluj wszelkie niezbędne zależności i narzędzia dla swojego środowiska testowego.
Krok 2: Przygotuj obrazy testowe
Zanim będzie można przeprowadzić testy regresji wizualnej, potrzebujesz zestawu obrazów bazowych reprezentujących oczekiwany wygląd ekranów aplikacji. Przechwytuj te obrazy bazowe, uruchamiając aplikację na różnych urządzeniach/emulatorach i wykonując zrzuty ekranu każdego ekranu. Przechowuj te obrazy w wyznaczonym folderze w projekcie.
Krok 3: Zaimplementuj skrypty testowe
Pisz skrypty testowe, korzystając z biblioteki klienta Appium, aby zautomatyzować proces przechwytywania zrzutów ekranu i wykonywania porównań wizualnych. Twoje skrypty testowe powinny wykonywać następujące czynności:
- Zainicjuj sterownik Appium, aby uruchomić aplikację na określonym urządzeniu/emulatorze.
- Poruszaj się po ekranach aplikacji, wykonując czynności powodujące zmiany w interfejsie użytkownika.
- Przechwytuj zrzuty ekranu, korzystając z funkcji zrzutów ekranu Appium.
- Zapisz przechwycone zrzuty ekranu w osobnym folderze dla porównania.
Oto przykład, jak kod może wyglądać w Javie przy użyciu klienta Java Appium:
```Java
importuj io.appium.java_client.AppiumDriver;
importuj io.appium.java_client.MobileElement;
importuj io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
importuj java.net.URL;
klasa publiczna VisualRegressionTest {
public static void main(String[] args) zgłasza wyjątek {
// Ustaw żądane możliwości sterownika Appium
Limity DesiredCapabilities = nowe DesiredCapabilities();
caps.setCapability("Nazwaplatformy", "Android");
caps.setCapability("nazwa urządzenia", "emulator-5554");
caps.setCapability("pakiet aplikacji", "twój.pakiet.aplikacji");
caps.setCapability("Aktywność aplikacji", "Twoja.aktywność.aplikacji");
// Zainicjuj sterownik Appium
Sterownik AppiumDriver<MobileElement> = nowy AndroidDriver<>(nowy adres URL("https://localhost:4723/wd/hub"), wielkie litery);
// Wykonuj akcje i rób zrzuty ekranu
// ...
// Zapisz zrzuty ekranu dla porównania
// ..
// Zamknij sterownik
sterownik.zakończ();
}
}
```
Krok 4: Zaimplementuj logikę porównania wizualnego
Do testów regresji wizualnej potrzebny jest mechanizm porównujący przechwycone zrzuty ekranu z obrazami bazowymi. Możesz używać bibliotek porównywania obrazów, takich jak „Resemble.js” lub „Pixelmatch”, aby przeprowadzać porównania piksel po pikselu i obliczać różnice wizualne.
Krok 5: Twierdzenie i raportowanie
W swoich skryptach testowych zaimplementuj asercje w oparciu o wyniki porównania wizualnego. Jeżeli różnice wizualne przekraczają określony próg, należy uznać test za nieudany. Generuj raporty szczegółowo opisujące wyniki testu, w tym wszelkie wykryte różnice wizualne.
Krok 6: Ciągła integracja (CI)
Zintegruj testy regresji wizualnej z potokiem CI/CD, aby mieć pewność, że będą działać automatycznie za każdym razem, gdy pojawią się zmiany w kodzie lub nowe wydania. Pomaga to wychwycić regresje wizualne na wczesnym etapie procesu tworzenia.
Krok 7: Zachowaj obrazy bazowe
W miarę rozwoju aplikacji konieczne będzie aktualizowanie obrazów bazowych, aby odpowiadały nowemu, oczekiwanemu wyglądowi. Dzięki temu uzasadnione zmiany w interfejsie użytkownika nie zostaną pomylone z regresją.
Jak użytkownicy mogą wykonywać VRT za pomocą Appium w teście lambda?
Oto jak użytkownicy mogą przeprowadzać testy regresji wizualnej za pomocą Appium w LambdaTest:
Skonfiguruj konto LambdaTest
Aby rozpocząć, utwórz konto na platformie LambdaTest, jeśli jeszcze go nie posiadasz. Będziesz potrzebować tego konta, aby uzyskać dostęp do infrastruktury testowej. Następnie upewnij się, że zainstalowałeś Appium i wszystkie zależności, jak omówiono powyżej.
Pisz skrypty testowe
Twórz skrypty testowe Appium w celu interakcji z aplikacją mobilną. Skrypty te powinny zawierać kroki poruszania się po aplikacji i wykonywania zrzutów ekranu kluczowych elementów lub ekranów.
Skonfiguruj możliwości testu lambda
Zmodyfikuj skrypty Appium, aby uwzględnić możliwości specyficzne dla LambdaTest. Obejmuje to określenie żądanej platformy (iOS/Android), wersji przeglądarki, typu urządzenia i poświadczeń LambdaTest (nazwy użytkownika i klucza dostępu).
Uruchom testy w LambdaTest
Prześlij swoje skrypty testowe Appium na platformę LambdaTest. LambdaTest udostępnia siatkę Selenium, w której można uruchamiać testy Appium. Siatka ta oferuje szeroką gamę rzeczywistych urządzeń i przeglądarek do testowania.
Wykonaj testy
Wykonaj testy na siatce LambdaTest, uruchamiając je z poziomu interfejsu internetowego. LambdaTest wykona Twoje testy na określonych urządzeniach mobilnych i przeglądarkach, przechwytując zrzuty ekranu w różnych momentach przebiegu testu.
Porównanie wizualne
Po wykonaniu testu LambdaTest generuje zrzuty ekranu przedstawiające różne stany aplikacji. Możesz użyć wbudowanego narzędzia do porównywania wizualnego, aby porównać te zrzuty ekranu z obrazami bazowymi, aby zidentyfikować wszelkie rozbieżności wizualne.
Przeglądaj i analizuj
Przeanalizuj wyniki VRT, aby zidentyfikować różnice wizualne. LambdaTest zapewnia wgląd w zmiany wizualne, podkreślając obszary, w których wykryto rozbieżności.
Automatyczne raportowanie
LambdaTest oferuje funkcje automatycznego raportowania umożliwiające śledzenie wyników testów w czasie, co ułatwia identyfikację trendów i ocenę wpływu zmian na wygląd aplikacji.
Najlepsze praktyki dotyczące pomyślnego testowania regresji wizualnej przy użyciu Appium
Oto kilka najlepszych praktyk, których należy przestrzegać, aby pomyślnie przeprowadzić testy regresji wizualnej przy użyciu Appium:
Wybierz niezawodne urządzenie i matrycę platformy
Wybierz zestaw urządzeń, systemów operacyjnych i rozdzielczości ekranu, które reprezentują najważniejsze kombinacje używane przez Twoich docelowych odbiorców. Ta matryca powinna obejmować różnorodną gamę urządzeń, aby zapewnić spójny wygląd aplikacji w różnych konfiguracjach.
Kontrola wersji obrazów referencyjnych
Prowadź repozytorium kontrolowanych wersji obrazów referencyjnych, które reprezentują oczekiwany wygląd Twojej aplikacji na różnych urządzeniach i platformach. Te obrazy referencyjne posłużą jako punkt odniesienia do porównań podczas testów regresyjnych.
Stabilne i spójne środowisko testowe
Upewnij się, że środowisko testowe jest spójne dla każdego przebiegu testu. Obejmuje to używanie tych samych wersji systemu operacyjnego, wersji Appium i bibliotek w różnych przebiegach testowych. Unikaj wprowadzania niepotrzebnych zmian w środowisku, które mogłyby prowadzić do fałszywie dodatnich wyników testów.
Oddziel zmiany interfejsu użytkownika od zmian funkcjonalnych
Oddziel testy regresji wizualnej od testów funkcjonalnych. Dzięki temu możesz skupić się wyłącznie na różnicach wizualnych, bez rozpraszania się problemami funkcjonalnymi.
Toleruj oczekiwane różnice wizualne
Nie wszystkie różnice wizualne są błędami. Ustaw poziom tolerancji dla akceptowalnych odchyleń wizualnych, aby uwzględnić drobne zmiany w interfejsie użytkownika, takie jak różnice w renderowaniu czcionek, które mogą nie mieć wpływu na ogólne wrażenia użytkownika.
Dynamiczna obsługa treści
Z łatwością obsługuj treści dynamiczne, takie jak reklamy, treści generowane przez użytkowników i dane w czasie rzeczywistym. Może być konieczne wykluczenie tych elementów z porównania lub zaktualizowanie obrazów referencyjnych, aby uwzględnić te dynamiczne zmiany.
Inteligentne strategie czekania
Wdrażaj strategie inteligentnego oczekiwania, aby mieć pewność, że elementy interfejsu użytkownika aplikacji zostaną w pełni załadowane przed wykonaniem zrzutów ekranu. Pomaga to uniknąć fałszywych alarmów spowodowanych niekompletnymi lub częściowo załadowanymi ekranami.
Wykonywanie równoległe
Jeśli to możliwe, przeprowadź testy regresji wizualnej równolegle na wielu urządzeniach i platformach. Skraca to ogólny czas testowania i zapewnia szybszą informację zwrotną na temat potencjalnych rozbieżności wizualnych.
Zautomatyzowane raportowanie i powiadomienia
Skonfiguruj automatyczne raportowanie i powiadomienia, aby ostrzegać zespół w przypadku wykrycia rozbieżności wizualnych. Zapewnia to szybkie działanie i minimalizuje czas potrzebny na rozwiązanie problemów.
Regularna konserwacja testu
W miarę rozwoju aplikacji aktualizuj obrazy referencyjne i dostosowuj testy, aby uwzględnić zamierzone zmiany wizualne. Regularnie przeglądaj i pielęgnuj testy regresji wizualnej, aby mieć pewność, że pozostają one istotne.
Przejrzyj i zweryfikuj ustalenia
Zanim uznasz jakąkolwiek różnicę za rzeczywisty problem, ręcznie przejrzyj zrzuty ekranu, aby sprawdzić, czy różnice są rzeczywistymi błędami, czy po prostu fałszywymi alarmami spowodowanymi dynamiczną zawartością lub drobnymi zmianami wizualnymi.
Ciągłe doskonalenie
Stale oceniaj swoją strategię testów regresji wizualnej i dostosowuj ją w razie potrzeby. Bądź na bieżąco z najnowszymi narzędziami, bibliotekami i najlepszymi praktykami, aby zapewnić efektywność procesu testowania.
Wniosek
Niezależnie od tego, czy chcesz zidentyfikować niezamierzone zmiany, zmniejszyć wysiłek związany z ręczną kontrolą jakości, czy po prostu poprawić spójność wizualną na różnych urządzeniach i rozdzielczościach, VRT jest niezbędnym narzędziem w Twoim arsenale testowym. Jak w przypadku każdej technologii, opanowanie niuansów wymaga czasu, ale korzyści w postaci zaoszczędzonego czasu, mniejszej liczby błędów i bardziej płynnej obsługi mogą być ogromne. Więc po co czekać? Zacznij już dziś korzystać z VRT i Appium i przenieś testowanie aplikacji mobilnych na wyższy poziom.