Sobes.tech
Middle

Jak můžete automatizovat testování API?

sobes.tech AI

Odpověď od AI

Automatizace testování API může být provedena následujícími způsoby:

  1. Použití rámců/knihoven:

    • Rest-Assured (Java): Oblíbená knihovna pro testování REST API.
    • Requests (Python): Jednoduchá a výkonná knihovna pro HTTP požadavky.
    • SuperTest (Node.js): Knihovna pro testování HTTP serverů a API.
    • Postman/Newman: Aplikace s GUI a CLI pro tvorbu a spuštění testů API.
  2. Vytváření testovacích scénářů:

    • Pro každý endpoint jsou definovány pozitivní a negativní testovací případy.
    • Scénáře zahrnují odesílání požadavků s různými parametry, kontrolu stavových kódů odpovědí, obsahu těla (JSON, XML atd.) a hlaviček.
  3. Ověřování dat:

    • Validace JSON schématu pro kontrolu struktury a typů dat v odpovědi.
    • Porovnání skutečných hodnot v odpovědi s očekávanými.
  4. Správa dat:

    • Použití testovacích dat uložených v souborech (JSON, CSV) nebo databázích.
    • Příprava dat před spuštěním testu a čištění po něm (pokud je potřeba).
  5. Integrace s CI/CD systémy:

    • Nastavení automatického spouštění API testů při každé změně kódu nebo pravidelně (například každou noc).
    • Použití Jenkins, GitLab CI, GitHub Actions atd.
  6. Reportování:

    • Generování podrobných zpráv o výsledcích testů (například, Allure Framework).

Příklad použití Rest-Assured:

import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;

import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;

public class ApiTests {

    @Test
    public void testGetUserById() {
        // Základní URL API
        RestAssured.baseURI = "https://reqres.in/api";

        // Odeslání GET požadavku
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Kontrola kódu stavu
                .body("data.id", equalTo(2))  // Kontrola hodnoty v těle odpovědi
                .body("data.first_name", equalTo("Janet"));
    }
}

Příklad použití Requests (Python):

import requests

def test_get_user_by_id():
    url = "https://reqres.in/api/users/2"
    response = requests.get(url)

    assert response.status_code == 200  # Kontrola kódu stavu
    data = response.json()
    assert data['data']['id'] == 2  # Kontrola hodnoty v těle odpovědi
    assert data['data']['first_name'] == 'Janet'