Ako môžete automatizovať testovanie API?
sobes.tech AI
Odpoveď od AI
Za automatizáciu testovania API používam nasledovné:
-
Výber nástrojov:
- Postman: Vynikajúce riešenie pre ručné a poloautomatické testovanie, tvorbu kolekcií požiadaviek, písanie skriptov v JavaScripte na kontroly (assertions) a tvorbu prostredí.
- Rest-Assured (pre Java) / Requests (pre Python): Knihovny na písanie automatizovaných testov v kóde. Umožňujú flexibilne zostavovať požiadavky, spracovávať odpovede a písať zložité kontroly.
- Swagger/OpenAPI: Na generovanie klientskeho kódu alebo testov na základe špecifikácie API.
-
Definovanie scenárov testovania: Analýza špecifikácie API, určenie endpointov, metód (GET, POST, PUT, DELETE atď.), parametrov, hlavičiek, telies požiadaviek, očakávaných kódov stavu a formátov odpovedí (JSON, XML). Vypracovanie pozitívnych a negatívnych scenárov.
-
Implementácia testov:
-
S použitím Postman:
- Vytváranie kolekcií na zoskupovanie testov.
- Písanie Pre-request skriptov na prípravu dát (napríklad získanie tokenu).
- Písanie Tests (post-request skriptov) na kontrolu stavu odpovede, hlavičiek, telies odpovedí (
pm.response.json(),pm.expect(),chai.expect()). - Použitie premenných prostredia pre parametre, ktoré sa menia medzi prostrediami (URL, prihlasovacie údaje).
- Spustenie kolekcií cez Collection Runner alebo Newman (pre CI/CD).
// Test v Postman pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); pm.test("Response body contains specific field", function () { const responseJson = pm.response.json(); pm.expect(responseJson.data).to.have.property('id'); }); -
S použitím Rest-Assured (Java):
- Písanie kódu v Java s použitím testovacích frameworkov (JUnit, TestNG).
- Vytváranie požiadaviek, určenie parametrov, hlavičiek, telies.
- Spustenie požiadavky (
when().get(),post(), atď.). - Kontrola odpovede (
then().statusCode(int),body(String path, Matcher<?> matcher)).
// Rest-Assured (Java) príklad s použitím JUnit import io.restassured.RestAssured; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; public class ApiTest { @Test public void testGetUser() { RestAssured.baseURI = "https://api.example.com"; // Nastavenie základného URL given() .when() .get("/users/1") // Odoslanie GET požiadavky na /users/1 .then() .statusCode(200) // Kontrola, že kód stavu je 200 .body("data.id", equalTo(1)); // Kontrola poľa v tele odpovede } }
-
-
Správa testovacích dát: Použitie parametrizácie testov na kontrolu rôznych kombinácií vstupných dát. Zdrojmi dát môžu byť CSV, JSON súbory, databázy.
-
Spustenie testov v CI/CD pipeline: Integrácia automatizovaných API testov do pipeline kontinuálnej integrácie / kontinuálnej dodávky pomocou nástrojov ako Jenkins, GitLab CI, GitHub Actions. To umožňuje automatické spúšťanie testov pri každom commite a rýchle získavanie spätnej väzby o stabilite API. Pre Postman sa používa Newman, pre kódové riešenia - spustenie testovacieho frameworku.
-
Analýza výsledkov a reportovanie: Generovanie správ o priebehu testov (napríklad pomocou Allure, HTML reportov od TestNG/JUnit). Sledovanie výsledkov a analýza príčin neúspechov.
Takýto prístup zabezpečuje pravidelnú a spoľahlivú kontrolu funkčnosti a stability API na rôznych etapách vývoja.