---
url: https://docs.ogmabox.com/pl/app/replay.md
description: Twórz, edytuj i ponownie wysyłaj żądania HTTP w panelu Ponowne wysyłanie Ogma.
---

# Ponowne wysyłanie {#replay}

Ponowne wysyłanie pozwala modyfikować i ponownie wysyłać dowolne żądanie HTTP oraz śledzi każdą próbę, aby można było porównywać wpływ zmian na odpowiedź.

## Tworzenie sesji {#creating-a-session}

Sesja ponownego wysyłania zawiera jedno żądanie i jego próby. Typowe sposoby jej utworzenia:

* Wybierz żądanie w panelu **Historia HTTP** i wybierz **Wyślij do > Ponowne wysyłanie**.
* Wybierz wiersz wyniku w panelu **Automatyzacja** i wybierz **Wyślij do panelu Ponowne wysyłanie**.
* Otwórz **Ponowne wysyłanie** i utwórz pustą sesję, aby wkleić lub wpisać surowe żądanie.
* Użyj opcji **Importuj** na pasku narzędzi Sesje, aby wygenerować sesje z definicji API.

Każda sesja jest niezależna. Otwórz wiele sesji, aby pracować nad różnymi żądaniami jednocześnie.

## Edytor żądania {#the-request-editor}

Edytor pokazuje pełne żądanie HTTP: metodę, URL, nagłówki i treść. Edytuj dowolne pole bezpośrednio.

Wybierz tryb edycji żądania odpowiedni do wykonywanego testu:

| Karta | Co można edytować |
| --- | --- |
| Sformatowane | Tekst HTTP z podświetlaniem składni i sformatowaną treścią, jeśli jest obsługiwana. Formatowanie staje się częścią żądania dopiero po edycji tego widoku. |
| Surowe | Edytowalny tekst transmisji HTTP/1.x, w tym widoczne sekwencje CR/LF. Wysyła dokładne bajty zamiast naprawiać nieprawidłową strukturę wiadomości. |
| Szesnastkowy | Edycja bajtowa pełnego żądania HTTP/1.x, w tym zawartości binarnej. |
| Formularz | Edycja za pomocą pól, gdy treść ma obsługiwane kodowanie formularza. |

Pasek narzędzi zawiera ustawienia metody, HTTP/TLS, celu, przekierowań, Content-Length, limitu czasu i źródła ciasteczek. **Parametry zapytania** umożliwiają dodawanie, wyłączanie i usuwanie parametrów zapytania. Użyj **Wczytaj treść**, gdy duża przechwycona treść nie została jeszcze wczytana do edytora.

Tryby Surowe (Raw) i Szesnastkowy (Hex) celowo pomijają rozwijanie zmiennych, zastępowanie ciasteczek, przekierowania i reguły Dopasowanie i zamiana, aby testy nieprawidłowych żądań zachowały dokładne bajty. Korzystają z transportu HTTP/1.x i nie służą do tworzenia surowych ramek HTTP/2. Używaj edytora strukturalnego do zwykłego ponownego wysyłania i analizuj wynikową próbę, gdy sprawdzasz, co zostało wysłane.

## Wysyłanie i porównywanie prób {#sending-and-comparing-attempts}

Kliknij **Wyślij**, aby wysłać żądanie. Odpowiedź pojawi się w panelu po prawej. Każde wysłanie jest zapisywane jako próba na liście **Próby** pod edytorem.

Rozwiń **Próby**, jeśli lista jest zwinięta. Wybranie próby wczytuje żądanie i odpowiedź tej próby, a nie tylko najnowszą odpowiedź. Kontrolki prób umożliwiają otwarcie w Automatyzacji, usunięcie pojedynczej próby, eksport CSV i ukrycie prób w widoku. Ukrycie nie jest tym samym co usunięcie.

Użyj **Otwórz tę odpowiedź w Porównywarce**, aby przeanalizować różnice między odpowiedziami w narzędziu porównywania. Zmieniaj jeden parametr naraz, aby obserwowaną różnicę można było przypisać tej zmianie.

## Zmienne środowiskowe {#environment-variables}

Używaj {{env.VAR}}, aby odwoływać się do zmiennych środowiska, kolekcji lub sesji. Zdefiniuj wartości obszaru roboczego/globalne i projektu w panelu **Środowisko**, a następnie używaj zmiennych kolekcji lub sesji do lokalnych nadpisań. Włącz szablony treści, jeśli chcesz rozwijać zmienne wewnątrz treści; w przeciwnym razie jej bajty zostaną zachowane.

Zmienne przydają się dla:

* Tokenów zmieniających się między sesjami testowymi
* Identyfikatorów kont podmienianych w celu testowania kontroli dostępu
* Hostów przełączanych między środowiskiem przedprodukcyjnym a produkcyjnym

