Payload źródłowy i kontrakt odpowiedzi API.
Testy integracji API
i zachowania interfejsu
Wykonywalny pakiet testów dla synchronizacji zamówień B2B: od danych źródłowych, przez mapowanie, po odpowiedź systemu docelowego i raport PASS/FAIL.
Mapowanie → żądanie HTTP → walidacja odpowiedzi.
Status, schemat, mapowanie, duplikat i timeout.
Wartości oczekiwane i rzeczywiste, różnice JSON i raport JSON/CSV.
Wyniki zgadzają się z macierzą scenariuszy; dodatek async: PASS → jedna regresja → PASS.
GET /source/ordersPOST /target/ordersPASS / FAILOdbiór dostarczania webhooków
HMAC-SHA256, klucz idempotencji, duplikat dostarczenia, limit czasu i ponowienie. Izolowany odbiornik wykonuje scenariusze w jednym żądaniu do API. Timeout jest kontrolowaną symulacją transportu.
Referencja: wszystkie testy PASS. Kontrolowana zmiana: wyłączenie deduplikacji jednego dostarczenia. Oczekiwane odrzucenie błędnego wejścia oznacza PASS testu.
Wynik wykonania
Zamierzone wyniki FAIL wykazują wykrycie rozbieżności — nie oznaczają błędu aplikacji.
Pakiet sprawdzi mapowanie pól, walidację kontraktu, statusy HTTP, idempotencję, zgodność danych oraz zachowanie retry.
Walidacja kontraktu i kompatybilności
Mały kontrakt odpowiedzi jest wykonywany na sześciu odpowiedziach syntetycznych. Dodatkowe pole opcjonalne zachowuje zgodność, a brak pola wymaganego lub zmiana typu narusza kontrakt.
| Scenariusz | Wersja odpowiedzi | Wynik | Kompatybilność | Pole / reguła | Oczekiwane / rzeczywiste |
|---|---|---|---|---|---|
CONTRACT-BASELINEKontrakt referencyjny | target-order-response/1.2 | PASS | referencyjna | response CONTRACT_REQUIRED_FIELDS | odpowiedź zgodna z kontraktem zgodne |
CONTRACT-MISSINGBrak wymaganego pola | target-order-response/1.2-bad-missing | FAIL | niezgodne | targetId CONTRACT_REQUIRED_FIELDS | obecne brak |
CONTRACT-TYPENieprawidłowy typ pola | target-order-response/1.2-bad-type | FAIL | niezgodne | targetId CONTRACT_FIELD_TYPE | string number |
CONTRACT-ENUMNieprawidłowa wartość enum | target-order-response/1.2-bad-enum | FAIL | niezgodne | lifecycle CONTRACT_ENUM_VALUE | NEW|CONFIRMED|SHIPPED ARCHIVED |
CONTRACT-ADDITIVEDodane pole opcjonalne | target-order-response/1.3-compatible | PASS | zgodne | response CONTRACT_ADDITIVE_OPTIONAL | odpowiedź zgodna z kontraktem zgodne |
CONTRACT-BREAKINGZmiana łamiąca kontrakt | target-order-response/2.0-breaking | FAIL | niezgodne | accepted CONTRACT_FIELD_TYPE | boolean string |
Testowalny kontrakt zamiast niejasnej integracji
Scenariusze i dane są syntetyczne. W realnym zakresie kryteria powstają na podstawie uzgodnionej specyfikacji i przykładów.
Kontrakt i przykłady
Specyfikacja pól, wartości słownikowych i przykładowe dane źródłowe oraz docelowe.
Jawne scenariusze
Sukcesy, oczekiwane odrzucenia, błędy kontraktu oraz zachowanie transportu.
Raport PASS/FAIL
Identyfikator, payload, oczekiwany i rzeczywisty wynik oraz czytelny JSON diff.
Mierzalny odbiór
Stały zestaw danych, uzgodnione wyniki i wykonywalny pakiet regresji do ponownego użycia.
Wydzielony odbiór integracji API
Specyfikacja API i przykłady → uzgodnione scenariusze → wykonywalny pakiet testów → raport rozbieżności → odbiór PASS/FAIL.
Zakres koncentruje się na wydzielonej integracji, regresji po zmianie lub walidacji migracji i jednoznacznych kryteriach odbioru.
Omówić podobny zakres