Kolejne wpisy

  1. Czytelne wyniki Playwrighta w Azure DevOps: publikacja raportu w formacie JUnit, widoczne niepowodzenia w podsumowaniu potoku oraz układ kroków, który ułatwia diagnozę - w parze z analogicznym wpisem o Cypressie.

  2. Jak uruchomić testy Playwrighta w Azure DevOps: przygotowanie potoku i środowiska pod przeglądarki, trzymanie adresów aplikacji i API w zmiennych oraz ten sam ogólny przepływ co w artykule o Cypressie, przy prostszej konfiguracji po stronie Playwrighta.


Archiwum

72 wpisów

20259 wpisów

  1. Wykrywanie niechcianych zmian wyglądu dzięki zrzutom ekranu w Playwrightcie: obrazy referencyjne, aktualizacja po świadomych zmianach w UI oraz dobór tolerancji, żeby testy były wiarygodne, a nie serią fałszywych alarmów.

  2. Jedna paczka testów pod Chromium, Firefox i WebKit: wybór silników z konfiguracji i z linii poleceń oraz spojrzenie na to, jak dziś łatwiej myśleć o wielu przeglądarkach niż w czasach, gdy Cypress dopiero rozszerzał wsparcie dla Firefoxa i Edge.

  3. Bardziej odporne testy dzięki stałym punktom zaczepienia w markupie zamiast długich, kruchych łańcuchów CSS. Omawiam konwencję test id z dokumentacji Playwrighta i wiążę ją z dobrze znanym podejściem z dobrych praktyk Cypressa.

  4. Domyślny adres aplikacji i wspólne przygotowanie przed każdym testem, potem przewidywalne sprawdzanie URL-i. Zmienne środowiskowe oddzielają front od API - odpowiednik wpisu o adresach w Cypressie, ale z konwencjami Playwrighta.

  5. Cztery realistyczne scenariusze logowania: udane logowanie, złe hasło, nieistniejący użytkownik i puste pola, z przygotowaniem danych przez backend, żeby testy nie wpadały na siebie. Dobry zestaw obok analogicznego wpisu o Cypressie.

  6. Praktyczny start z Playwrightem przy automatyzacji przeglądarki: instalacja oficjalnego runnera, nawigacja, stabilne wyszukiwanie elementów, praca z formularzami i sprawdzanie oczekiwań. Na tym samym przykładowym projekcie co seria o Cypressie, żeby wygodnie porównać oba narzędzia.

  7. W artykule omówiono proces automatyzacji testów funkcjonalnych aplikacji Blazor z wykorzystaniem biblioteki Microsoft.AspNetCore.Mvc.Testing oraz narzędzia Playwright. Autor przedstawia kroki implementacji, począwszy od konfiguracji klasy uruchamiającej aplikację, aż po napisanie testów sprawdzających poprawność działania strony głównej i sekcji FAQ.

202412 wpisów

202312 wpisów

  1. Grudzień 2023: ChatGPT, GPT-4 i Copilot Chat na preview. Piramida testów zostaje, AI siedzi w szkicu, nie w ownershipie merge'a. Chat nadal nie jest GA.

  2. Wrzesień 2023: czat, Copilot i experimental CT przyspieszają pisanie testów. Piramida i triggery CI zostają. Chat nie jest jeszcze public beta dla wszystkich.

202212 wpisów

  1. Grudzień 2022: Copilot z preview do GA (ghost text, nie czat). Zaczynam migrację na Playwright. Izolacja z 2021 zostaje. ChatGPT jest z 30 listopada - nagłówek, nie narzędzie roku.

  2. Przedstawiono podejście oparte na DI do testowania integracji w aplikacjach .NET, wykorzystujące WebApplicationFactory do testowania w pamięci. Pokazuje, jak wdrażać i przełączać się między różnymi implementacjami funkcji przy użyciu DI, zwiększając stabilność testów i izolację zależności.

  3. Sierpień 2022: NuGet Testcontainers 2.1.0 i Playwright 1.25 w jednym YAML (Azure Pipelines albo GitHub Actions). Docker na hoście, bez pułapki container job z listopada 2021.

