gmi.software
Usługi

Wybierz rezultat, który chcesz osiągnąć.

Zobacz wszystkie usługi
Główne obszary
Aplikacje mobilnePrzejęcie, rozwój i wydania aplikacji iOS i AndroidSklepy i platformy B2BRozwój sprzedaży online i integracje z systemami firmyIntegracje i zapleczeERP, magazyn, płatności i API
Na startAudyt kodu aplikacji mobilnejPrzed pierwszym wydaniem lub gdy działająca aplikacja wymaga naprawy
Usługi komplementarne
Utrzymanie aplikacjiSLA, monitoring, stabilność i dalszy rozwójAnalityka e-commerce mobilePomiar lejka i decyzje oparte na danychAI i automatyzacjeOd procesu i business case do produkcjiProduct Discovery & DesignZakres, prototyp i plan realizacjiWarsztaty i wycenaRyzyka, decyzje i stała cena zakresu
Nie wiesz, od czego zacząć?Umów krótką konsultację
Projekty

Zobacz produkty, za którymi stoją konkretne decyzje i wyniki.

Wszystkie case studies
Zrealizowane produkty

Case studies

Interfejsy, skala i wyniki wdrożeń
Świat KsiążkiMobilny program lojalnościowy i katalogSFDCommerce, lojalność i codzienna motywacjaSTS / SolartsKonfigurator 3D instalacji fotowoltaicznych
Szukasz inspiracji? Przejdź do biblioteki pomysłów
Technologie

Stack dobieramy do produktu, skali i ryzyka.

Poznaj cały stack technologiczny
Wyróżnione
MobileReact NativeAplikacje iOS i Android gotowe do skalowaniaMobileExpoSzybsze wydania i aktualizacje aplikacji React Native
Web i commerce
Next.jsReactTypeScriptMedusaJSKonfiguratory 3D
Backend i cloud
Node.jsNestJSPostgreSQLDockerAWS
Jakość
PlaywrightMaestro
Narzędzia

Policz koszty i uporządkuj decyzje przed rozmową.

3 bezpłatne narzędzia
Wycena aplikacjiZakres, budżet i kolejny krokUruchom narzędzieDoradca AI e-commerceMapa decyzji, ryzyk i opcjiUruchom narzędzieKalkulator TCO e-commercePorównaj SaaS i custom w 5 latUruchom narzędzie
Masz już wynik albo brief?Porozmawiajmy o wyniku
Firma

Poznaj ludzi, sposób pracy i zasady współpracy z GMI.

O nasOdpowiedzialność, historia i dowodyKarieraSposób pracy i aplikacja otwartaKontaktNowy projekt, wsparcie lub partnerstwoBlogPraktyka rozwoju aplikacji i e-commerceOpinieCo mówią klienci
PLSkontaktuj się
Usługi
Aplikacje mobilneSklepy i platformy B2BIntegracje i zapleczeNa startAudyt kodu aplikacji mobilnejUtrzymanie aplikacjiAI i automatyzacjeWszystkie usługi
Projekty
Technologie
React NativeExpoNext.jsNode.jsCały stack technologiczny
Narzędzia
Wycena aplikacjiZakres, budżet i kolejny krokDoradca AI e-commerceMapa decyzji, ryzyk i opcjiKalkulator TCO e-commercePorównaj SaaS i custom w 5 lat
Firma
O nasKarieraKontaktBlogOpinie
Skontaktuj się
Wróć do bloga
E-commerce
Opublikowano: 10 listopada 2026
10 min czytania

Jak zaplanować testy regresji sklepu w Playwright: koszyk, sesja, płatność i status zamówienia po błędzie?

Plan testów E2E ścieżki zakupu w sklepie internetowym: koszyk, sesja, płatność na symulowanych odpowiedziach dostawcy, powrót z bramki płatności i status zamówienia po błędzie, z ustawieniami Playwright do CI.

Mikołaj Lehman, CEO i założyciel GMI Software
Mikołaj Lehman
CEO i założyciel GMI Software

W skrócie

