Testujte API pomocou dokumentácie
NaspäťTestovanie API na základe dokumentácie... Wau! Povedal som si, keď som to počul prvýkrát cca v roku 2015 na Rubyslave, keď Honza Javorek predstavoval nástroj Dredd. Odvtedy som sa nevedel vzdať myšlienky použiť ho.
Lenže nemali sme ani zdokumentované API a písať Open API yaml ručne sa nikomu nechcelo. Prvým krokom teda bolo doplniť do nástroja, ktorý používame na API, generovanie API dokumentácie.
Odvtedy už ubehol nejaký čas a vývoj Dredda sa zastavil. Niektoré naše aplikácie už však majú celkom pekne zdokumentované API a bola by škoda to nevyužiť. Vytvorili sme teda jednoduchý Codeception test, ktorý načíta Open API dokumentáciu a otestuje čo sa otestovať dá:
- pokiaľ máme k dispozícii nejaký príklad (pole example) k jednotlvým parametrom (resp. aspoň k povinným), môžeme ich použiť a očakávať status kód 200
- ak má endpoint povinný aspoň jeden parameter, môžeme urobiť request úplne bez parametrov a očakávať status kód 400
- ak je endpoint zabezpečený tokenom (Bearer tokenom v hlavičke alebo tokenom priamo v URL alebo iným), spravíme request bez tokenu a očakávame odpoveď 403
- zavolaním neexistujúceho endpointu by sme mali vyvolať odpoveď 404
Niektoré stavy ako napr. 500 (Internal server error) či 429 (Too many requests) nie je možné otestovať generickým testom bez predošlých (závislých) volaní alebo prístupu k testovanému serveru a preto tieto stavy aktuálne netestujeme.
Očakávame, že tento test nám pomôže nájsť prípadné chyby napríklad pri refaktoringu už v našom CI podobne ako Clicker a nedostanú sa až do produkcie.
Komentáre
Kontaktujte nás
Neviete správne uchopiť online prezentáciu Vašej spoločnosti? Potrebujete konzultáciu alebo audit doterajších aktivít?