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.

Każdy ekran Studio i jego funkcje.

Na tych ekranach tworzy się, uruchamia, planuje i ocenia testy. Wiersz poleceń pozostaje do obsługi potoków.

Czy testy są standardowym kodem Playwright, Selenium i pytest?

Jak wyglądają pliki

Tak. Każdy test tworzony lub importowany przez Studio to kod platformy testowej, którą Twój zespół już zna. Silnik uzupełnia go o materiały dowodowe, telemetrię, werdykty i samonaprawę; nie zastępuje go.

  • Playwright, JavaScript i TypeScript: plik Playwright Test. Import na początku pochodzi ze Studio i dostarcza fixturę; treść to page, lokalizatory i expect.
  • Playwright, Python: zwykły pytest-playwright, funkcja test_ przyjmująca page. Do uruchomienia wystarczy sam pytest.
  • Selenium, Python: pytest z fixturą driver. Plik conftest.py w obszarze roboczym korzysta ze zwykłego WebDrivera, gdy test nie jest uruchamiany przez silnik.
  • Selenium, JavaScript: kod selenium-webdriver wewnątrz run({ driver, By, until }). Moduł uruchamiający Studio tworzy sterownik i kończy jego działanie.
  • Selenium, Java: JUnit 5, @ExtendWith(NexusExtension.class), parametr WebDriver przekazywany przez rozszerzenie. Budowanie za pomocą Maven.
  • Selenium i Playwright, C#: NUnit, klasa rozszerzająca NexusSeleniumTest lub NexusPageTest. Budowanie za pomocą .NET.
  • Testy API używają własnego formatu JavaScript opracowanego dla Studio.

Jak zrezygnować

Twoje testy, dowody i historia to pliki w Twoim obszarze roboczym. Aby uruchomić zestaw testów bez Nexus: testy w Pythonie działają bez zmian, importy w testach Playwright w JavaScript należy skierować z powrotem do @playwright/test (ewentualny wizualny punkt kontrolny wymaga zastąpienia), a do funkcji run() w testach Selenium w JavaScript trzeba dodać kilka wierszy uruchamiających sterownik. Testy API wymagałyby przepisania na potrzeby innego modułu uruchamiającego.

Utwórz

Patrol

Miejsce do pisania, uruchamiania i planowania testów. Drzewo pokazuje każdy test z logo każdej przeglądarki, w kolorze odpowiadającym jego stanowi, a pasek uruchomienia nad edytorem opisuje słownie, co robi każda przeglądarka.

  • Pięć kart: Przypadki testowe, Uruchom Patrol, Nexus Recorder, Generator testów AI i Test Adapter.
  • Środowiska docelowe: Zestaw przeglądarek komputerowych (Chromium, Firefox i WebKit), Emulowane urządzenie mobilne, Rzeczywiste urządzenie (fizyczny telefon z Androidem) lub Komputer + rzeczywiste urządzenie do jednoczesnego testowania na komputerze i telefonie z Androidem, z dowodami przypisanymi do każdej tożsamości.
  • Domyślnie jedna przeglądarka po drugiej, a po zmianie ustawień nawet trzy naraz i kilka testów jednocześnie. Selenium działa w Chromium i Firefox.
  • Nowe testy przechodzą próbę w piaskownicy, która nie zapisuje historii, zanim ich uruchomienia zaczną być uwzględniane.
  • Flagi funkcji: każda flaga jest testowana jako włączona, wyłączona lub w obu stanach, przekazywana przez plik cookie, nagłówek, pamięć lokalną lub ciąg zapytania, a karta wskazuje kombinację, przy której test kończy się niepowodzeniem.

AI writer

Pisze test na podstawie Twojego opisu, korzystając z wybranej przez Ciebie AI: Twojego narzędzia AI w wierszu poleceń (Claude Code, Codex lub opencode) albo API, lokalnego modelu Ollama, Anthropic lub OpenAI. Tworzy testy Playwright w JavaScript, TypeScript, Pythonie lub C# oraz Selenium w JavaScript, Pythonie, Javie lub C#.

  • Trzy sposoby pracy: Rozmowa z moją AI, Krok po kroku (planowanie przypadków i pisanie wybranych) lub Użyj mojego agenta, czyli instrukcje dla agenta w Twoim terminalu.
  • Może odczytać do czterech stron Twojej aplikacji, tylko do odczytu i bez logowania, aby test odwoływał się do rzeczywistych elementów.
  • Narzędzie wiersza poleceń działa bez dostępu do narzędzi w pustym folderze lub we własnej piaskownicy tylko do odczytu, a każdą lokalizację docelową najpierw zatwierdzasz.
  • Każdy test przechodzi Vet, siedem kontroli bez AI: ma identyfikator testu, jest poprawny składniowo, używa fixtury Studio, nie sięga poza stronę, zawiera asercje, które mogą się nie powieść, nie zawiera stałych opóźnień, wymuszonych kliknięć ani atrap, a także nie używa niestabilnych lokalizatorów.
  • Wypróbuj uruchamia test dwukrotnie w Chromium jako wersję roboczą, bez zapisywania dowodów ani historii. Przycisk Zaakceptuj pozostaje nieaktywny, dopóki nie otworzysz kodu.

