Jak zapobiec awariom testów E2E po każdej zmianie interfejsu?
Testy E2E przestają działać po zmianie interfejsu, ponieważ znajdują elementy na podstawie klasy, identyfikatora, fragmentu tekstu lub położenia, a to właśnie te rzeczy zmieniają się przy przebudowie. Nexus Studio firmy Verdict System LLC radzi sobie z tym w trzech krokach: proponuje nowy lokalizator i pyta o zgodę przed zmianą testu, oznacza przebieg uratowany przez naprawiony selektor jako AUTO_RECOVER zamiast jako bezwarunkowo zaliczony i wyświetla listę słabych lokalizatorów, aby można było naprawić je w pierwszej kolejności.
Autor: zespół Nexus Studio, Verdict System LLC. 7 października 2026.
Dlaczego testy Playwright i Selenium kończą się niepowodzeniem po zmianie interfejsu?
Lokalizator to adres, którego test używa do znalezienia elementu. Jeśli adres zależy od czegoś niezwiązanego z funkcją elementu, na przykład od klasy wygenerowanej podczas kompilacji, położenia na stronie lub treści etykiety, zmiana strony sprawia, że adres staje się nieprawidłowy i test kończy się niepowodzeniem w tym wierszu, choć aplikacja nadal działa.
Kosztem nie jest pojedyncze niepowodzenie. Jest nim czas, który zespół poświęca na analizowanie nieudanych przebiegów, znajdowanie wiersza, szukanie nowego lokalizatora i edytowanie pliku, za każdym razem po kolejnym wydaniu.
Co jest nie tak z samonaprawianiem, które poprawia testy bez powiadomienia?
Narzędzie, które podmienia niedziałający lokalizator, nikogo o tym nie informując, utrzymuje pozytywny wynik zestawu testów, ale jednocześnie ukrywa zmianę. Test klika teraz coś, czego autor nie wybrał, i nikt tego nie sprawdził. Jeśli nowe dopasowanie wskazuje niewłaściwy element, test może zostać zaliczony, mimo że sprawdza nie to, co powinien.
Nexus Studio opiera się na przeciwnej zasadzie: nic nie jest naprawiane za Twoimi plecami.
Jak Nexus Studio naprawia niedziałający lokalizator?
- Przy domyślnym ustawieniu samonaprawiania, Suggest, niepowodzenie testu powoduje, że Studio otwiera przeglądarkę w tle, odtwarza test do wiersza z błędem i odczytuje stronę. Propozycje są gotowe, gdy otworzysz szczegóły niepowodzenia. Nie jest do tego używana AI, a test nadal ma wynik negatywny.
- Z poziomu marginesu przy wierszu z błędem funkcja Napraw wiersz pozwala ponownie nagrać tylko ten krok lub zastąpić selektor jedną z propozycji. Propozycje są uporządkowane od najbardziej niezawodnej, a XPath znajduje się na końcu.
- Zmiana trafia do edytora bez zapisywania. Jej zapisanie oznacza Twoją zgodę.
- Możesz też zapytać swoją AI, którą propozycję wybrać. Może ona zmienić kolejność propozycji, ale nigdy nie doda nowej, a poprzednia wersja pliku pozostaje w historii pliku.
Co oznacza zaliczenie testu z naprawionym selektorem?
Werdykt to AUTO_RECOVER: przebieg został zaliczony, ale mechanizm samonaprawiania musiał zastąpić selektor w tym teście. Nigdy nie jest to zgłaszane jako SECURE, czyli bezwarunkowe zaliczenie. Lokalizator napisany przez autora już nie działa, a kolejna zmiana strony rzeczywiście spowoduje niepowodzenie zestawu testów, więc zastrzeżenie pozostaje widoczne w raporcie i Historii, dopóki ktoś nie naprawi pierwotnego selektora.
AUTO_RECOVER jest jednym z siedmiu pozytywnych werdyktów, więc zadanie CI kończy się w tym przypadku kodem 0. Zastrzeżenie pojawia się w raporcie, a nie jako nieudana kompilacja. Pełna kolejność kontroli jest opisana w artykule Jak Nexus Studio ustala 14 werdyktów testów.
Jak znaleźć słabe selektory, zanim przestaną działać?
- Kondycja lokalizatorów wyświetla słabe lokalizatory w otwartym teście wraz z numerami ich wierszy i pozwala je naprawić w tym samym oknie dialogowym co funkcja Napraw wiersz.
- Mapy selektorów skanują stronę bez AI, nadają każdemu selektorowi ocenę WYSOKĄ, ŚREDNIĄ lub NISKĄ i przechowują mapę na Twoim dysku.
- Weryfikacja Vet, czyli siedem kontroli, które musi przejść każdy test napisany przez AI, obejmuje zasadę, że test nie może zawierać podatnych na zmiany lokalizatorów.
Jakie lokalizatory wybiera Rejestrator?
Nexus Recorder zapisuje klikane elementy jako kod testu, bez udziału AI. Może używać atrybutu identyfikatora testowego: gdy wybierzesz data-testid dla nagrania w JavaScript, odczytuje zarówno data-testid, jak i data-qa. Nagrania dla Python i Selenium zachowują jedną nazwę atrybutu używaną przez ich narzędzie uruchamiające. Selektory oparte na tych atrybutach są oceniane jako odporne na zmiany, natomiast nazwa klasy wygenerowana podczas kompilacji, długi łańcuch CSS i sama nazwa znacznika są oceniane jako podatne na zmiany.
Czy test pozostaje standardowym plikiem Playwright lub Selenium?
Tak. Każdy test zapisany lub zaimportowany przez Studio to kod platformy testowej, którą Twój zespół już zna: plik Playwright Test (JavaScript, TypeScript, Python lub C#) albo Selenium (JavaScript, Python, Java lub C#). Naprawa zmienia wiersz tego pliku, więc jeśli przestaniesz używać Studio, nie musisz migrować z zastrzeżonego formatu.
Ograniczenia
- Samonaprawianie w trybie Suggest nie poprawia niczego samodzielnie. Każdą naprawę nadal zatwierdza człowiek, więc duża zmiana interfejsu wciąż wymaga czasu na weryfikację.
- Automatyczny odczyt po niepowodzeniu wymaga wolnej pamięci na komputerze. Jeśli jest jej za mało, odczyt nie zostanie uruchomiony, ale nadal możesz ręcznie poprosić o propozycje.
- Funkcja Kondycja lokalizatorów odczytuje plik wiersz po wierszu, więc nie wykrywa lokalizatora rozbitego na kilka wierszy.
- Słaby lokalizator, który nadal działa, nie oznacza niepowodzenia. Funkcja Kondycja lokalizatorów informuje Cię o nim, ale nic nie zmusza Cię do jego zmiany.
Gdzie mogę zobaczyć to w działaniu?
Prezentacja Studio pokazuje wiersz Repair i stan lokalizatorów na ekranie, przewodnik po werdyktach wyjaśnia AUTO_RECOVER wraz z pozostałymi 13 werdyktami, a 30-dniowa wersja próbna pozwala uruchomić ten sam silnik na własnych testach.