Regresja sklepu w Playwright powinna pilnować jednej rzeczy: czy klient może kupić i czy po każdym błędzie zamówienie ma poprawny status. Ten plan obejmuje pięć obszarów: koszyk, sesję, płatność na symulowanych odpowiedziach dostawcy, powrót z bramki płatności i status zamówienia po odmowie, przerwaniu albo opóźnionym powiadomieniu. Ekran płatności dostawcy sprawdza się ręcznie w sandboxie, a nie w CI. Każdy test zaczyna od czystego kontekstu przeglądarki i własnych danych po stronie serwera, a wynik płatności sprawdza po stronie serwera, nie tylko na stronie podziękowania.

Regresja sklepu w Playwright powinna pilnować jednej rzeczy: czy klient może kupić i czy po każdym błędzie zamówienie ma poprawny status. Ten plan obejmuje pięć obszarów: koszyk, sesję, płatność na symulowanych odpowiedziach dostawcy, powrót z bramki płatności i status zamówienia po odmowie, przerwaniu albo opóźnionym powiadomieniu. Ekran płatności dostawcy sprawdza się ręcznie w sandboxie, a nie w CI. Każdy test zaczyna od czystego kontekstu przeglądarki i własnych danych po stronie serwera, a wynik płatności sprawdza po stronie serwera, nie tylko na stronie podziękowania.

Krótka odpowiedź

Źródła sprawdzone 10 listopada 2026, na dokumentacji Playwright i Stripe.

Ten poradnik jest dla CTO, lidera zespołu albo osoby odpowiedzialnej za jakość sklepu internetowego, która chce, żeby każde wdrożenie sprawdzało ścieżkę zakupu automatycznie. Nie porównuje narzędzi i nie omawia testów aplikacji mobilnych. Opisuje, które scenariusze sklepu warto objąć regresją i jak je ustawić w Playwright.

W skrócie: zacznij od pięciu obszarów, w których błąd kosztuje sprzedaż albo tworzy złe zamówienie. Płatności w CI testuj na symulowanych odpowiedziach dostawcy, a jego ekran płatności sprawdzaj ręcznie w sandboxie. Każdy scenariusz kończ sprawdzeniem stanu zamówienia po stronie serwera. Strona podziękowania mówi tylko, że przeglądarka dotarła pod adres powrotu, a nie że płatność została zaksięgowana.

1. Zakres regresji: pięć obszarów

Plan regresji to nie lista wszystkich możliwych testów, tylko zestaw, który musi przejść przed każdym wdrożeniem. W sklepie najważniejsza jest ścieżka od produktu do opłaconego zamówienia i jej zachowanie przy błędach.

Tabela pokazuje minimalny zakres. Każdy wiersz to kilka testów, a nie jeden długi scenariusz od strony głównej do potwierdzenia.

1. Zakres regresji: pięć obszarów
ObszarCo sprawdzaWynik do potwierdzenia
KoszykDodanie, zmiana ilości, usunięcie, zmiana ceny lub stanuSuma i pozycje zgodne z serwerem
SesjaGość, logowanie w trakcie zakupu, wygasła sesjaKoszyk nie znika ani się nie dubluje
Płatność (symulowana)Sukces, odmowa, brak środków, wymagane 3D SecureWłaściwy komunikat i stan płatności
Powrót z bramkiPowrót na stronę sklepu, utrata połączenia, powtórne odświeżenieJedno zamówienie, status z serwera
Status po błędzieOdmowa, przerwane 3D Secure, opóźnione, zdublowane lub spóźnione starsze powiadomienieStatus zamówienia zgodny z regułą

2. Środowisko i dane testowe

Regresja płatności działa tylko na środowisku testowym z kluczami trybu testowego dostawcy płatności. Na produkcji nie uruchamiaj testów płacących prawdziwą kartą ani tworzących prawdziwe zamówienia.

Playwright tworzy osobny kontekst przeglądarki dla każdego testu, więc każdy test ma własne ciasteczka i pamięć lokalną. Wykorzystaj to: test nie powinien zależeć od koszyka zostawionego przez poprzedni. Opis: izolacja kontekstów w Playwright.

