Sobes.tech
Middle

Ako môžete automatizovať testovanie API?

sobes.tech AI

Odpoveď od AI

Automatizácia testovania API môže byť vykonaná nasledujúcimi spôsobmi:

  1. Použitie rámcov/knižníc:

    • Rest-Assured (Java): Populárna knižnica na testovanie REST API.
    • Requests (Python): Jednoduchá a výkonná knižnica na vykonávanie HTTP požiadaviek.
    • SuperTest (Node.js): Knižnica na testovanie HTTP serverov a API.
    • Postman/Newman: Aplikácie s GUI a CLI na tvorbu a spúšťanie API testov.
  2. Vytváranie testovacích scenárov:

    • Pre každý endpoint sú definované pozitívne a negatívne testovacie prípady.
    • Scenáre zahŕňajú odosielanie požiadaviek s rôznymi parametrami, kontrolu stavových kódov odpovedí, obsahu tela odpovede (JSON, XML a pod.) a hlavičiek.
  3. Kontrola údajov:

    • Validácia JSON schémy na kontrolu štruktúry a typov údajov v odpovedi.
    • Porovnanie skutočných hodnôt v odpovedi s očakávanými.
  4. Správa údajov:

    • Použitie testovacích údajov uložených v súboroch (JSON, CSV) alebo databázach.
    • Príprava údajov pred vykonaním testu a čistenie po ňom (ak je potrebné).
  5. Integrácia s CI/CD systémami:

    • Nastavenie spúšťania automatizovaných API testov pri každej zmene kódu alebo pravidelne (napríklad, každý večer).
    • Použitie Jenkins, GitLab CI, GitHub Actions a pod.
  6. Reportovanie:

    • Generovanie podrobných správ o výsledkoch testov (napríklad, Allure Framework).

Príklad použitia 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";

        // Odoslanie GET požiadavky
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Kontrola stavu odpovede
                .body("data.id", equalTo(2))  // Kontrola hodnoty v tele odpovede
                .body("data.first_name", equalTo("Janet"));
    }
}

Príklad použitia 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 stavu odpovede
    data = response.json()
    assert data['data']['id'] == 2  # Kontrola hodnoty v tele odpovede
    assert data['data']['first_name'] == 'Janet'