Twoja AI, przez jej własny wiersz poleceń

  • Claude Code
  • Codex
  • opencode

Generator testów uruchamia narzędzie wiersza poleceń, w którym masz już aktywną sesję na tym komputerze, więc nie musisz wklejać klucza API do Studio. Nadal obowiązuje Twój plan w tym narzędziu. Alternatywą jest klucz API dostawcy lub lokalny model Ollama.

Jak Studio uruchamia Claude Code, argument po argumencie:

claude -p --output-format json --tools "" --disable-slash-commands

--strict-mcp-config --setting-sources "" --no-session-persistence

--permission-mode dontAsk --max-budget-usd 1

Polecenie jest przekazywane przez stdin. Bez narzędzi, serwerów MCP, własnych ustawień czy skryptów wykonywanych automatycznie, bez zapisywania sesji, z limitem wydatków na każde wywołanie: domyślnie jeden dolar amerykański.

Nexus Recorder

Zapisuje to, co robisz w przeglądarce, jako kod testów. Bez udziału AI: zapisuje dokładnie to, co klikasz.

  • Nagrywaj dla Komputera, Emulowanego urządzenia mobilnego lub Rzeczywistego urządzenia: telefonu z Androidem podłączonego przez USB, sterując uruchomioną na nim przeglądarką Chrome. Na razie tylko JavaScript i Python; w językach Java i C# nagrywanie działa na komputerze.
  • Tworzy kod Playwright w językach JavaScript, TypeScript, Python lub C# albo Selenium w językach JavaScript, Python, Java lub C#.
  • Lub zapisuje wywołania API wykonywane przez stronę jako testy REST lub GraphQL, bez nagłówków uwierzytelniania i plików cookie, a pola wyglądające na poufne dane zamienia w zmienne środowiskowe.
  • Mapy selektorów skanują stronę bez AI, nadają każdemu selektorowi ocenę WYSOKĄ, ŚREDNIĄ lub NISKĄ i przechowują mapę na Twoim dysku.

Test Adapter

Przenosi istniejące testy Twojego zespołu do Studio, bez ręcznego przepisywania.

  • Wklej test, upuść plik lub wskaż folder: Playwright lub Selenium w JavaScript, TypeScript lub Python, z użyciem Playwright Test, mocha, jest, pytest lub unittest.
  • Przepisuje według reguł, a nie za pomocą AI: uruchamianie i konfiguracja przeglądarki trafiają do mechanizmu przygotowania testów w Studio, a asercje, warunki, pętle i oczekiwania pozostają bez zmian.
  • Pokazuje różnice obok siebie oraz liczbę asercji przed zmianą i po niej. Utrata asercji blokuje import, chyba że ją zaakceptujesz, wiersz po wierszu.
  • Opcjonalna AI zajmuje się tylko tym, czego nie obejmują reguły, a jej kod przechodzi rygorystyczną weryfikację Vet. Zachowane testy są próbnie uruchamiane w piaskownicy aż do trzech przebiegów bez błędów.
  • Cypress, WebdriverIO, Robot Framework, Java i C# nie są obsługiwane.

Naprawa wiersza i samonaprawa

Co się dzieje, gdy lokalizator przestaje działać. Nic nie jest naprawiane za Twoimi plecami.

  • Samonaprawa, domyślnie w trybie Sugeruj: po niepowodzeniu przeglądarka działająca w tle odtwarza test do wiersza z błędem i odczytuje stronę, przygotowując propozycje zamienników. Bez AI, a test pozostaje czerwony.
  • Napraw wiersz, na marginesie danego wiersza: nagraj ponownie tylko ten krok lub zamień selektor, od najsilniejszych po XPath na końcu. Zmiana trafia do edytora bez zapisywania, a jej zapisanie oznacza Twoją zgodę.
  • Zapytaj moją AI, który wybrać może zmienić kolejność propozycji, ale nigdy nie dodaje nowych. Poprzednia wersja pliku pozostaje na jego osi czasu.
  • Kondycja lokalizatorów wyświetla słabe lokalizatory otwartego testu i naprawia je w ten sam sposób.

Uruchom

Devices & Mobile

Fizyczne telefony z Androidem, podłączone przez USB do komputera, na którym działa silnik. Bez farmy urządzeń i kupowania minut.

  • Kilka telefonów jednocześnie, przez adb i Chrome DevTools Protocol, z instrukcją podłączenia pierwszego.
  • Podgląd ekranu wyświetla ekran telefonu na Twoim komputerze: tutaj umożliwia sterowanie, a po otwarciu z Patrol służy tylko do podglądu.
  • Emulacja urządzeń mobilnych z użyciem profili urządzeń Playwright: Chrome na Androidzie, iPhone lub iPad na WebKit, silniku Safari, oraz profil urządzenia o niskiej wydajności. Fizyczne urządzenia to wyłącznie telefony z Androidem: iPhone lub iPad jest emulowany, nigdy nie jest to fizyczne urządzenie Apple, więc klawiatura iOS i gesty systemowe nie są testowane.
  • Testy na telefonie są wykonywane pojedynczo, a uruchomienie na telefonie zawsze odbywa się na komputerze, do którego telefon jest podłączony.

