gmi.software
01 · Twoja aplikacja

Aplikacje mobilne

Gdy aplikację trudno zmienić, często się psuje albo nikt za nią nie odpowiada.

  • Rozwój lub przejęcie aplikacji
  • Aplikacje lojalnościowe
  • Audyt kodu aplikacji mobilnej
  • Utrzymanie aplikacji i wydania

SFD: 100 000+ pobrań, ocena 4,9 w App Store

02 · Twój sklep

Sklepy internetowe

Gdy platforma bierze prowizję od każdej sprzedaży albo blokuje to, czego potrzebujesz.

  • Rozwój sklepu internetowego
  • Analityka aplikacji sklepu
  • Plan i prototyp przed budową

120+ projektów zrealizowanych

03 · Systemy za nimi

Integracje

Gdy zamówienia, stany i punkty przepisuje się ręcznie.

  • ERP, magazyn i płatności
  • AI dla jednego ręcznego procesu
  • Warsztaty i wycena

100+ integracji

Przed rozmową
  • Wycena aplikacjiZakres i widełki budżetu
  • Doradca wyboru platformy sklepuDecyzje, ryzyka i opcje
  • Koszt sklepu w 5 latGotowa platforma czy własna, porównanie

Po warsztatach: uzgodniony zakres i stała cena jego realizacji

Wszystkie usługi →
SFDAplikacja lojalnościowa i zakupowa100 000+ pobrań · ocena 4,9 w App StoreMój Świat KsiążkiProgram lojalnościowy sieci księgarń100 000+ pobrańEMKAAplikacja do śledzenia odpadów medycznych5000+ pobrań w pierwszym miesiącu
Wszystkie 120+ projektów →Biblioteka pomysłów na aplikacje
ZespółO nasKim jesteśmy i jak pracujemyKarieraJak pracujemy i otwarte rekrutacje
Kontakt i technologieKontakt[email protected]TechnologieReact Native, MedusaJS, Node.js i reszta
Opinie5.0 w Google4.9 na ClutchOpinie →Clutch ↗ (otwiera się w nowej karcie)
Blog
PLUmów bezpłatną konsultację
Co robimy+−

01 · Twoja aplikacja

Aplikacje mobilne

  • Rozwój lub przejęcie aplikacji
  • Aplikacje lojalnościowe
  • Audyt kodu aplikacji mobilnej
  • Utrzymanie aplikacji i wydania

02 · Twój sklep

Sklepy internetowe

  • Rozwój sklepu internetowego
  • Analityka aplikacji sklepu
  • Plan i prototyp przed budową

03 · Systemy za nimi

Integracje

  • ERP, magazyn i płatności
  • AI dla jednego ręcznego procesu
  • Warsztaty i wycena

Przed rozmową

  • Wycena aplikacjiZakres i widełki budżetu
  • Doradca wyboru platformy sklepuDecyzje, ryzyka i opcje
  • Koszt sklepu w 5 latGotowa platforma czy własna, porównanie
Wszystkie usługi →
Projekty+−
  • SFD100 000+ pobrań · ocena 4,9 w App Store
  • Mój Świat Książki100 000+ pobrań
  • EMKA5000+ pobrań w pierwszym miesiącu
  • Wszystkie 120+ projektów →
  • Biblioteka pomysłów na aplikacje
Firma+−
  • O nasKim jesteśmy i jak pracujemy
  • KarieraJak pracujemy i otwarte rekrutacje
  • Kontakt[email protected]
  • TechnologieReact Native, MedusaJS, Node.js i reszta
  • Opinie5.0 w Google
Blog→
Umów bezpłatną konsultację

5.0 w Google · 4.9 na Clutch

Wróć do bloga
Aplikacje mobilne
Opublikowano: 12 listopada 2026
9 min czytania

Jak testować aplikację React Native w Maestro i kiedy wybrać go zamiast Detox?

Testy E2E aplikacji React Native w Maestro: jak działa narzędzie, czym różni się od Detox, jak przygotować testID, które ścieżki testować najpierw, jak obsłużyć dane testowe, oczekiwanie na ekran i uruchamianie w CI.

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

W skrócie

Maestro testuje aplikację React Native z zewnątrz, jak użytkownik: klika, wpisuje tekst i sprawdza, co widać na ekranie. Testy zapisuje się w plikach YAML, nie trzeba instalować pakietów w aplikacji ani kompilować testów. Elementy najlepiej wskazywać przez testID, który Maestro traktuje jako identyfikator. Detox działa inaczej: testy pisze się w JavaScript, a narzędzie synchronizuje się z operacjami asynchronicznymi w aplikacji. Maestro uruchomisz na emulatorach i telefonach z Androidem oraz na symulatorach iOS. Zacznij od kilku ścieżek, od których zależy przychód, i stałych danych testowych.

