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:
-
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.
-
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.
-
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.
-
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).
-
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.
-
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'