Watch

W Patrol, w sekcji Uruchom patrol: automatycznie ponawia wybrane testy w ustalonych odstępach, bez nadzoru.

  • Powtarzaj w odstępach od 5 minut do 24 godzin lub Jednorazowo, w wybranym dniu. Kończy działanie po zatrzymaniu, po określonej liczbie uruchomień lub w wybranym dniu.
  • Działa jako osobny proces, więc zamknięcie Studio go nie zatrzymuje. Wymaga włączonego komputera: gdy komputer jest uśpiony, zaplanowane uruchomienia czekają lub są pomijane.
  • Powiadomienia w Telegram lub Slack tylko przy zmianie stanu, jako ALERT lub PRZYWRÓCONO.

CI/CD

Pozwala skonfigurować potok na ekranie zamiast w edytorze YAML.

  • Tworzy plik GitHub Actions lub GitLab CI: ustawienia przeglądarek, testów wizualnych, dostępności, chaosu, pętli i ponowień, a w GitHub także nocne testy regresji o określonej godzinie UTC z wybranymi testami.
  • Działa w środowisku wykonawczym w chmurze, na Twoim komputerze lub na Twoim komputerze z Docker, ze skryptem uruchomieniowym dla bash lub PowerShell.
  • Najpierw weryfikuje potok lokalnie, a następnie tworzy commit i wysyła zmiany z tego samego ekranu. Można tu inicjować zdalne uruchomienia i pobierać ich materiały dowodowe.
  • Można też uruchamiać ze skryptów w CI: nexus ci zwraca kod 0 po pomyślnym zakończeniu, 1 w razie niepowodzenia i 2, gdy nic nie uruchomiono, oraz zapisuje wyniki w formacie JUnit XML. Uruchamiaj testy z CI/CD

Docker i SSH

Studio to aplikacja komputerowa dla Windows 11, działająca na Twoim komputerze lub opcjonalnie na minikomputerze z Windows 11. Za jej pośrednictwem silnik uruchamia zestawy testów obszaru roboczego na tym komputerze, w Dockerze na tym komputerze lub przez SSH na innym komputerze. Samo Studio nigdy nie działa w Dockerze ani przez SSH.

  • W Docker zestaw testów działa w kontenerze wykonawczym na tym samym dysku, więc materiały dowodowe trafiają do Twojego obszaru roboczego jak zwykle.
  • Przez SSH, na serwerze VPS z Ubuntu 24.04 LTS, Docker Engine i Compose v2, z dostępem opartym na kluczach: silnik uruchamia tam zestaw testów w tym samym obrazie kontenera co lokalny Docker, a materiały dowodowe pozostają tam do czasu ich pobrania.
  • Obsługa fizycznych telefonów z Androidem, zestawy testów Selenium i Python, testy chaosu infrastruktury oraz import wyników zawsze odbywają się na komputerze, na którym działa Studio.
  • Górny pasek pokazuje, gdzie działa obszar roboczy, oraz jego pamięć RAM i procesor. Po włączeniu adaptacyjnego tempa liczba jednocześnie działających przeglądarek jest dostosowywana do wolnej pamięci RAM.

Jakie materiały dowodowe z uruchomienia zachowuje Studio?

Evidence Locker

Każdy wynik zapisany tam, gdzie możesz go przeczytać i ocenić.

  • Sekcje wyników testów, podsumowania uruchomienia, zgłoszeń błędów, zaliczonych testów, analizy historii, rankingu ryzyka, Core Web Vitals, audytów bezpieczeństwa, odporności na chaos i testowania API.
  • Każdy zapis otwiera się z kartami Raport, Metadane, Telemetria, Surowy dziennik i Analiza AI, przy czym ostatnia jest domyślnie aktywna i wypełnia się po podłączeniu Twojej AI. Przy niepowodzeniu zapisywane są raport diagnostyczny, metadane i jeden zrzut ekranu z ostatnią klatką, a przy rzeczywistej awarii także nagranie wideo (wybierasz werdykty w Ustawieniach, w sekcji Zachowuj wideo awarii dla); surowy dziennik zawiera błędy konsoli, nieudane żądania, problemy z bezpieczeństwem i błędy strony. Ślad wykonania również jest zachowywany, gdy śledzenie jest włączone, co jest ustawieniem domyślnym.
  • Klasyfikacja: Rzeczywisty błąd lub Fałszywy alarm, z wymaganym uzasadnieniem, informacją, czy nadal jest uwzględniany, i decyzją, co zrobić z plikami: zachować je, zarchiwizować to, co ważne, czy je usunąć.
  • Udostępnij w Telegram, Slack, Jira lub Azure Boards, skopiuj obraz albo wyeksportuj pełny raport HTML. Nic nie opuszcza komputera, dopóki nie wybierzesz kanału i nie naciśniesz przycisku wysyłania.