202112 wpisów

  1. Jak w listopadzie 2021 odpalam DotNet.Testcontainers 1.5.0 na agencie Azure Pipelines ubuntu-20.04: Docker na hoście, socket i pułapki container job.

  2. Wykorzystanie biblioteki Polly do implementacji polityki ponawiania prób w testach integracyjnych w projektach .NET w celu uwzględnienia warunków wyścigu i zwiększenia stabilności testów. Autor podaje przykład zastosowania logiki ponawiania prób do metod interakcji z bazą danych i podkreśla znaczenie dokładnego zdefiniowania ram czasowych dla optymalnego wykonania testu.

  3. W poście omówiono wyzwania związane z zarządzaniem dużymi zależnościami, takimi jak bazy danych do testów integracyjnych. Przedstawiono TestContainers, narzędzie służące do zarządzania kontenerami do celów testowych. Autor demonstruje jak skonfigurować i wykorzystać TestContainers z bazą danych MSSQL w projekcie .NET.

20208 wpisów

  1. Wartość wysyłania wyników testów automatycznych do Slacka po procesie budowania CI, opisując rozwiązanie techniczne wykorzystujące PowerShell, Webhooks i API Slack. Takie podejście podnosi jakość testów automatycznych i zachęca do zespołowej analizy wyników testów w różnych środowiskach CI.

  2. Wyjaśniono, jak skonfigurować raportowanie testów Cypress w potokach Azure DevOps. Opisuje kroki konfiguracji raportowania testów przy użyciu formatu JUnit, zapewniając, że awarie testów nie zakłócą potoku, a także zawiera przegląd wynikowych funkcji raportu z testów w Azure DevOps, podkreślając łatwość integracji i potencjał dodatkowych funkcjonalności w przyszłości posty.

  3. W poście omówiono integrację testów Cypress z usługą Azure DevOps w celu zapewnienia ciągłej integracji. Zawiera przewodnik krok po kroku dotyczący konfigurowania potoku CI w Azure DevOps, wprowadzania niezbędnych dostosowań skryptów, obsługi zmiennych środowiskowych i podkreśla znaczenie testowania w procesie CI. Dodatkowo podkreśla łatwość integracji i znaczenie stosowania testowania do CI dla testerów. Kod można znaleźć w serwisie GitHub w celach informacyjnych.

  4. W tym poście omówiono koncepcję testów regresji wizualnej, podczas których podczas testowania porównuje się oczekiwany wygląd interfejsu ze stanem rzeczywistym, aby wykryć defekty, których nie wyłapią tradycyjne testy regresyjne. Wyjaśnia, jak skonfigurować testy regresji wizualnej przy użyciu frameworka Cypress z bezpłatną wtyczką cypress-image-snapshot i podaje przykłady testowania całego ekranu i poszczególnych elementów pod kątem różnic wizualnych, pokazując jego skuteczność w wykrywaniu nawet niewielkich zmian.

  5. Cypress w swojej najnowszej aktualizacji wprowadził obsługę nowych przeglądarek, Firefox i Microsoft Edge. Pomimo pewnych początkowych problemów z instalacją, autor pomyślnie zaktualizował Cypress i przeprowadził testy na tych przeglądarkach, zauważając, że nowe funkcje są przydatne do celów testowych.

  6. Autor przygotował wideo, w którym prezentuje rozwiązanie zadania rekrutacyjnego dotyczącego automatyzacji testów z użyciem Selenium WebDriver i C#. Wideo trwa ponad 2 godziny i zawiera opis zadania, boilerplate oraz rozwiązanie, stanowiąc cenną okazję do nauki dobrych praktyk w tej dziedzinie.

  7. Autor omawia implementację sztucznej inteligencji w automatyzacji testów Selenium WebDriver, w szczególności z wykorzystaniem wtyczki test-ai-classifier. Podczas instalacji napotykają wyzwania, ostatecznie osiągając sukces. Chociaż rozpoznawanie elementów w oparciu o sztuczną inteligencję jest obiecujące, obecnie ma ograniczoną funkcjonalność, a rozwój projektu kryje w sobie potencjał dla przyszłości testów.

