Twoje testy nadal korzystają z Playwright, Selenium i pytest. Nie zastępujemy ich. Przygotowujemy je do wymagań dużych organizacji, a wszystko pozostaje Twoją własnością: kod, dowody i historia.
Jeden nieudany test. Wszystko, co pozostawił na Twoim dysku.
Rzeczywiste uruchomienie, nie makieta: TC92 z 2026-09-30, bez interfejsu graficznego, w Chromium, Firefox i WebKit. Otwiera example.com, przechodzi przez link Learn more do IANA i oczekuje nagłówka Example Domain. Na stronie widnieje Example Domains. Oto pliki z uruchomienia w Chromium, ich rzeczywiste rozmiary i zawartość każdego z nich.
w folderze uruchomienia oraz jeden wiersz w Historii
531.2 kB
cały folder, łącznie z nagraniem
32 pola
w metadata.json, do odczytu maszynowego
9 sekcji
w report.md, raporcie analitycznym
Co pozostawia po sobie jedna awaria
Co przechowuje Evidence Locker, gdy test się nie powiedzie?
Nieudany test tworzy folder z raportem diagnostycznym, metadanymi, surowym dziennikiem i zrzutem ekranu z chwili niepowodzenia, a w przypadku rzeczywistej awarii także nagraniem wideo. Wiersz 23 pliku TC92_Iana_heading.js oczekuje nagłówka Example Domain. Na stronie IANA widnieje Example Domains: w ciągu 10000 ms lokalizator 23 razy znalazł element i za każdym razem odczytał liczbę mnogą. BREACHED, we wszystkich trzech silnikach. Oto klatka z chwili niepowodzenia oraz wszystkie zapisane pliki.
https://www.iana.org/help/example-domains
screenshot.png · 89.8 kB · jeden zrzut widocznego obszaru strony z ostatniej klatki, 1280×720: to, co zobaczyłby użytkownik w chwili wykonania sprawdzenia
W Evidence Locker ten sam zapis otwiera się na pięciu kartach:
ReportMetadataTelemetryRaw LogAI Analysis
report.md5.3 kB
Raport analityczny w formacie Markdown: można go przeczytać bez Studio.
Incident summary
Root cause analysis
Network telemetry
Failure timeline
Historical stability
Self-healing log
Evidence artifacts
Performance budget
Lazy-loading audit
Użyj go, aby zgłosić błąd: Podsumowanie incydentu wskazuje test, przeglądarkę, stronę i wpływ na działalność, a Analiza przyczyny źródłowej — nieudane sprawdzenie, selektor, wartości oczekiwane i otrzymane oraz wiersz kodu źródłowego.
metadata.json2.2 kB
32 pola, do odczytu maszynowego. Kilka z nich, w oryginalnym zapisie:
Użyj go, aby filtrować niepowodzenia skryptem zamiast parserem Markdown. To również plik zabezpieczany w ramach łańcucha nadzoru nad dowodami: folder zawierający metadata.json jest rekordem.
raw-data.json5.1 kB
Surowy dziennik: każdy wiersz konsoli, błąd sieci, problem z bezpieczeństwem i błąd strony z tego uruchomienia oraz próbki wydajności.
Użyj go, aby zobaczyć, co działo się na stronie tuż przed niepowodzeniem i po nim. Test zaliczony z werdyktem FLAKY lub AUTO_RECOVER zachowuje plik raw-data.json z nieudanej próby, więc nawet gdy ponowienie ukryje niepowodzenie, jego dziennik pozostaje.
Telemetryzmierzono
Zmierzone na końcu testu i porównane z Twoimi limitami. Pasek przedstawia wynik pomiaru względem limitu.
LCP992 / 2500 ms
FCP992 / 1800 ms
CLS0.0295 / 0.1
TTFB727 / 800 ms
TBT0 / 200 ms
DOM114 / 1500 nodes
Heap5 / 50 MB
INPnot measured
Wszystkie wartości mieszczą się w limitach, a raport oznacza TTFB jako bliskie limitowi. Przy INP widnieje nie zmierzono, nigdy wynik pozytywny: na mierzonej stronie niczego nie kliknięto ani nie wpisano. Audyt opóźnionego ładowania przyznał stronie 85 na 100 punktów, ocenę B: jeden obraz bez określonej szerokości i wysokości.
Użyj go, aby odróżnić powolne działanie strony od błędnej asercji.
video.webm428.8 kB
0:08 z 0:16
Cała sesja, 16.6 sekundy: example.com, kliknięcie Dowiedz się więcej, a potem strona IANA podczas ponawiania sprawdzenia. Nagranie zachowano, ponieważ przebieg miał status BREACHED; można je odtworzyć w Magazynie dowodów. Rzeczywiste niepowodzenie oznacza zachowanie nagrania: domyślnie dla BREACHED, BREACHED_FLAKY i CHAOS_BREACHED, a dla TIMEOUT i BLOCKED po włączeniu w Ustawieniach. CRASHED i UNREACHABLE nigdy nie są dostępne, ponieważ takie nagranie jest uszkodzone lub puste. Nagrywane są tylko przebiegi Playwright w przeglądarce i na emulowanych urządzeniach mobilnych: nie dotyczy to fizycznego telefonu z Androidem, przebiegu Selenium ani testu API.
Użyj go, aby zobaczyć krok po kroku, jak strona dotarła do nieudanego sprawdzenia; powyższy zrzut ekranu przedstawia ostatnią klatkę.
Analiza AItwoja AI
Domyślnie włączona, gdy twoja AI jest podłączona. Przy użyciu domyślnego lokalnego modelu Ollama lub innego wybranego dostawcy silnik dodaje do raportu cztery nagłówki: Diagnoza, Prawdopodobna przyczyna, Wpływ i Zalecane działanie. Jeśli w module piszącym AI włączysz własne narzędzie AI wiersza poleceń, zamiast tego odczyta ono report.md po przebiegu dla maksymalnie pięciu niepowodzeń na przebieg i doda piąty nagłówek:
Diagnosis
Klasyfikacja (tylko narzędzie wiersza poleceń)
Probable cause
Impact
Recommended action
Klasyfikacja to dokładnie jedna z wartości APP_BUG, APP_CHANGE, TEST_AUTHORSHIP, TEST_SETUP lub INFRA_FLAKY. Bez podłączonej AI: brak analizy, a pięć plików pozostaje bez zmian.
trace.zip to szósty plik. Gdy opcja Rejestruj ślad diagnostyczny przy niepowodzeniu jest włączona, co jest ustawieniem domyślnym, folder BREACHED zawiera też ślad Playwright (migawki DOM, zrzuty ekranu i źródła), otwierany poleceniem npx playwright show-trace trace.zip. Nie jest on rejestrowany na fizycznym telefonie z Androidem. TC92 uruchomiono, zanim rejestrowanie śladu stało się domyślne, więc jego folder zawiera pięć powyższych plików.
Co jest zapisywane przy jednym niepowodzeniu
TC91 w chromium, 2026-09-30 13:26 TIMEOUT
Rzeczywisty folder przebiegu odtworzonego w demonstracji na górze strony głównej, czyli testu celowo przygotowanego pod dawny tekst odnośnika w example.com, otwarty w Evidence Locker: bug-reports/chromium/TC91 - Example more info/2026-09-30_13-26 [TIMEOUT].
https://example.com/
screenshot.png · 12.6 kB · dokładny obraz w chwili niepowodzenia
report.md4.9 kBPodsumowanie incydentu, przyczyna źródłowa, telemetria sieciowa, oś czasu niepowodzenia, stabilność w ujęciu historycznym, dziennik samonaprawy, artefakty dowodowe, budżet wydajności i audyt opóźnionego ładowania.
metadata.json2.3 kB32 pola, w tym selektor, limit czasu 30000ms, stabilność CRITICAL, kolejne niepowodzenia, próba 2 z 2, tryb ukrycia i ocena opóźnionego ładowania (100, A).
raw-data.json4.2 kBSurowy dziennik: wpisy konsoli, błędy sieciowe, problemy z bezpieczeństwem (tutaj 2: brak CSP), błędy JS i metryki wydajności.
Telemetryw raporcieLCP 156 ms · FCP 156 ms · CLS 0.0018 · TTFB 122 ms · TBT 0 ms · 808 węzłów DOM · 2 MB sterty. INP nie zmierzono: brak zdarzeń do pomiaru.
video.webmrzeczywiste awarieNagrywane w przypadku rzeczywistej awarii. Przekroczenie czasu TIMEOUT takie jak to nie powoduje zapisania nagrania, ponieważ dla TIMEOUT nagrywanie jest domyślnie wyłączone, o czym informuje raport.
Analiza AItwoja AIPo podłączeniu Twojej AI dodaje do raportu diagnozę, prawdopodobną przyczynę, wpływ i zalecane działanie; za pośrednictwem Twojego narzędzia AI obsługiwanego z wiersza poleceń klasyfikuje też awarię.
Werdykty
Jakie jest 14 werdyktów i co robić dalej?
Każdy z 14 werdyktów wskazuje, kto powinien teraz działać: nikt, test, aplikacja, środowisko lub mechanizm testowy. Werdykt znajduje się w nazwie folderu: nazwa folderu TC92 kończy się na [BREACHED]. Klasyfikator analizuje niepowodzenie w ustalonej kolejności: najpierw mechanizm testowy, potem awarię, blokadę, nieosiągalny host i przekroczenie limitu czasu, a dopiero na końcu BREACHED_FLAKY lub BREACHED. Zatem BREACHED oznacza niepowodzenie, którego nie wyjaśnia żaden wzorzec problemów środowiskowych. Każda karta wskazuje, kto powinien teraz działać i co dokumentuje dany werdykt.
SECURENikt
Test przeszedł samodzielnie: bez ponownej próby i bez naprawy selektora. Nie wymaga działania. Zapis w evidence-passed-test, po 5 najnowszych dla każdego testu i przeglądarki.
screenshot.pngmetadata.json
CHAOS_RESILIENTNikt
Test przeszedł mimo wstrzykniętej usterki, więc aplikacja wytrzymała. Zapis w chaos-runs, oddzielnie od zgłoszeń błędów, dzięki czemu testy chaosu nigdy nie zniekształcają wskaźników stabilności.
Na zielono, ale nie bez pomocy: mechanizm samonaprawy zastąpił niedziałający selektor. Lokalizator w teście nie działa, a następna zmiana DOM naprawdę zepsuje zestaw testów. Popraw lokalizator. raw-data.json pojawia się, gdy konieczna była ponowna próba, i zawiera dane nieudanej próby.
screenshot.pngmetadata.jsonraw-data.json
FLAKYTest lub aplikacja
Test nie przeszedł, ale ponowna próba zakończyła się powodzeniem i niczego nie naprawiono. To niewyjaśniona niestabilność aplikacji lub testu, a nie naprawa. Przeczytaj raw-data.json z nieudanej próby, a następnie sprawdź trend w Historii.
screenshot.pngmetadata.jsonraw-data.json
PERFORMANCE_DEGRADEDApp
Asercje przeszły, ale strona działała zbyt wolno: przekroczono budżet Web Vitals lub leniwego ładowania. Ma charakter informacyjny, dopóki nie włączysz rygorystycznego sprawdzania.
screenshot.pngmetadata.json
A11Y_VIOLATIONApp
Asercje przeszły, ale kontrola dostępności nie. metadata.json wymienia każdą naruszoną regułę axe-core wraz z jej wpływem i liczbą węzłów. Ma charakter informacyjny, dopóki nie włączysz rygorystycznego sprawdzania.
screenshot.pngmetadata.json
SECURITY_VIOLATIONApp
Asercje przeszły, ale kontrola nagłówków bezpieczeństwa nie (na przykład z powodu braku CSP). Popraw nagłówki odpowiedzi. Ma charakter informacyjny, dopóki nie włączysz rygorystycznego sprawdzania.
screenshot.pngmetadata.json
BREACHEDApp
Asercja nie przeszła i żaden wzorzec związany ze środowiskiem ani mechanizmem testowym nie wyjaśnia błędu. Przeczytaj Oczekiwane i Otrzymane w report.md, obejrzyj nagranie, a następnie oznacz jako Rzeczywisty błąd lub Fałszywy alarm, podając powód.
Test nie przeszedł w ostatniej próbie po wcześniejszym ponowieniu: samo niepowodzenie jest nieregularne. Porównaj próby, zanim zgłosisz błąd. Nagranie jest domyślnie zachowywane.
Test nie przeszedł przy wstrzykniętej usterce. To ustalenie dotyczące odporności, przechowywane oddzielnie od zgłoszeń błędów funkcjonalnych; raport opisuje zastosowaną usterkę i jej wpływ na użytkownika. Zasady przechowywania nigdy nie usuwają przebiegu zakończonego niepowodzeniem. Nagranie jest domyślnie zachowywane.
Brak odpowiedzi w wyznaczonym czasie nie dowodzi, że aplikacja nie działa. Zanim zmienisz ustawienia, sprawdź szybkość strony w Telemetrii: dłuższy limit nie ukrywa niedziałającego elementu, tylko opóźnia niepowodzenie. Nagrywanie jest domyślnie wyłączone; włącz je w Ustawieniach, w sekcji Zachowuj nagranie niepowodzenia dla.
Nie udało się w ogóle połączyć z hostem: wystąpił błąd DNS lub połączenia, zanim zaobserwowano jakąkolwiek stronę. Sprawdź adres URL, sieć i dostępność celu. To nie jest ustalenie dotyczące aplikacji. Żadna strona się nie załadowała, więc nagranie byłoby puste i nie jest udostępniane.
Witryna się obroniła: kod 403, 429, strona blokady lub weryfikacja antybotowa. metadata.json podaje rodzaj zabezpieczenia, jeśli było widoczne na ekranie. To nie jest ustalenie dotyczące aplikacji, a Jira nigdy nie zgłasza blokady. Nagrywanie jest domyślnie wyłączone; włącz je w Ustawieniach, w sekcji Zachowuj nagranie niepowodzenia dla.
Przeglądarka lub proces przestały działać: zamknięta strona, błąd protokołu DevTools, nieaktywna sesja WebDriver. To infrastruktura, nie aplikacja. Sprawdź maszynę i sterownik. Nagranie niedziałającej przeglądarki jest uszkodzone, więc nie jest udostępniane.
Poza listą 14 werdyktów: CONFIG_ERROR (mechanizm testowy nie mógł uruchomić testu: błędny import, brakująca wartość .env), SKIPPED i INTERRUPTED. Żaden z nich nie jest wynikiem dotyczącym aplikacji, więc żaden nie tworzy folderu z dowodami ani wiersza w Historii. CONFIG_ERROR jest mimo to zapisywany w całości, ze wskazówką, w dzienniku w .run-cache/config-errors/, aby można było naprawić niedziałający test. Testy API mają siedem własnych werdyktów: Testy API.
History
Co Historia zapisuje dla każdego uruchomienia?
Oprócz utworzenia folderu każdy przebieg dopisuje wiersz do history/<browser>/<test>/runs.json: domyślnie przechowywanych jest ostatnich 50 przebiegów każdego testu w każdej przeglądarce. Oto trzy wiersze TC92, po jednym na przeglądarkę, w zapisanej postaci. Ta sama wartość error_signature we wszystkich trzech oznacza jeden błąd, a nie trzy.
Wartość, której przeglądarka nie może zmierzyć, jest zapisywana jako null, nigdy jako zero: WebKit nie zgłasza tutaj TTFB. Czasy w wierszach są podane w UTC, zgodnie z zapisem; nazwy folderów używają lokalnego czasu komputera, w tym przypadku UTC−5.
perf zawiera LCP, FCP, CLS, TTFB, TBT, INP, długie zadania, rozmiar DOM, stertę pamięci, każdą odwiedzoną stronę i ocenę leniwego ładowania. raw_log_ref i evidence_ref wskazują na powyższy folder.
Co silnik wypisuje na tej podstawie
TC92 chromium BREACHED 13.7s
expect(locator).toHaveText(expected) failed
at TC92_Iana_heading.js:23 waiting for getByRole('heading', { level: 1 })
stability CRITICAL 0% · 0/1 runs · 1 failed in a row
# TC91, zaaranżowana demonstracja na stronie głównej: BREACHED, a potem TIMEOUT
stability CRITICAL 0% · 0/2 runs · 2 failed in a row
Wartość duration_ms w wierszu, 12291, to czas samego testu zmierzony przez Playwright podczas drugiej z dwóch prób.
Te same wiersze zasilają sekcję raportu Stabilność w czasie, trendy na ekranie Historia (Pogorszenie, Poprawa, Nadal nie działa, Wolniej) oraz ranking ryzyka, w którym nic nie jest określane jako niestabilne przed upływem pięciu przebiegów.
Ile materiałów dowodowych przechowuje Nexus Studio i jak długo?
Po pomyślnym teście zachowywany jest zrzut ekranu wraz z metadanymi, a po niepowodzeniu — wszystko, co jest potrzebne do jego odtworzenia. Najstarsze pliki są usuwane jako pierwsze. Zestaw testów uruchamiany co noc zapełnia dysk. Silnik ogranicza rozmiar każdego zapisywanego folderu, osobno dla każdego testu i przeglądarki, a wszystkie materiały dowodowe obejmuje jednym limitem, domyślnie 20 GB, zachowując przy tym 10 GB wolnego miejsca na dysku. Dzięki temu zajęte miejsce nie przekracza wybranego rozmiaru. W razie niepowodzenia nadal zachowywane jest wszystko, co potrzebne do jego odtworzenia: błąd wraz z selektorem i wartościami, adres URL strony, ramka, wpisy konsoli, sieci i błędów strony, środowisko wykonawcze i platforma oraz kontekst uruchomienia, czyli punkt odniesienia dla pomiarów. Limity rozmiaru i łączny limit ustawia się w Ustawieniach, w sekcji Materiały dowodowe & przechowywanie.
Cały powyższy folder: 531.2 kB dla TC92 w Chromium, z czego 428.8 kB zajmuje nagranie. Gdy rejestrowanie śladu jest włączone, dochodzi jeszcze trace.zip.
Te same pliki bez nagrania, ponieważ nagrywanie dla TIMEOUT jest domyślnie wyłączone: 23.9 kB dla TIMEOUT w TC91, zaaranżowanej demonstracji na stronie głównej.
Wynik pozytywny
screenshot.pngmetadata.json
Zapis oddzielnie od zgłoszeń błędów, po 5 najnowszych dla każdego testu i przeglądarki. Zrzut ekranu służy do porównań w testach regresji wizualnej. Test zakończony powodzeniem z werdyktem FLAKY lub AUTO_RECOVER również zachowuje swój folder wraz z raw-data.json z nieudanej próby, gdy opcja Zachowuj dowody testu zakończonego powodzeniem z werdyktem FLAKY / AUTO_RECOVER jest włączona.
Te trzy wiersze pojawiły się po uruchomieniu TC92. Tymczasowe pliki telemetrii z uruchomienia nigdy nie są dowodami: trafiają do archiwum zip, luźne kopie są usuwane, a pozostają najwyżej 2 archiwa zip nie starsze niż 7 dni, łącznie do 500 MB. Te trzy limity to NEXUS_CACHE_ZIPS, NEXUS_CACHE_RETENTION_DAYS i NEXUS_CACHE_MAX_MB w .env, a nie pola w Ustawieniach.
W Ustawieniach opcja Wyczyść pamięć podręczną usuwa foldery test-results i playwright-report z obszaru roboczego oraz zamyka przeglądarki pozostawione przez przebieg zakończony awarią lub przymusowo przerwany. Nie można jej użyć podczas działania patrolu.
Obszar roboczy · Dysk · aktualny limit każdego folderu
area limit today
Bug reports newest 20 runs per test and browser
Passed tests newest 5 runs per test and browser
API evidence newest 20 passing runs per test; failures kept
Chaos runs newest 20 held runs; runs that broke kept
Smart Monkey newest 10 sessions
Visual regressions newest 10 per test and checkpoint
Run context newest 100 runs
Run history newest 50 runs per test and browser
Chain of custody append-only, never trimmed
Archive no automatic limit
Panel Dysk zawiera listę wszystkich folderów, do których zapisywane są dane podczas uruchomienia, od największego, wraz z rozmiarem, liczbą plików i najstarszą datą, a także łączny rozmiar i wolne miejsce na dysku. Foldery bez automatycznego limitu są oznaczone. Opcja Wyczyść jest dostępna tylko tam, gdzie jest to bezpieczne: dla pamięci podręcznej uruchomień, wersji plików testowych starszych niż 14 dni i raportów zarządczych starszych niż 30 dni. Nigdy nie narusza dowodów ani archiwum.
Oprócz limitów liczby uruchomień wszystkie dowody mają wspólny limit miejsca, domyślnie 20 GB, a na dysku pozostaje 10 GB wolnego miejsca. Po każdym uruchomieniu silnik sprawdza oba warunki i w razie naruszenia któregokolwiek usuwa najstarsze uruchomienia, udane przed nieudanymi, aż oba warunki zostaną spełnione; najnowsze uruchomienie każdego testu w każdej przeglądarce zawsze pozostaje. Panel pokazuje rozmiar dowodów względem limitu, wolne miejsce względem progu oraz ilość miejsca zwolnionego podczas ostatniej kontroli, a także opcję Uruchom konserwację teraz.
Magazyn dowodów · zachowaj to, co ważne, zwolnij resztę
Archiwizuj… kopiuje dokładnie te elementy, które zaznaczysz, do Widok → Archiwum. Domyślnie zaznaczone są Zrzut ekranu i Raport. Kopia znajduje się obok folderu dowodów, a nie wewnątrz niego, więc nie obejmuje jej żadne czyszczenie zgodne z zasadami retencji, a uruchomienie w Magazynie pozostaje nienaruszone.
Przywróć na ekranie Archiwum umieszcza rekord z powrotem w pierwotnym miejscu i ponownie uwzględnia go w zliczaniu. Jeśli jego folder usunięto w celu zwolnienia miejsca, zarchiwizowane elementy są zapisywane z powrotem w Magazynie dowodów. Werdykt Fałszywy alarm nadal wyklucza go ze zliczania.
Zwolnij miejsce na dysku przenosi folder do kosza. Jeśli rekord jest zapieczętowany, silnik najpierw zapisuje informację o usunięciu, dzięki czemu nexus verify zgłasza PURGED, a nie TAMPERED. Mechanizm retencji robi to samo podczas usuwania najstarszego folderu, a rejestr nadal poświadcza wartość skrótu folderu oraz to, kto i kiedy go usunął. Pieczętowanie jest opcjonalne: do pierwszego werdyktu Rzeczywisty błąd lub Fałszywy alarm albo wykonania polecenia nexus verify --seal Magazyn wyświetla UNVERIFIED.
Zobacz, co pozostaje po niepowodzeniach twoich testów.
Bezpłatnie przez 30 dni, ze wszystkimi funkcjami, na Twoich komputerach. Bez karty płatniczej.