Folder jednego rzeczywistego niepowodzenia, plik po pliku →

Testy API

Testy REST i GraphQL z siedmioma własnymi werdyktami. Uruchamiają się z Patrol jak każdy test, a każdy punkt końcowy zapisuje własny folder w sekcji testów API w Evidence Locker.

  • API_SECURE: wszystkie asercje zostały spełnione, a struktura odpowiedzi odpowiada ostatnio zapisanej. API_FLAKY: test powiódł się przy ponowieniu. API_DRIFTED: test powiódł się, ale struktura się zmieniła, a zestawienie różnic wskazuje każde dodane lub usunięte pole oraz każdą zmianę typu. Rozbieżność liczy się jako powodzenie, dopóki nie włączysz trybu ścisłego.
  • API_BREACHED: asercja nie została spełniona. API_DEGRADED: czas odpowiedzi przekroczył dopuszczalny limit, domyślnie 2000 ms, a werdykt ten jest wydawany tylko w ścisłym trybie oceny wydajności. API_VULNERABLE: żądanie bez danych uwierzytelniających otrzymało odpowiedź tam, gdzie oczekiwano kodu 401 lub 403; sam brak nagłówka zabezpieczeń nigdy nie skutkuje tym werdyktem. API_BLOCKED: kod 429 lub 403 z sygnaturą Cloudflare albo Akamai, więc żądanie w ogóle nie dotarło do Twojego produktu.
  • Na ekranie: kafelki z punktami końcowymi, powodzeniami, uruchomieniami ponad limit, zmianami struktury, kiedykolwiek wykrytymi podatnościami i najdłuższym zaobserwowanym czasem odpowiedzi; filtry wszystkie, nieudane, ze zmienioną strukturą i podatne; oraz tabela z punktem końcowym, werdyktem, minimum, medianą, p95, maksimum, n i odsetkiem powodzeń. Dla punktu końcowego z mniej niż 20 obserwacjami wyświetlana jest kreska zamiast percentyla.
  • Kliknij uruchomienie, aby otworzyć je z sześcioma kartami: Raport, Żądanie, Odpowiedź, Wydajność, Schemat i Analiza AI, przy czym ostatnia wypełnia się po podłączeniu Twojej AI. Nieudany krok przepływu udostępnia opcje Uruchom ponownie od kroku N i Uruchom ponownie nieudany krok.
  • Dla każdego uruchomienia w api-evidence zapisywane są: request.json, response.json, performance.json, schema.json, report.md i metadata.json, z zamaskowanymi sekretami w nagłówkach i treści. report.md kończy się poleceniem curl, które odtwarza wywołanie. Dla każdego testu zachowywanych jest 20 najnowszych udanych uruchomień; nieudane są zachowywane zawsze.
  • Tworzenie testu: Nowy test, API, wymaga wybrania typu: REST, GraphQL lub SOAP przez HTTP. Każdy typ zaczyna się od przypadku, który działa bez zmian z publicznym punktem końcowym, a pierwszy wiersz pliku zapisuje typ, dzięki czemu drzewo plików go pokazuje, a przeniesienie pliku go nie zmienia. SOAP to XML wysyłany jako tekst i sprawdzany regułami tekstowymi, bez parsera XML. Środowiska o nazwach takich jak staging i prod zachowują własny bazowy adres URL, a token jest przechowywany wyłącznie jako nazwa jego zmiennej. Foldery można zagnieżdżać.
  • API Flow Recorder: w Nexus Recorder nagraj wywołania wykonywane przez stronę, a następnie Przejrzyj nagranie przed zapisaniem zestawu testów. Wywołania wyświetlają każde z nich wraz z metodą, ścieżką, statusem, kategorią i uzasadnieniem. Początkowo do zestawu trafiają tylko wywołania API dotyczące logiki biznesowej, uwierzytelniania, odczytu i zmiany stanu; sygnały telemetryczne, hosty zewnętrzne, zasoby i żądania wstępne są wykluczone, ale możesz je ponownie zaznaczyć. Przepływy przekazują wartość z jednej odpowiedzi do późniejszego żądania, na przykład token logowania, a Maskowanie wyświetla pola wyglądające na poufne, oznaczone jako nigdy niezapisywane.
  • Z poziomu przeglądu: Generuj test zapisuje zestaw testów, Generuj OpenAPI zapisuje wersję roboczą specyfikacji 3.1 z typami i kodami statusu, bez zarejestrowanych wartości, a Test obciążeniowy otwiera wywołania jako plan testu obciążeniowego.

Rozbieżność z perspektywy karty Schemat

APIT311-1 GET /api/productsList API_DRIFTED

+6 fields, -2 fields

+ products[].brand + products[].id + products[].name + products[].price

+ products[].category.category + products[].category.usertype.usertype

- brands[].brand - brands[].id