Logowanie możesz wykonać raz w projekcie przygotowującym i zapisać stan sesji do pliku. Dokumentacja Playwright zaleca dodanie katalogu z tym plikiem do .gitignore i odradza trzymanie go w repozytorium. Gdy testy zmieniają stan po stronie serwera, na przykład koszyk zalogowanego klienta, dokumentacja proponuje osobne konto na każdy równoległy proces. Opis: uwierzytelnianie w Playwright.

  • Produkty testowe: kilka produktów o znanej cenie i stanie, także jeden z niskim stanem i jeden z wariantami.
  • Konta testowe: osobne konto dla każdego procesu równoległego, jeśli testy zmieniają koszyk zalogowanego klienta.
  • Własne dane magazynu i katalogu: test, który zmienia cenę albo stan, używa produktów, z których nie korzysta żaden inny test.
  • Reset po stronie serwera: każda próba, także ponowienie, tworzy lub czyści koszyk i potrzebne dane przez API przed startem. Osobny kontekst przeglądarki i osobne konto nie izolują danych współdzielonych na serwerze.
  • Klucze testowe: tylko w zmiennych środowiskowych CI, nigdy w kodzie testów.
  • Sprzątanie danych: zamówienia testowe oznaczaj tak, żeby dało się je odfiltrować w raportach.

3. Koszyk i sesja

Testy koszyka sprawdzają, czy to, co widzi klient, zgadza się z tym, co zapisał serwer. Po każdej akcji porównaj sumę na stronie z odpowiedzią API koszyka, a nie tylko z tekstem na ekranie.

Testy sesji sprawdzają przejścia między stanami: gość, zalogowany klient, wygasła sesja. Typowe błędy to zniknięcie koszyka po zalogowaniu, zdublowanie pozycji po połączeniu koszyka gościa z koszykiem konta i utrata danych dostawy po wygaśnięciu sesji.

  1. Dodanie i zmiana ilości: suma, rabat i koszt dostawy zgodne z serwerem.
  2. Zmiana ceny lub stanu w trakcie: zmień cenę albo wyzeruj stan przez API i sprawdź komunikat w koszyku i przy płatności.
  3. Odświeżenie strony: koszyk zostaje po przeładowaniu i po zamknięciu karty.
  4. Logowanie w trakcie zakupu: koszyk gościa łączy się z koszykiem konta bez dublowania pozycji.
  5. Wygasła sesja: po wygaśnięciu sesji klient wraca do koszyka z czytelnym komunikatem, a nie do pustej strony.

4. Płatność w trybie testowym

Stripe pisze, że interfejsy takie jak Stripe Checkout i Payment Element mają zabezpieczenia uniemożliwiające testy automatyczne, a do sprawdzania zachowania aplikacji zaleca symulowanie odpowiedzi danymi testowymi. Opis: testy automatyczne ze Stripe. Dlatego w CI Playwright sprawdza Twoją aplikację na symulowanych odpowiedziach dostawcy: sukces, odmowa, wymagane 3D Secure i powrót z bramki. Nie automatyzuje ekranu płatności dostawcy.

Ekran dostawcy sprawdzaj ręcznie w sandboxie, zwłaszcza po zmianach w płatnościach. Do tego służą dane testowe. Przykład Stripe: karta 4242 4242 4242 4242 przechodzi, 4000 0000 0000 0002 kończy się ogólną odmową, 4000 0000 0000 9995 odmową z powodu braku środków, a 4000 0027 6000 3184 zawsze wymaga uwierzytelnienia 3D Secure. Opis: dane testowe Stripe. Inni dostawcy mają własne tryby testowe i własne dane, więc sprawdź dokumentację swojego.

Stripe zaznacza, że stan karty z jednego testu może wpłynąć na kolejne testy używające tej samej karty, więc przy ręcznych sprawdzeniach używaj osobnej karty dla każdego niezależnego scenariusza. Osobna, rzadko uruchamiana kontrola kontraktu API może korzystać z sandboxa, z uwzględnieniem limitów zapytań.

Dla każdego wyniku płatności zapisz oczekiwany komunikat dla klienta i oczekiwany stan płatności po stronie sklepu. Test sprawdza oba.

5. Powrót z bramki płatności

Najczęściej pomijany scenariusz to sytuacja, w której płatność się udała, a przeglądarka nie wróciła do sklepu. Stripe pisze wprost, że nie można opierać realizacji zamówienia wyłącznie na stronie powrotu, bo klient może zapłacić i stracić połączenie, zanim ta strona się załaduje. Realizacja zamówienia wymaga obsługi webhooków. Opis: realizacja zamówień po płatności w Stripe.