Przy wysyłaniu strukturalnym pierwszeństwo ma najbardziej szczegółowa wartość: sesja, kolekcja, projekt, a następnie globalna. Brak zmiennych powoduje błąd. Transformacje i wartości dynamiczne opisano na stronie [Środowisko](./environment.md).

## Ciasteczka i przekierowania {#cookies-and-redirects}

Wybierz **Nagłówki żądania**, aby zachować nagłówek Cookie sesji, **Magazyn ciasteczek**, aby użyć pasujących ciasteczek z magazynu projektu, lub **Przeglądarka Ogma**, aby użyć pasujących ciasteczek z osadzonej przeglądarki. Te opcje dotyczą wysyłania strukturalnego; tryby Surowe i Szesnastkowy zachowują podane bajty.

Użyj **Edytuj magazyn ciasteczek projektu**, aby zarządzać zapisanymi ciasteczkami. Przy podążaniu za przekierowaniami Ogma wykonuje maksymalnie 10 przekierowań i usuwa nagłówki Authorization i Cookie, gdy zmienia się pochodzenie. Sprawdź uwierzytelnienie po zmianie pochodzenia, zamiast zakładać, że dane uwierzytelniające zostały przekazane.

## Kolekcje {#collections}

Kolekcje grupują powiązane sesje. Utwórz kolekcję, aby uporządkować wszystkie żądania dotyczące konkretnej funkcji lub scenariusza testowego.

Zmienne na poziomie kolekcji dotyczą wszystkich sesji w tej kolekcji, więc token definiujesz raz, a nie osobno dla każdej sesji.

Zmieniaj nazwy sesji za pomocą **F2** lub menu kontekstowego sesji. Przenoś sesje za pomocą **Przenieś do kolekcji** lub przeciągania i upuszczania oraz zmieniaj ich kolejność wewnątrz kolekcji. Kolekcje mogą zawierać podkolekcje i mogą być eksportowane lub importowane jako JSON. **Zamknij powyższe** i **Zamknij poniższe** odnoszą się do pionowej listy sesji.

## Importowanie definicji API {#importing-api-definitions}

1. Kliknij **Importuj** na pasku narzędzi Sesje.
2. Wybierz samowystarczalny dokument OpenAPI 3.x, kolekcję Postman v2.1, wynik introspekcji GraphQL lub dokument WSDL (maksymalnie 10 MB).
3. Dla introspekcji GraphQL podaj punkt końcowy HTTP(S), gdy pojawi się monit.
4. Sprawdź wygenerowaną kolekcję i żądania przed wysłaniem: docelowe adresy URL, parametry, przykłady treści i wartości uwierzytelniania mogą wymagać zmian dla twojego środowiska.

Import generuje edytowalne żądania; nie uruchamia skanowania. Zewnętrzne odwołania do schematów nie są pobierane, więc dołącz ich definicje do dokumentu wejściowego. Importowane ścieżki pojawiają się też w panelu Punkty końcowe ze źródłem typu specyfikacja API zamiast wpisu Historii HTTP. Refleksja gRPC nie należy do obsługiwanych formatów importu.

## Sekwencje {#sequences}

Użyj panelu **Sekwencje**, aby wybrać co najmniej dwie istniejące sesje ponownego wysyłania, nazwać sekwencję i ustalić kolejność wykonania. Sekwencja wysyła rzeczywiste żądania, więc używaj znanych żądań bazowych i sprawdzaj wynikowy stan, zamiast traktować ukończenie jako dowód sukcesu. Utworzenie sekwencji nie wykrywa automatycznie zależności uwierzytelniania ani tokenów między jej krokami.

## Wysyłanie do Automatyzacji {#sending-to-automate}

Gdy chcesz uruchomić warianty żądania na dużą skalę, wybierz **Wyślij do panelu Automatyzacja** w sesji. Ogma otworzy Automatyzację ze wstępnie wczytanym żądaniem, aby można było zdefiniować listy ładunków i uruchomić kampanię.

## Ponowne wysyłanie WS {#websocket-replay}

Ponowne wysyłanie WS to osobny widok ze stanem połączenia i osią czasu wiadomości wysłanych i odebranych. W Historii WebSocket użyj **Wyślij do panelu Ponowne wysyłanie WS**, połącz się i wyślij wymagane wiadomości inicjalizacji lub uwierzytelnienia na poziomie aplikacji przed testowaniem zmodyfikowanej ramki. Zobacz [Ponowne wysyłanie WS](./ws-replay.md).

## Pomoc AI {#ai-assist}

Użyj **Przeanalizuj z AI** przy odpowiedzi, aby poprosić o analizę wybranej wymiany. Sprawdź sugerowane testy i interpretacje; wyjaśnienie asystenta nie jest niezależnym dowodem podatności.

## Powiązane strony {#related-pages}

* [Automatyzacja](./automate.md)
* [Ponowne wysyłanie WS](./ws-replay.md)
* [Środowisko](./environment.md)
* [Ustalenia](./findings.md)