APIT311 to test demonstracyjny celowo napisany tak, by wykazywał rozbieżność: działające API nie zmienia się na żądanie, więc test w kolejnych uruchomieniach korzysta naprzemiennie z dwóch punktów końcowych katalogu, a przy drugim uruchomieniu wyświetla API_DRIFTED. Rozbieżność to zmiana, z którą odbiorca API spotyka się w środowisku produkcyjnym, mimo że asercja sprawdzająca status 200 nadal jest spełniona.

Jak wykryć zmiany schematu API, zanim umkną moim testom?

History

Każdy test dla każdej tożsamości, uruchomienie po uruchomieniu.

  • Karty podsumowania, niezawodności, wydajności, API, niepowodzeń, pokrycia, jakości oraz wyników testów jednostkowych i integracyjnych.
  • Trendy według sesji, dnia lub tygodnia: Regresja, Znów działa, Nadal nie działa, Wolniej. Macierz tożsamości zestawia każdy test z każdą przeglądarką i każdym urządzeniem.
  • Testy jednostkowe i integracyjne: import plików JUnit XML z Jest, Vitest, pytest, Maven lub gotestsum, z wynikami oddzielonymi od statystyk testów kompleksowych.
  • Ryzyko w Evidence Locker i Patrol: ranking według tego, jak często test zmienia wynik, kończy się błędem lub zabiera czas. Żaden test nie jest uznawany za niestabilny przed pięcioma uruchomieniami. Prognoza ryzyka opiera się na regresji logistycznej na podstawie Twojej historii, a przy małej ilości danych — na EWMA.

Co zawiera jeden wiersz historii →

Visual Regression

Porównanie pikseli z zatwierdzonymi obrazami. Pierwsze uruchomienie z --visual tworzy obraz bazowy, a każde kolejne jest z nim porównywane. Ekran otwiera się na tym, co wymaga decyzji: Zmienione piksele.

  • Każda regresja ma swoją kartę: test, punkt kontrolny, udział zmienionych pikseli względem dopuszczalnej tolerancji, "N z M px", wymiary, liczba zmienionych obszarów oraz uwaga, jeśli obraz nie ustabilizował się przed przechwyceniem. Piksele na krawędziach, których kolor zmienił się przez wygładzanie, nie są liczone.
  • Widoki Obok siebie, Suwak, Różnice i Miganie oraz wcześniejsze uruchomienia tego samego punktu kontrolnego: jedna regresja to fakt, cztery kolejne, z których każda jest nieco gorsza, to stopniowe rozjeżdżanie się interfejsu, a cztery identyczne to test zapisany względem niestabilnego wzorca.
  • Obrazy bazowe są przechowywane osobno dla każdej przeglądarki i platformy. Zatwierdź tę zmianę zastępuje tylko obraz danego punktu kontrolnego; Zatwierdź wszystkie służy do zmian obejmujących wiele punktów, takich jak zmiana globalnego nagłówka.
  • Ustawienia na tym samym ekranie wraz z wartościami domyślnymi: Porównuj piksele przy każdym uruchomieniu wyłączone, Tolerancja dla całej strony 1.0%, Tolerancja punktu kontrolnego elementu 0.1%, Regresja oznacza niepowodzenie testu wyłączone (regresja jest zapisywana, a test zachowuje status SECURE; po włączeniu otrzymuje status BREACHED) oraz Maskowane na każdym obrazie (selektory CSS) dla zegara lub reklamy.
  • Dla każdej regresji w visual-regression zapisywane są: baseline.png, current.png, diff.png (czerwony: zmienione, bursztynowy: pominięte wygładzanie krawędzi, szary: bez zmian), visual-report.md i result.json, po 10 najnowszych zestawów na test i punkt kontrolny, około 1 MB na zestaw.

Punkt kontrolny pojedynczego elementu

nexus patrol TC01 --visual

# wewnątrz testu: jeden element zamiast całej strony

await visualCheck(page, 'cart-total', page.locator('#cart-total'));

Punkt kontrolny elementu ma tolerancję dziesięciokrotnie mniejszą niż cały obszar widoku: zawężenie zakresu pozwala rygorystycznie sprawdzać zmiany bez uznawania zegara lub reklamy za błąd. Użyj go, gdy zmiana odstępów, koloru lub układu może zepsuć stronę, która nadal spełnia wszystkie asercje. Maskuj to, co zmienia się celowo, zamiast zwiększać tolerancję.

Executive Report

Jakość wydania w jednym pliku PDF, dla osoby, która je zatwierdza.

  • Wybierz okres: cały czas, ostatnie 7, 30 lub 90 dni albo własny zakres.
  • Decyzja o wydaniu: zgoda, ostrożność lub wstrzymanie, wraz z poziomem ufności, pokryciem i odsetkiem zaliczonych testów.
  • Błędy wraz z ich pierwotną przyczyną i wpływem na biznes, stabilność poszczególnych testów, wykryte problemy bezpieczeństwa, testy API oraz piramida jakości wyników testów end-to-end, integracyjnych i jednostkowych.
  • Zalecenia wynikają z reguł, nie z AI.

