Middle
Come puoi automatizzare i test API?
sobes.tech AI
Risposta dell'AI
L'automazione dei test API può essere eseguita nei seguenti modi:
-
Utilizzo di framework/biblioteche:
- Rest-Assured (Java): Libreria popolare per testare le API REST.
- Requests (Python): Libreria semplice e potente per effettuare richieste HTTP.
- SuperTest (Node.js): Libreria per testare server HTTP e API.
- Postman/Newman: Applicazioni con GUI e CLI per creare ed eseguire test API.
-
Creazione di scenari di test:
- Si definiscono casi di test positivi e negativi per ogni endpoint.
- Gli scenari includono l'invio di richieste con parametri diversi, verifica degli stati di risposta (codici HTTP), contenuto del corpo (JSON, XML, ecc.) e intestazioni.
-
Verifica dei dati:
- Validazione dello schema JSON per controllare la struttura e i tipi di dati nella risposta.
- Confronto tra valori effettivi nella risposta e quelli attesi.
-
Gestione dei dati:
- Uso di dati di test memorizzati in file (JSON, CSV) o database.
- Preparazione dei dati prima dell'esecuzione del test e pulizia successiva (se necessario).
-
Integrazione con sistemi CI/CD:
- Configurare l'esecuzione automatica dei test API ad ogni modifica del codice o regolarmente (ad esempio, ogni sera).
- Utilizzo di Jenkins, GitLab CI, GitHub Actions, ecc.
-
Reporting:
- Generazione di report dettagliati sui risultati dei test (ad esempio, Allure Framework).
Esempio di utilizzo di 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 di base dell'API
RestAssured.baseURI = "https://reqres.in/api";
// Invio richiesta GET
given()
.when()
.get("/users/2")
.then()
.statusCode(200) // Verifica del codice di risposta
.body("data.id", equalTo(2)) // Verifica del valore nel corpo della risposta
.body("data.first_name", equalTo("Janet"));
}
}
Esempio di utilizzo di 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 # Verifica del codice di risposta
data = response.json()
assert data['data']['id'] == 2 # Verifica del valore nel corpo della risposta
assert data['data']['first_name'] == 'Janet'