Middle
Wie können Sie API-Tests automatisieren?
sobes.tech KI
Antwort von AI
Die Automatisierung von API-Tests kann auf folgende Weisen erfolgen:
-
Verwendung von Frameworks/Bibliotheken:
- Rest-Assured (Java): Beliebte Bibliothek zum Testen von REST-APIs.
- Requests (Python): Einfache und leistungsstarke Bibliothek für HTTP-Anfragen.
- SuperTest (Node.js): Bibliothek zum Testen von HTTP-Servern und APIs.
- Postman/Newman: GUI- und CLI-Anwendungen zum Erstellen und Ausführen von API-Tests.
-
Erstellung von Testszenarien:
- Für jeden Endpunkt werden positive und negative Testfälle definiert.
- Szenarien umfassen das Senden von Anfragen mit verschiedenen Parametern, die Überprüfung von Statuscodes, Antwortinhalten (JSON, XML usw.) und Headern.
-
Datenüberprüfung:
- Validierung des JSON-Schemas zur Überprüfung der Struktur und Datentypen in der Antwort.
- Vergleich der tatsächlichen Werte in der Antwort mit den erwarteten.
-
Datenmanagement:
- Verwendung von Testdaten, die in Dateien (JSON, CSV) oder Datenbanken gespeichert sind.
- Vorbereitung der Daten vor dem Test und Bereinigung danach (falls erforderlich).
-
Integration mit CI/CD-Systemen:
- Automatisiertes Ausführen von API-Tests bei jeder Codeänderung oder regelmäßig (z.B. jede Nacht).
- Verwendung von Jenkins, GitLab CI, GitHub Actions usw.
-
Berichtswesen:
- Generierung detaillierter Berichte über die Testergebnisse (z.B. Allure Framework).
Beispiel für die Verwendung von 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() {
// Basis-URL der API
RestAssured.baseURI = "https://reqres.in/api";
// Senden einer GET-Anfrage
given()
.when()
.get("/users/2")
.then()
.statusCode(200) // Überprüfung des Statuscodes
.body("data.id", equalTo(2)) // Überprüfung des Werts im Antwortkörper
.body("data.first_name", equalTo("Janet"));
}
}
Beispiel für die Verwendung von 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 # Überprüfung des Statuscodes
data = response.json()
assert data['data']['id'] == 2 # Überprüfung des Werts im Antwortkörper
assert data['data']['first_name'] == 'Janet'