Mockuj i testuj

Zmockuj API, potem przetestuj prawdziwe

Front end jest gotowy, zanim powstanie serwer. Zmockuj kontrakt pierwszego dnia. Gdy serwer się pojawi, przełącz mock w walidujące proxy, a każda odpowiedź, która przez nie przechodzi, jest sprawdzana względem kontraktu.

Uruchom serwer mockówZainstaluj API Genie

Odpowiedź o złym typie, wychwycona

Mock odpowiada przykładami z kontraktu i mówi o tym w nagłówku. Ten sam serwer z --proxy-to przekazuje każde żądanie do prawdziwego serwera i sprawdza oba kierunki: tu odpowiedź z id jako ciągiem znaków tam, gdzie kontrakt wymaga liczby całkowitej, wskazana w nagłówkach i policzona w raporcie kontraktu. Z --report contract.json --fail-on errors uruchomienie zapisuje raport i kończy się kodem 5, gdy zatrzyma się po błędzie.

$ apigenie-server openapi.yaml &
Listening on http://127.0.0.1:4010/v1 (spec: openapi.yaml, 12 operations)
$ curl -si http://127.0.0.1:4010/v1/pets/42 | grep "^HTTP\|X-Apigenie"
HTTP/1.1 200 OK
X-Apigenie-Mock-Operation: getPet
X-Apigenie-Mock-Source: example:cat

$ curl -s -X POST http://127.0.0.1:4010/__apigenie/shutdown
$ apigenie-server openapi.yaml --proxy-to http://localhost:8080 &
$ curl -si http://127.0.0.1:4010/v1/pets/42 | grep X-Apigenie
X-Apigenie-Mock-Source: proxy
X-Apigenie-Mock-Operation: getPet
X-Apigenie-Mock-Violations: 1
X-Apigenie-Mock-Violations-Detail: [{"location":["response","body","/id"],"check":"response.body.incompatible","code":"type","severity":"error","message":"expected type integer, found string"}]

Co obejmuje

  • MockiPrzykłady, stuby, generowane dane, zasoby CRUD i skrypty.
  • Walidujące proxyPokrycie oraz raporty kontraktu JSON lub JUnit dla CI.
  • apigenie testPliki .http i generowane żądania, sprawdzane względem kontraktu.
  • Nagrywanie i odtwarzanieNagrana sesja, odtwarzana w testach bez prawdziwych usług.
  • PanelRuch, operacje, scenariusze i raport kontraktu w przeglądarce.
  • Cztery rodzaje APIOpenAPI i Swagger, AsyncAPI, gRPC i GraphQL.

Narzędzia, które to robią

Krok po kroku (przewodnik po angielsku)

Mock and contract-test an API: Serve an API from its contract before the server exists, then check the real server against the contract in CI.

Mock pierwszego dnia, proxy w dniu wydania

apigenie-server serwuje kontrakt już teraz. Później to samo polecenie z --proxy-to sprawdza prawdziwy serwer, a --report z --fail-on zamienia uruchomienie w sprawdzenie CI.

Inne zastosowania