Služby · API testy

API testy

Podľa cieľa otestujeme vaše REST, SOAP alebo GraphQL rozhrania na funkčnej, integračnej či kontraktnej úrovni. Vy nám ukážete očakávané správanie; my navrhneme pokrytie, testy vytvoríme pomocou overených open-source nástrojov a podľa dohody ich zapojíme do CI/CD.

  • Bruno
  • Playwright
  • pytest
  • Robot Framework

O službe

Chyby v biznis logike odhalíte rýchlejšie priamo cez API

Veľkú časť biznis logiky otestujeme priamo cez API – bez prehliadača a čakania na vykreslenie stránky. Testy preto spravidla bežia výrazne rýchlejšie než testy cez používateľské rozhranie a pri chybe pomôžu zúžiť vrstvu a scenár, v ktorých treba hľadať príčinu.

Pokrývame funkčné testovanie (správnosť odpovedí, chybové stavy, autorizácia), integračné scenáre naprieč viacerými službami aj kontraktné testovanie. Pri klientoch a očakávaniach zachytených v kontraktoch tak môžu testy upozorniť na nekompatibilnú zmenu ešte pred nasadením.

Testujeme moderné REST a GraphQL rozhrania rovnako ako staršie SOAP služby. Tie v mnohých firmách stále nesú kritickú časť logiky, no často bývajú pokryté menej a ich zmena môže mať veľký dosah.

Nezabúdame na negatívne scenáre: neplatné vstupy, chýbajúce oprávnenia a hraničné hodnoty. Práve v týchto miestach sa môžu objaviť chyby, ktoré sa cez používateľské rozhranie testujú ťažšie.

Jednoduchý vstup

Čo od vás potrebujeme

Čo získate

Čo vám API testy prinesú

Rýchlejšia spätná väzba

API testy spravidla bežia výrazne rýchlejšie než testy cez používateľské rozhranie, takže tím dostane výsledok skôr. Podľa dohody ich zapojíme aj do CI/CD.

Presnejšie miesto prejavu chyby

Výsledok testu ukáže endpoint a scenár, v ktorom sa problém prejavil. Tím tak môže rýchlejšie zúžiť oblasť, v ktorej treba hľadať príčinu.

Kontrakty medzi službami

Pri klientoch a očakávaniach pokrytých kontraktmi môžu testy upozorniť na nekompatibilnú zmenu medzi službami ešte pred nasadením.

Pokrytie negatívnych scenárov

Systematicky preveríme neplatné vstupy, chýbajúce oprávnenia aj hraničné hodnoty, aby nezostali odkryté iba preto, že sa bežne nevyskytujú.

Ako to prebieha

Možný priebeh spolupráce

Konkrétne kroky a ich poradie prispôsobíme vašej situácii, dostupným podkladom a dohodnutému výstupu.

  1. Analýza API a dokumentácie

    Prejdeme OpenAPI/Swagger špecifikáciu alebo ukážky komunikácie a podľa rizika spolu určíme prioritné endpointy a scenáre.

  2. Návrh testovacej sady

    Spolu navrhneme pozitívne a negatívne scenáre, autorizačné matice, testovacie dáta a spôsob ich oddelenia medzi prostrediami.

  3. Implementácia a spúšťanie

    Testy môžeme zapojiť do pipeline pri relevantných zmenách alebo podľa dohodnutého plánu. Pri chybe upozornia tím alebo podľa dohody zastavia nasadenie.

  4. Reporting a rozširovanie

    Pripravíme zrozumiteľné výsledky pre tím aj manažment. Rozsah prípadného rozširovania sady o nové endpointy si dohodneme osobitne.

Nástroje a postupy

Nástroje a pracovné postupy volíme podľa konkrétneho riešenia

Pri výbere uprednostňujeme open-source nástroje, ak sú vhodné pre danú službu, vaše prostredie a spôsob prevádzky. Ak riešenie využíva komponent s inou licenciou, platenú cloudovú službu alebo externú infraštruktúru, podmienky a náklady uvedieme v ponuke. Spôsob odovzdania výstupov a vytvoreného kódu dohodneme podľa typu služby.

  • Python + pytest

    Python a pytest používame na funkčné, negatívne aj kontraktné scenáre. Výsledkom je čitateľná sada bez závislosti od proprietárneho nástroja, ktorú môže rozvíjať váš tím.

  • Bruno

    Kolekcie požiadaviek sú uložené ako textové súbory priamo vo vašom Gite vedľa kódu. Dajú sa verzovať a základná práca s nimi nevyžaduje cloudové úložisko.

  • Playwright API

    Ak už používate Playwright na testovanie webu, API testy môžu bežať v rovnakej konfigurácii, používať spoločné dáta a zobrazovať sa v tom istom reporte.

  • Robot Framework

    Vhodný pri akceptačných a end-to-end scenároch, keď tím preferuje kľúčové slová alebo spoločný formát pre web a API. HTTP požiadavky môže obslúžiť RequestsLibrary.

Hlbšie k téme

Ak sa chcete dozvedieť viac

Poďme sa pozrieť na váš konkrétny prípad

Stručne nám opíšte, čo chcete preveriť alebo automatizovať, aký systém či proces používate a čo vás dnes najviac obmedzuje. Ozveme sa s návrhom vhodného ďalšieho kroku.