Sobes.tech
Middle

Cum puteți automatiza testarea API-urilor?

sobes.tech AI

Răspuns de la AI

Automatizarea testării API-urilor poate fi realizată în următoarele moduri:

  1. Utilizarea framework-urilor/bibliotecilor:

    • Rest-Assured (Java): Bibliotecă populară pentru testarea API-urilor REST.
    • Requests (Python): Bibliotecă simplă și puternică pentru efectuarea solicitărilor HTTP.
    • SuperTest (Node.js): Bibliotecă pentru testarea serverelor HTTP și API-urilor.
    • Postman/Newman: Aplicații cu GUI și CLI pentru crearea și rularea testelor API.
  2. Crearea scenariilor de test:

    • Se definesc cazuri de test pozitive și negative pentru fiecare endpoint.
    • Scenariile includ trimiterea de solicitări cu parametri diferiți, verificarea codurilor de stare ale răspunsurilor, conținutul corpului (JSON, XML etc.) și anteturile.
  3. Verificarea datelor:

    • Validarea schemei JSON pentru verificarea structurii și tipurilor de date din răspuns.
    • Compararea valorilor reale din răspuns cu cele așteptate.
  4. Gestionarea datelor:

    • Utilizarea datelor de test stocate în fișiere (JSON, CSV) sau baze de date.
    • Pregătirea datelor înainte de executarea testului și curățarea după (dacă este necesar).
  5. Integrarea cu sistemele CI/CD:

    • Configurarea rulării automate a testelor API la fiecare modificare de cod sau periodic (de exemplu, în fiecare seară).
    • Utilizarea Jenkins, GitLab CI, GitHub Actions etc.
  6. Raportare:

    • Generarea de rapoarte detaliate despre rezultatele testelor (de exemplu, Allure Framework).

Exemplu de utilizare a 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() {
        // URL-ul de bază al API-ului
        RestAssured.baseURI = "https://reqres.in/api";

        // Trimiterea unei cereri GET
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Verificarea codului de stare
                .body("data.id", equalTo(2))  // Verificarea valorii din corpul răspunsului
                .body("data.first_name", equalTo("Janet"));
    }
}

Exemplu de utilizare 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  # Verificarea codului de stare
    data = response.json()
    assert data['data']['id'] == 2  # Verificarea valorii din corpul răspunsului
    assert data['data']['first_name'] == 'Janet'