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
- Ukážte nám, čo má rozhranie robiť – priamo v aplikácii, v Postmane alebo krátkym popisom scenára.
- Pomôže aj OpenAPI/Swagger špecifikácia, ak ju máte; nie je však podmienkou.
- Spravidla stačí prístup k testovaciemu prostrediu, prístup do kódu nie je nutný.
- Ak pokrytie nemáte premyslené, navrhneme ho – stačí poznať očakávané správanie API.
- Zvyšok – návrh pokrytia vrátane negatívnych scenárov, testovacie dáta, implementáciu, reporting a zapojenie do dohodnutého spôsobu spúšťania, napríklad do CI/CD – zabezpečíme my.
Č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.
-
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.
-
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.
-
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.
-
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
-
Ako testovať GraphQL API: oprávnenia, chyby a náročné dopyty
GraphQL je spôsob, ako medzi aplikáciami sprístupniť dáta cez API. Klient si v požiadavke vyberie polia, ktoré potrebuje, a môže si vypýtať aj súvisiace údaje.
-
Ako testovať REST API: čo overiť a ako zapojiť do CI/CD
REST API je rozhranie, cez ktoré si systémy posielajú údaje pomocou HTTP požiadaviek. Pri teste voláme jeho koncové body, teda endpointy, a kontrolujeme odpoveď bez toho, aby sme prechádzali cez používateľské rozhranie.
-
Ako testovať webhooky: podpis, duplicity, poradie a oneskorené doručenie
Webhook je požiadavka, ktorou externá služba oznámi vašej aplikácii udalosť: dopravca zmenil stav zásielky, fakturačný systém vystavil doklad alebo CRM upravilo kontakt.
-
Prečo stovky UI testov nenahradia dobré API testy
Tím často začne s automatizáciou tam, kde aplikáciu vidí – v prehliadači. S rastúcim počtom end-to-end testov však pribúda čas behu, údržba aj náhodné zlyhania.
-
Čo testovať na API, aj keď používateľské rozhranie funguje
Formulár nepustí prázdne meno a cudzia objednávka sa v zozname nezobrazí. To však ešte nepotvrdzuje, že rovnaké pravidlá vynucuje aj server.
-
Kontraktné testovanie: aby zmena API nerozbila jeho klientov
Tím, ktorý vlastní API, premenuje pole v odpovedi. Zmena je malá, testy služby prejdú, nasadenie prebehne bez problémov.
-
Mock, sandbox alebo reálna služba: ako testovať externé integrácie
Platobná brána, dopravca alebo partnerské API môže byť počas testu pomalé, nedostupné alebo schopné vytvoriť skutočný vedľajší účinok.
-
Kedy stačí Postman a kedy sa oplatia API testy v kóde
Postman je užitočný na skúšanie, ladenie aj automatizované spúšťanie kolekcií API požiadaviek.
-
Ako otestovať platobnú bránu v e-shope: 3D Secure, webhooky a refundácie
Platobná integrácia nie je hotová len preto, že testovacia platba raz skončila zeleným potvrdením.
-
Ako systematicky testovať staršie SOAP API
SOAP služby často fungujú roky a podporujú fakturáciu, sklad alebo výmenu dát s partnermi.
-
Ako testovať transakčné e-maily: spúšťač, obsah, odkazy a duplicity
Potvrdenie objednávky, odkaz na obnovu hesla alebo upozornenie na zmenu účtu vzniká mimo obrazovky, na ktorej používateľ vykonal akciu.
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.