Obciążenie i bezpieczeństwo

Chaos Lab

Testowanie odporności, od przeglądarki po kontener.

  • Zakłócenia w przeglądarce: opóźnienie sieci (≈3G), utrata połączenia w trakcie testu, 4-krotne spowolnienie CPU w Chromium lub wszystko naraz, dodatkowo z utratą pakietów i presją na pamięć.
  • Infrastruktura: zarejestruj kontener Docker lub testowaną aplikację, a następnie wstrzymaj, zatrzymaj, wymuś zakończenie lub uruchom ponownie — podczas testu lub bez niego.
  • Przywracanie działania jest mierzone sondą stanu co 500 ms: czas wykrycia, czas przywrócenia, dostępność. Wynik to RESILIENT, DEGRADED, NOT_RECOVERED lub NOT_INJECTED.
  • Tylko zarejestrowane cele, nigdy własne kontenery Studio. Zakłócenie jest zapisywane przed wywołaniem, a stan początkowy zawsze przywracany. Zaliczony test, w którym nie wywołano zakłócenia, nigdy nie jest uznawany za odporny.

Load

Współbieżność, percentyle i werdykt, prosto z silnika.

  • Wątki robocze w silniku, bez zewnętrznego narzędzia do generowania obciążenia, oraz raport w plikach statistics.json dla poszczególnych etykiet.
  • Żądania na sekundę, p50, p90, p95 i p99, odsetek błędów oraz APDEX. Werdykt to PASS, OVER_BUDGET lub UNMEASURED.
  • Mierz Web Vitals pod obciążeniem: pomiary LCP, CLS, FCP, TTFB i TBT na rzeczywistej stronie w Chromium przed obciążeniem, co 15 sekund w jego trakcie i po nim.
  • Funkcja uzbraja się dopiero po wpisaniu AUTHORIZED, a cel inny niż ten komputer wymaga ponownego potwierdzenia.

Bezpieczeństwo

Uruchamia skonfigurowane kontrole bezpieczeństwa i zapisuje ustalenia wraz z dowodami. Smart Monkey, skaner DAST, znajduje się na ekranie Bezpieczeństwo w sekcji Uruchom skanowanie.

  • Smart Monkey skanuje cel, który masz uprawnienia testować: między innymi pod kątem XSS, wstrzykiwania SQL, wadliwej kontroli dostępu, IDOR, SSRF, wstrzykiwania poleceń, przechodzenia po katalogach, wstrzykiwania szablonów, XXE, otwartych przekierowań, CORS, nagłówków bezpieczeństwa i flag plików cookie.
  • Wybierz fazę lub uruchom wszystkie: pre-auth, auth-transit, post-auth, http-probes (pliki cookie, CORS, nagłówki, przekierowania, pliki), ssrf, cmdi, xss-oob, sqli (ślepe, oparte na wartościach logicznych i czasie), idor lub agent (koordynowane wykrywanie z określonym budżetem). Krótki opis wyjaśnia prostym językiem wybraną fazę.
  • Potwierdzanie poza głównym kanałem komunikacji wykorzystuje odbiornik HTTP na Twoim komputerze: każdy ładunek zawiera losowy token o długości 32 znaków, a SSRF, wstrzyknięcie poleceń i ślepy XSS są uznawane za potwierdzone dopiero wtedy, gdy badany system wyśle żądanie zwrotne z tym tokenem. Nie ma żądań zwrotnych DNS ani usług publicznych takich jak Interactsh czy Burp Collaborator, więc żadne informacje o badanym systemie nie trafiają do podmiotów trzecich.
  • Upoważnienie do testowania: host bez zapisanej podstawy upoważnienia jest odrzucany przed wysłaniem jakiegokolwiek pakietu, a adresy prywatne i lokalne są dopuszczane bez niej. Każde skanowanie zapisuje upoważnienie, operatora, cel, operację i 60-minutowe okno czasowe, zabezpieczając te dane lokalnie i nigdy ich nigdzie nie wysyłając.
  • Każda sesja zapisuje osobny folder dla każdego wykrytego problemu z plikami audit_report.json, screenshot.png, replay.webm, jeśli nagranie się zachowało, oraz wykonywalnym skryptem replay.mjs, który polecenie nexus replay uruchamia dla folderu danego problemu. W folderze głównym sesji znajdują się też session_summary.json i results.sarif. Zachowywanych jest 10 najnowszych sesji.
  • SARIF 2.1.0, jeden wynik na wykryty problem: regułą jest CWE problemu, CRITICAL i HIGH mają poziom error, MEDIUM warning, pozostałe note, a lokalizacją jest badany adres URL. GitHub code scanning i GitLab importują ten format bezpośrednio, a nexus monkey zapisuje go w środowisku wykonawczym CI bez Studio.

Jedna sesja na dysku

monkey-audits/YYYY-MM-DD_HH-mm-ss_FAST_AUDIT/

session_summary.json results.sarif