20197 wpisów

  1. W tym wpisie na blogu autor zastanawia się nad idealnym procesem testowym, jaki chcą osiągnąć w swoich projektach, podkreślając znaczenie szybkiej informacji zwrotnej na temat zmian w kodzie oraz wady testowania ręcznego. Opowiadają się za zrównoważonym podejściem, łączącym zarówno testy automatyczne (testy jednostkowe i akceptacyjne), jak i testy manualne, i podkreślają zalety procesu Continuous Delivery w zakresie szybkiej walidacji kodu i korygowania defektów.

  2. Autor podkreśla znaczenie stosowania w testach automatycznych stabilnych i wysokiej jakości selektorów oraz opowiada się za wykorzystaniem w tym celu atrybutu „data-cy” w Cypress. Pokazują, jak dodawać i wykorzystywać te atrybuty w projekcie React, upraszczając złożoność selektora i zwiększając odporność testów, udostępniając łącza do odpowiednich zmian w kodzie w GitHub.

  3. W tym wpisie autor omawia znaczenie prawidłowego zarządzania adresami URL w testach automatycznych i rozwiązuje ten problem, używając haków Cypress do scentralizowania nawigacji URL i ustawień konfiguracyjnych. Wprowadzają także ulepszenia funkcji potwierdzania adresu URL, aby zapewnić dokładne testowanie.

  4. Autor omawia proces refaktoryzacji testów kodu i porównuje dwa podejścia. App Actions i Page Object Model. Zaczynają od wdrożenia akcji aplikacji, tworzenia niestandardowych poleceń i funkcji, aby testy były czystsze i bardziej zorganizowane. Następnie przechodzą do modelu obiektowego strony, tworząc klasy reprezentujące strony i zarządzając działaniami testowymi za pośrednictwem tych klas. Doszli do wniosku, że oba podejścia mają swoje zalety i wady, a wybór zależy od potrzeb i preferencji projektu.

  5. W tym wpisie na blogu omówiono implementację testów logowania za pomocą Cypress na stronie autora. Obejmuje cztery przypadki testowe, udane logowanie, nieprawidłowe hasło, nieistniejący użytkownik i puste pola. Autor pokazuje, jak przygotować dane testowe i wykorzystać framework Cypress do przeprowadzenia tych testów, jednocześnie odnosząc się do problemów z testowaną aplikacją.

  6. Autor podzielił się swoją techniką tworzenia kompleksowych testów z wykorzystaniem narzędzia Cypress dla aplikacji zbudowanych na ASP.NET Core i React. Zawierają instrukcje krok po kroku dotyczące konfiguracji Cypress, tworzenia podstawowych testów umożliwiających odwiedzanie witryny internetowej, wyszukiwanie elementów, klikanie na nie, wprowadzanie asercji i interakcję z polami wejściowymi, podkreślając moc Cypress w testowaniu aplikacji internetowych.

  7. We wstępie do Cypress autor dzieli się swoją techniką tworzenia kompleksowych testów dla aplikacji internetowej zbudowanej na ASP.NET Core i React. Wyjaśniają proces instalacji, w tym instalację Cypress i pisanie podstawowych testów umożliwiających odwiedzanie stron internetowych, wyszukiwanie elementów, klikanie na nie i wykonywanie asercji. Podają także link do swojego repozytorium w celu uzyskania dalszych informacji i wspominają o zamiarze napisania większej liczby testów w przyszłych postach.