Do symulacji tego przypadku w Playwright służy przechwytywanie żądań. Metoda page.route z route.abort pozwala przerwać ładowanie strony powrotu, a route.fulfill podstawić odpowiedź. Potwierdzenie płatności podaj wtedy jako symulowane zdarzenie dostawcy i sprawdź przez API albo panel, że zamówienie i tak ma status opłaconego. Opis: obsługa sieci w Playwright.

Stripe zaznacza też, że ten sam webhook może dotrzeć więcej niż raz, a kolejność zdarzeń nie jest gwarantowana. Opis: webhooki Stripe. Powtórzone zdarzenie sprawdzisz przez ponowną dostawę w sandboxie albo w teście integracyjnym z poprawnie podpisanym zdarzeniem testowym. Asercja dotyczy jednego skutku biznesowego: jednego zamówienia, jednej płatności i jednej rezerwacji.

Dodaj też dwa scenariusze kolejności. W pierwszym przeglądarka wraca przed webhookiem: strona powrotu pokazuje stan oczekujący, a zamówienie przechodzi na opłacone dopiero po potwierdzeniu płatności. W drugim starsze zdarzenie dociera po nowszym i nie cofa stanu zamówienia. Przy metodach płatności z opóźnionym wynikiem stan opłacony ustawia dopiero zdarzenie z ostatecznym wynikiem, w Stripe Checkout na przykład checkout.session.async_payment_succeeded.

6. Status zamówienia po błędzie

Ten obszar zamienia reguły biznesowe w testy. Zanim napiszesz test, zespół musi ustalić, jaki status ma mieć zamówienie w każdym przypadku. Jeśli tej reguły nie ma, test ją ujawni, ale nie powinien jej wymyślać.

Tabela pokazuje przykład reguły. Twoja platforma może używać innych nazw statusów; ważne, żeby każdy wiersz miał jeden oczekiwany wynik.

6. Status zamówienia po błędzie
ZdarzeniePrzykładowy oczekiwany stanCo jeszcze sprawdzić
Odmowa kartyBrak opłaconego zamówienia, płatność odrzuconaKoszyk zachowany, klient może spróbować ponownie
Przerwane 3D SecurePłatność niezakończonaBrak rezerwacji towaru po upływie przyjętego czasu
Płatność udana, brak powrotu do sklepuZamówienie opłaconeE-mail z potwierdzeniem wysłany
Zdublowany webhookJedno opłacone zamówienieJedna płatność, jedna rezerwacja
Powrót klienta przed webhookiemOczekujące, potem opłacone po potwierdzeniuStrona powrotu nie pokazuje sukcesu przed potwierdzeniem
Starsze zdarzenie po nowszymStan bez zmianBrak cofnięcia statusu i ponownej rezerwacji
Webhook przed powrotem klientaZamówienie opłaconeStrona powrotu pokazuje stan z serwera

7. Uruchamianie w CI i niestabilne testy

Playwright domyślnie nie ponawia nieudanych testów. Po włączeniu ponowień test, który najpierw nie przeszedł, a potem przeszedł, jest oznaczany jako niestabilny. Opis: ponawianie testów w Playwright.

Dokumentacja Playwright zaleca w CI ustawienie trace na on-first-retry. Ślad rejestruje wtedy pierwsze ponowienie nieudanego testu, a nie pierwszą próbę. Ponowienie może przejść, więc ślad pokaże udany przebieg; porównaj go z logiem i zrzutem z pierwszej próby. Opis: przeglądarka śladów Playwright.

Niestabilny test płatności traktuj jako sygnał, a nie szum. Często oznacza wyścig między powrotem klienta a webhookiem, czyli dokładnie ten błąd, który może trafić na produkcję.

  • Na każdy pull request: krótki zestaw koszyka i jednej udanej płatności na symulowanej odpowiedzi dostawcy.
  • Przed wdrożeniem: pełny plan z odmowami, 3D Secure, powrotem z bramki i statusami po błędzie, na symulowanych odpowiedziach; przy zmianach w płatnościach także ręczne sprawdzenie ekranu dostawcy w sandboxie.
  • Po wdrożeniu: monitorowanie ścieżki zakupu na produkcji, bez płatności testowych w produkcyjnych kluczach.