BUG-NN_TYPE/ audit_report.json screenshot.png replay.webm replay.mjs

Folder ma znacznik czasu UTC, a jego nazwa kończy się na FAST_AUDIT lub DEEP_AUDIT. Każdy wykryty problem ma komplet danych we własnym folderze, więc można przekazać go osobie odpowiedzialnej za naprawę wraz ze zrzutem ekranu, nagraniem i skryptem odtwarzającym problem; w Evidence Locker opcja Archiwizuj… również zachowuje te elementy. Użyj tego przed wydaniem, w systemie, który należy do Ciebie lub do którego testowania masz upoważnienie.

Settings

Kontrole jakości w trakcie uruchomienia

Włączane dla danego uruchomienia w sekcji Uruchom patrol lub w Ustawieniach. Każda ma charakter doradczy, dopóki nie włączysz trybu ścisłego — wtedy rozstrzyga o wyniku.

  • Dostępność sprawdzana przez axe-core pod kątem WCAG 2.1 AA oraz rozmiar obszarów dotykowych na telefonach.
  • Web Vitals względem limitów (LCP 2.5 s, CLS 0.1, INP 200 ms, TTFB 800 ms) oraz audyt ładowania na żądanie, który ocenia sposób ładowania obrazów na stronie w skali od A do F.
  • Wykrywanie blokad: kod 403, 429 lub strona weryfikacyjna oznacza wynik BLOCKED. Sygnały automatyzacji są domyślnie ukryte przed witryną, a jeden przełącznik wyłącza tę funkcję.
  • Tryb ścisły zmienia naruszenie w A11Y_VIOLATION, PERFORMANCE_DEGRADED lub SECURITY_VIOLATION.

Timeouts

Jak długo krok Playwright może czekać, zanim uruchomienie otrzyma wynik TIMEOUT. Cztery ustawienia w Ustawieniach, w sekcji Wykonywanie & Limity czasu. Poniżej podano wartości domyślne.

Settings · Execution & Timeouts

  • Action timeout (click, fill…)30000 msNEXUS_ACTION_TIMEOUT · every click, fill or wait on a locator
  • Assertion timeout10000 msNEXUS_EXPECT_TIMEOUT · how long an expect() keeps retrying
  • Page navigation timeout60000 msNEXUS_NAV_TIMEOUT · page.goto() and its redirects
  • Per-test hard timeout360 sNEXUS_TC_TIMEOUT · the whole test, six minutes

Pojedynczy krok może mieć własny limit w kodzie testu, zgodnie ze standardem Playwright:

await page.getByRole('link', { name: 'More information...' }).click({ timeout: 5000 });

await expect(page.getByRole('heading', { level: 1 })).toHaveText('Example Domain', { timeout: 15000 });

TC91 to test demonstracyjny celowo napisany dla starego tekstu linku w example.com, More information...; strona wyświetla teraz Learn more. Kliknięcie czekało przez domyślne 30000 ms na link, którego już nie było, a następnie dało wynik TIMEOUT. Dłuższy limit nie ukrywa niedziałającego elementu: test nadal kończy się błędem, tylko później.

AI Providers

AI stojąca za analizą przyczyn błędów i klasyfikacją problemów wykrytych przez Smart Monkey.

  • Domyślnie tylko lokalnie: model na tym komputerze obsługiwany przez Ollama, bez awaryjnego przełączania na chmurę.
  • Automatycznie, Anthropic lub OpenAI — według Twojego wyboru. Ekran wyraźnie informuje, kiedy polecenia opuszczają Twoją sieć. Klucze można tylko zapisywać.

Settings

Przełączniki sterujące pozostałymi ekranami, w jednym miejscu.

  • Integracje: Jira, Xray, Azure DevOps, Slack i Telegram, każda wyłączona, dopóki jej nie włączysz. Jira i Azure Boards utrzymują jedno zgłoszenie na każdy test zakończony niepowodzeniem: niepowodzenie (BREACHED, BREACHED_FLAKY lub CHAOS_BREACHED) albo TIMEOUT otwiera zgłoszenie, powtórzenie dodaje komentarz, a pomyślny wynik bez zastrzeżeń je zamyka. Nigdy blokada, awaria, niedostępna witryna ani błąd konfiguracji. Integracje
  • Materiały dowodowe i ich przechowywanie: ile raportów błędów, zrzutów ekranu z zaliczonych testów i sesji skanowania zachowuje każdy test.
  • Selektory i samonaprawa, tempo dostosowywane do obciążenia pamięci RAM oraz sygnały automatyzacji ujawniane przez przeglądarkę.

Pełny wykaz

19 dodatkowych możliwości w skrócie

Nexus Recorder