Maestro testuje aplikację React Native z zewnątrz, jak użytkownik: klika, wpisuje tekst i sprawdza, co widać na ekranie. Testy zapisuje się w plikach YAML, nie trzeba instalować pakietów w aplikacji ani kompilować testów. Elementy najlepiej wskazywać przez testID, który Maestro traktuje jako identyfikator. Detox działa inaczej: testy pisze się w JavaScript, a narzędzie synchronizuje się z operacjami asynchronicznymi w aplikacji. Maestro uruchomisz na emulatorach i telefonach z Androidem oraz na symulatorach iOS. Zacznij od kilku ścieżek, od których zależy przychód, i stałych danych testowych.

Krótka odpowiedź

Źródła sprawdzone 12 listopada 2026.

Ten poradnik jest dla osoby, która odpowiada za jakość firmowej aplikacji w React Native i chce dodać automatyczne testy E2E albo wybiera między Maestro a Detox. Opisuje przygotowanie aplikacji, pierwsze przepływy, dane testowe i uruchamianie w CI.

Odpowiedź w skrócie: Maestro pozwala szybko opisać ścieżki użytkownika bez zmian w kodzie aplikacji poza testID. Ograniczenia: dokumentacja Maestro wymienia na iOS tylko symulatory, więc nie zakładaj testów na fizycznych iPhone'ach, a narzędzie nie widzi stanu wewnątrz aplikacji. Zanim napiszesz dziesiątki testów, sprawdź na dwóch lub trzech przepływach, czy działają stabilnie w Twoim CI.

1. Jak działa Maestro

Według dokumentacji Maestro narzędzie traktuje aplikację jak czarną skrzynkę i symuluje działania użytkownika na ekranie. Testy są deklaratywne, zapisane w YAML, i uruchamiają się bez kompilacji.

Maestro samodzielnie czeka na załadowanie treści i zakończenie animacji, więc w testach nie trzeba wstawiać ręcznych pauz. Może też wychodzić poza aplikację, na przykład do ustawień systemu albo powiadomień.

Testy można pisać w edytorze albo w aplikacji Maestro Studio, która pozwala tworzyć je wizualnie na podłączonym urządzeniu.

2. Maestro czy Detox

Oba narzędzia testują aplikację React Native na urządzeniu lub symulatorze, ale różnią się podejściem. Porównanie na podstawie dokumentacji obu projektów:

2. Maestro czy Detox
CechaMaestroDetox
Język testówYAML (z opcjonalnym JavaScript)JavaScript
Zmiany w aplikacjiBrak pakietów w aplikacji; testID na elementachPakiet Detox i konfiguracja buildów testowych
PodejścieCzarna skrzynka, działania jak użytkownikaGray box, synchronizacja z operacjami w aplikacji
Inne technologieTakże aplikacje natywne i FlutterAplikacje React Native
Fizyczne urządzenia iOSDokumentacja wymienia tylko symulatoryJeszcze nieobsługiwane

Detox opisuje się jako framework testów typu gray box dla React Native: testy pisze się w JavaScript, a Detox monitoruje operacje asynchroniczne w aplikacji, aby ograniczyć niestabilność. Testy na fizycznych urządzeniach z iOS nie są w nim jeszcze obsługiwane.

Wybór zależy od zespołu i aplikacji. Maestro ułatwia start osobom, które nie piszą kodu na co dzień. Detox daje programistom testy w tym samym języku co aplikacja i ściślejszą synchronizację z jej stanem.

3. Przygotowanie aplikacji: testID

Maestro potrafi wskazać element po widocznym tekście, ale taki test psuje się po zmianie etykiety albo tłumaczenia.

Strona Maestro o React Native zaleca właściwość testID, którą Maestro mapuje na unikalny identyfikator elementu. W teście odwołujesz się wtedy do identyfikatora, a nie do tekstu, więc test działa także w innych wersjach językowych.

Ustal konwencję nazw (na przykład ekran_element) i dodawaj testID do przycisków, pól formularzy i elementów, które test ma sprawdzić. W Expo Go aplikację otwiera się przez link (openLink), a nie przez launchApp z własnym identyfikatorem aplikacji, dlatego do testów w CI lepiej użyć samodzielnego buildu, w którym działa zwykłe launchApp.

4. Pierwszy przepływ: logowanie

Przykład hipotetyczny: test logowania w aplikacji sklepu. Każdy krok to jedna komenda w pliku YAML:

Taki przepływ jest krótki, ale sprawdza kilka warstw naraz: ekran, walidację formularza, połączenie z backendem i przejście do kolejnego widoku. Dlatego dobrze nadaje się na pierwszy test w CI.

  1. launchApp: uruchom aplikację.
  2. tapOn z identyfikatorem pola e-mail, potem inputText z adresem konta testowego.
  3. tapOn z identyfikatorem pola hasła i inputText z hasłem konta testowego.
  4. tapOn z identyfikatorem przycisku logowania.
  5. assertVisible z identyfikatorem elementu ekranu głównego.

5. Które ścieżki testować najpierw

Testy E2E są wolniejsze i droższe w utrzymaniu niż testy jednostkowe, więc zacznij od ścieżek, których awaria kosztuje najwięcej:

  • Logowanie i rejestracja, także odzyskiwanie hasła.
  • Zakup lub zamówienie: koszyk, dostawa, płatność w środowisku testowym operatora.
  • Uprawnienia systemowe: zgoda na powiadomienia, lokalizację lub aparat.
  • Pierwsze uruchomienie: onboarding i ekrany zgód.
  • Funkcja, dla której klienci pobierają aplikację, na przykład karta lojalnościowa albo historia zamówień.

