Powrót do: Praktyczne wprowadzenie do testów automatycznych z Playwright
Adnotacje i oznaczenia testów w Playwright
Prezentacja
Dodatkowe materiały
Cały kod potrzeby do realizacji tematów z tej lekcji znajdziesz też w naszym repozytorium: playwright_automatyzacja_wprowadzenie.
A dokładniej bazujemy na projekcie, który znajdziesz w katalogu S04 / L03_nowe_tagi.
Adnotacje to specjalne oznaczenia, które dodajemy do testów. Możesz sobie wyobrazić adnotacje jako rodzaj notatek lub instrukcji przyczepionych do kodu. Notatki te nie wpływają bezpośrednio na to, jak działa nasz kod. Jednak są bardzo przydatne w organizacji i poprawie czytelności naszego kodu i testów.
Adnotacje w Playwright to specjalne oznaczenia, które dodajesz do testów. Możesz użyć adnotacji, aby oznaczyć testy jako pomijane, nieudane, zbyt wolne, lub skupić się na konkretnym teście. Adnotacje mogą również zawierać dodatkowe informacje, takie jak powiązania z konkretnymi problemami (poprzez URL) czy kategorie.
Adnotacje w testach
Test bez adnotacji:
test('successful login with correct credentials', async ({ page }) => { // Arrange const userId = loginData.userId; const userPassword = loginData.userPassword; const expectedUserName = 'Jan Demobankowy'; // Act await loginPage.login(userId, userPassword); // Assert const pulpitPage = new PulpitPage(page); await expect(pulpitPage.userNameText).toHaveText(expectedUserName); } );
Test z adnotacją:
test('successful login with correct credentials', { tag: ['@smoke', '@login'], annotation: { type: 'happy path', description: 'Basic happy path test' }, }, async ({ page }) => { // Arrange const userId = loginData.userId; const userPassword = loginData.userPassword; const expectedUserName = 'Jan Demobankowy'; // Act await loginPage.login(userId, userPassword); // Assert const pulpitPage = new PulpitPage(page); await expect(pulpitPage.userNameText).toHaveText(expectedUserName); } );
Obiekt konfiguracji składa się z 2 pól – type oraz description:
{ type: 'happy path', description: 'Basic happy path test' },
Test z wieloma adnotacjami:
test('successful login with correct credentials', { tag: ['@smoke', '@login'], annotation: [ { type: 'happy path', description: 'Basic happy path test' }, { type: 'documentation', description: 'https://playwright.info/' } ], }, async ({ page }) => { // Arrange const userId = loginData.userId; const userPassword = loginData.userPassword; const expectedUserName = 'Jan Demobankowy'; // Act await loginPage.login(userId, userPassword); // Assert const pulpitPage = new PulpitPage(page); await expect(pulpitPage.userNameText).toHaveText(expectedUserName); } );
Linki
- Oficjalna dokuemntacja o adnotacjach w Playwright
- Kilka przykładów adnotacji, które opisalismy na naszym blogu playwright.info – Co nowego w Playwright 1.42 – praktyczne przykłady!
Hej, ten case z failem to może nie jest kwestia aplikacji a testu ? Po nawigacji do widoku ‘payment’ jeśli test zaczeka na waitForLoadState to wydaje się ,że problem znika 🙂
Właśnie do tej pory jeszcze nie odkryłem przyczyny problemu oraz rozwiązania – wydaje mi się ze testowałem też to z waitForLoadState 🤔
Możesz sprawdzić swoje rozwiązanie w tym teście dodając
only
i uruchamiając go kilka razy np.Jestem ciekaw wyniku i czy to pomoże w stabilizacji tego testu😀
Puściłem 3×20 z waitForLoadState i za każdym razem test zielony ale jak wklepałem tą komendę raz bez solucji to na 20 był odrazu jeden fail ;d
Nice! 😀
Potestuje to rozwiązanie na swojej innej maszynie, bo na aktualnej ten test ani razu mi się nie wysypał tez przy kilkudziesięciu odpalaeniach (bez waitForLoadState) 😅
To jest piękno flaky testów 😀
Cześć,
Pewnie już wiecie, ale w Playwright link nawet z tekstem przed jest klikalny. Przynajmniej w wersji 1.47.2
Zgadza się! 😁
Jest to fajne ułatwienie/usprawnienie zarówno po stronie testów, jak i z poziomu raportów po testach 😉