Nagraj przebieg w formacie Playwright (JavaScript, TypeScript, Python, C#) lub Selenium (JavaScript, Python, Java, C#): JavaScript i Python na komputerze, emulowanym urządzeniu mobilnym lub prawdziwym telefonie z Androidem, pozostałe języki na komputerze; albo nagraj wywołania API wykonywane przez aplikację. Bez udziału AI.

Test Adapter

Wklej test lub wskaż folder: Playwright lub Selenium w JavaScript, TypeScript lub Python. Narzędzie pokazuje różnice, zachowuje każdą asercję i wykonuje próbny test, zanim uzna go za gotowy.

Repair line

Zacznij od wiersza, w którym test zakończył się błędem: nagraj ponownie tylko ten krok lub zmień selektor, od najbardziej niezawodnego po XPath na końcu. Poprzednia wersja pozostaje w historii pliku.

Samonaprawianie, które najpierw pyta o zgodę

Po niepowodzeniu Studio ponownie uruchamia test w tle do tego wiersza i przygotowuje propozycje selektorów. Wynik pozostaje czerwony, dopóki nie wybierzesz jednego z nich.

Kondycja lokalizatorów i mapy selektorów

Wyświetla słabe lokalizatory otwartego testu i naprawia je na miejscu. Mapa selektorów skanuje stronę bez AI i ocenia każdy znaleziony selektor.

Watch

Ponownie uruchamia wybrane testy w odstępach od 5 minut do 24 godzin lub jednorazowo w wyznaczonym terminie i powiadamia tylko o zmianie stanu. Działa dalej po zamknięciu Studio.

CI/CD, konfiguracja na ekranie

Tworzy potok GitHub Actions lub GitLab CI z nocnymi testami regresji i najpierw sprawdza go lokalnie. Dla samego potoku: rygorystyczny kod zakończenia i JUnit XML.

Feature flags

Uruchamia test po jednym razie dla wariantów z włączonymi i wyłączonymi flagami oraz wskazuje kombinację, przy której test kończy się niepowodzeniem.

Piramida jakości

Importuj JUnit XML z Jest, Vitest, pytest, Maven lub gotestsum i przeglądaj wyniki testów jednostkowych i integracyjnych obok wyników testów całościowych.

Ranking i przewidywanie ryzyka

Ocenia każdy test dla każdej tożsamości według częstotliwości zmian wyniku, niepowodzeń i czasochłonności. Regresja logistyczna na podstawie Twojej historii dodaje ocenę ryzyka, a przy małej ilości danych stosowana jest metoda EWMA.

Regresja wizualna

Porównuj z wzorcami przechowywanymi osobno dla każdej przeglądarki i platformy: obok siebie, przesuwając, pokazując różnice lub naprzemiennie, i zatwierdzaj zmiany jednym kliknięciem.

Dostępność

Kontrole WCAG 2.1 AA za pomocą axe-core oraz rozmiaru obszarów dotykowych na telefonach. Domyślnie mają charakter informacyjny; w trybie rygorystycznym naruszenie staje się A11Y_VIOLATION.

Web Vitals i leniwe ładowanie

LCP, CLS, INP, FCP, TTFB i TBT, domyślnie włączone i oceniane względem limitów, oraz audyt leniwego ładowania oceniający sposób ładowania obrazów na stronie.

Wykrywanie blokad

Kod 403, 429 lub strona weryfikacji antybotowej są interpretowane jako BLOCKED, a nie jako awaria Twojej aplikacji, i nigdy nie powodują utworzenia zgłoszenia w Jira.

Zestawy testów API

REST i GraphQL: status, pola, typy i limity opóźnień, z osobnymi wynikami oraz żądaniem, odpowiedzią i schematem zapisanymi jako dowody.

Raport dla kierownictwa

PDF z rekomendacją wydania (wydać, zachować ostrożność lub wstrzymać), pokryciem testami, stabilnością, niepowodzeniami według przyczyn źródłowych, ustaleniami dotyczącymi bezpieczeństwa i zaleceniami opartymi na regułach.

Jira, Xray, Azure DevOps, Slack i Telegram

Jira i Azure Boards utrzymują jedno zgłoszenie na każdy test zakończony niepowodzeniem, z załączonym zrzutem ekranu, i zamykają je, gdy test zakończy się pomyślnie. Xray i Azure Test Plans otrzymują wyniki każdego uruchomienia CI. Slack otrzymuje alerty Block Kit, a Telegram — alerty od Twojego własnego bota, sparowanego kodem QR.

Docker i SSH

Silnik uruchamia ten sam zestaw testów w kontenerze wykonawczym na komputerze ze Studio lub przez SSH na serwerze VPS w tym samym obrazie kontenera, z takimi samymi wynikami. Każdy obszar roboczy ma wybrane środowisko uruchomieniowe. Przy korzystaniu z SSH materiały dowodowe pozostają na zdalnym hoście do czasu ich pobrania.

Aplikacja komputerowa

Nexus Studio dla Windows 11 x64, na Twoim komputerze lub minikomputerze z co najmniej 16 GB RAM: uruchomienia, dowody, urządzenia i historia w jednym oknie.

Wypróbuj każdy ekran na własnej aplikacji.

Bezpłatnie przez 30 dni, ze wszystkimi funkcjami, na Twoich komputerach. Bez karty płatniczej.