8. Czego ten plan nie obejmuje

Plan obejmuje przeglądarkową ścieżkę zakupu. Nie zastępuje testów jednostkowych logiki cen i rabatów, testów wydajności przed szczytem sprzedaży ani testów aplikacji mobilnej, które wymagają innych narzędzi.

Regresja przed wdrożeniem nie zastępuje też obserwacji produkcji. O tym, jak mierzyć ścieżkę zakupu w czasie szczytów, piszemy w poradniku o obserwowalności sklepu w szczycie sprzedaży.

Najczęstsze pytania

Czy strona podziękowania wystarczy jako dowód udanej płatności w teście?
Nie. Strona podziękowania pokazuje tylko, że przeglądarka wróciła pod adres powrotu. Test powinien sprawdzić stan zamówienia i płatności po stronie serwera, bo Stripe wymaga obsługi webhooków do realizacji zamówienia.
Czy Playwright powinien klikać ekran płatności Stripe?
Nie w CI. Stripe opisuje zabezpieczenia Checkout i Payment Element przed testami automatycznymi i zaleca symulowanie odpowiedzi. W CI testuj swoją aplikację na symulowanych wynikach, ekran dostawcy sprawdzaj ręcznie w sandboxie, a na produkcji nie płać testowo prawdziwą kartą.
Jak przetestować zdublowany webhook?
Użyj ponownej dostawy zdarzenia w sandboxie albo w teście integracyjnym wyślij dwa razy to samo, poprawnie podpisane zdarzenie testowe. Sprawdź jeden skutek biznesowy: jedno zamówienie, jedną płatność i jedną rezerwację towaru.
Czym ten plan różni się od ogólnego opisu Playwright?
Nie opisuje możliwości narzędzia, tylko konkretne scenariusze regresji sklepu: koszyk, sesję, płatność testową, powrót z bramki i status zamówienia po błędzie.

Sprawdź, które scenariusze zakupu Twój sklep już testuje

Sprawdź z nami, które scenariusze zakupu Twój sklep już testuje.

Treść zaktualizowano: 10 listopada 2026

Mikołaj Lehman, CEO i założyciel GMI Software
Mikołaj Lehman
CEO i założyciel GMI Software

Mikołaj Lehman jest CEO i założycielem GMI Software. Na blogu opisuje decyzje związane z aplikacjami mobilnymi, e-commerce oraz realizacją produktów cyfrowych.

  • Aplikacje mobilne i React Native
  • Headless i e-commerce B2B
  • MedusaJS
  • Realizacja produktów cyfrowych

Google Preferred Sources

Czytaj GMI częściej w Google

Dodaj gmi.software do preferowanych źródeł. Google może częściej wyróżniać nasze nowe materiały w Top Stories i obsługiwanych widokach AI.

Udostępnij artykuł:

Powiązane artykuły

E-commerce

Marketplace z wieloma sprzedawcami w MedusaJS: co zaprojektować

Model sprzedawcy, izolacja danych i uprawnień, publikowanie ofert, zamówienia per sprzedawca i granice rdzenia Medusy v2. Na końcu kryteria decyzji: budować moduł samemu czy wziąć gotowy.

→
E-commerce

Portal sprzedaży firmowej na MedusaJS i Next.js: architektura, koszt i ryzyka

Praktyczny przewodnik po portalach sprzedaży firmowej: MedusaJS v2 jako rdzeń sprzedaży, Next.js jako szybka warstwa zakupowa, grupy klientów, cenniki, kanały sprzedaży, połączenia z systemem finansowo-magazynowym i bazą produktów oraz koszt wdrożenia.

→

Porozmawiajmy o projekcie.

Opisz, czego potrzebujesz. Zaproponujemy następny krok.

[email protected]
gmi.software Sp. z o.o.ul. Jana Heweliusza 11 / 819
80-890 Gdańsk, Polska
Ocena 5,0 na 5 w Google5,017 opinii klientów w GooglePrzeczytaj opinie
© 2026 gmi.software Sp. z o.o.
Polityka prywatnościRegulamin