Jeśli firma ma także sklep internetowy, ścieżkę zakupu w przeglądarce warto testować osobnym narzędziem. Opisujemy to w poradniku o testach E2E sklepu w Playwright.

6. Dane testowe i środowisko

Niestabilne testy E2E wynikają nie tylko z narzędzia, ale też z danych. Test, który loguje się na konto z innym stanem koszyka przy każdym uruchomieniu, raz przejdzie, a raz nie.

Przygotuj osobne środowisko backendu z kontami testowymi, stałymi produktami i trybem testowym operatora płatności. Każdy test powinien zaczynać się od znanego stanu aplikacji i nie zależeć od wyniku innego testu.

Danych dostępowych nie zapisuj w plikach YAML w repozytorium. Przekazuj je jako zmienne środowiskowe z sekretów systemu CI.

7. Oczekiwanie na ekran i niestabilność

Domyślne oczekiwanie Maestro wystarcza dla ekranów, które ładują się w kilka sekund. Dla dłuższych operacji dokumentacja przewiduje osobne komendy.

Według opisu komend oczekiwania w Maestro extendedWaitUntil służy do wolnych odpowiedzi sieci, na przykład przetwarzania płatności, a waitForAnimationToEnd do elementów, które są widoczne, ale jeszcze się przesuwają. Dokumentacja odradza ustawianie długiego limitu czasu dla każdego kroku, bo ukrywa to spadki wydajności.

Jeśli test raz przechodzi, a raz nie, nie zwiększaj od razu limitów czasu. Sprawdź najpierw dane testowe, animacje i to, czy test nie zależy od kolejności wykonania.

8. Uruchamianie w CI i na urządzeniach

Przed wyborem infrastruktury sprawdź, gdzie Maestro może działać. Lista obsługiwanych platform Maestro podaje pełne wsparcie dla emulatorów i fizycznych urządzeń z Androidem oraz dla symulatorów iOS.

Testy na iOS w CI wymagają więc maszyny z macOS i symulatorem. Alternatywą jest chmura Maestro, do której wysyła się build aplikacji i pliki testów.

Na początek wystarczy uruchamiać kilka kluczowych przepływów przy każdej zmianie w głównej gałęzi, a pełny zestaw przed wydaniem do sklepu. Wyniki, zrzuty ekranu i nagrania z nieudanych testów zapisuj jako artefakty CI, żeby zespół mógł ocenić błąd bez ponownego uruchamiania.

Najczęstsze pytania

Czy Maestro wymaga zmian w kodzie aplikacji React Native?
Nie wymaga instalowania pakietów w aplikacji, bo testuje gotowy build. Zalecane jest natomiast dodanie testID do elementów, które testy mają wskazywać, żeby testy nie zależały od tekstów na ekranie.
Czy Maestro przetestuje aplikację na fizycznym iPhonie?
Według listy obsługiwanych platform Maestro na iOS działa z symulatorami. Na Androidzie obsługuje zarówno emulatory, jak i fizyczne urządzenia. Jeśli testy na fizycznym iPhonie są wymagane, trzeba je zaplanować innym narzędziem albo ręcznie.
Czy można używać Maestro i Detox w jednym projekcie?
Technicznie tak, bo Maestro nie wymaga pakietów w aplikacji. Utrzymywanie dwóch zestawów testów E2E zwiększa jednak koszt utrzymania, dlatego warto ustalić, które ścieżki testuje które narzędzie, albo wybrać jedno.
Kto powinien pisać testy w Maestro?
Format YAML pozwala pisać testy także testerom bez głębokiej znajomości programowania. Programiści są jednak potrzebni do dodania testID, przygotowania danych testowych i podłączenia testów do CI, więc odpowiedzialność warto podzielić między obie role.

Opisz swoją aplikację i obecne testy

Opisz swoją aplikację i obecne testy.

Treść zaktualizowano: 12 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

Aplikacje mobilne

Aktualizacja React Native i przejście na New Architecture: plan krok po kroku

Plan aktualizacji aplikacji React Native: dlaczego wersja 0.82 i Expo SDK 55 działają tylko na New Architecture, jak zrobić inwentaryzację bibliotek, którą ścieżką wersji iść, jak testować i od czego zależy czas prac.

→
Aplikacje mobilne

Wdrożenie aplikacji lojalnościowej w sieci sklepów: etapy, POS i CRM

Wdrożenie aplikacji lojalnościowej krok po kroku: reguły programu, identyfikacja klienta przy kasie, integracja z POS, CRM i zgody, saldo punktów jako księga operacji, etapy od pilota do całej sieci i czynniki kosztu.

→

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
TechnologieReact NativeExpoNext.jsReactTypeScriptMedusaJSKonfiguratory 3DNode.jsNestJSPostgreSQLDockerAWSPlaywrightMaestro
© 2026 gmi.software Sp. z o.o.
Polityka prywatnościRegulamin