Middle
Hoe kunt u API-testen automatiseren?
sobes.tech AI
Antwoord van AI
API-testautomatisering kan op de volgende manieren worden uitgevoerd:
-
Gebruik van frameworks/bibliotheken:
- Rest-Assured (Java): Populaire bibliotheek voor het testen van REST-API's.
- Requests (Python): Eenvoudige en krachtige bibliotheek voor het uitvoeren van HTTP-verzoeken.
- SuperTest (Node.js): Bibliotheek voor het testen van HTTP-servers en API's.
- Postman/Newman: Applicaties met GUI en CLI voor het maken en uitvoeren van API-tests.
-
Het maken van testscripts:
- Positieve en negatieve testgevallen worden voor elke endpoint gedefinieerd.
- Scenario's omvatten het verzenden van verzoeken met verschillende parameters, het controleren van statuscodes, inhoud van de respons (JSON, XML, etc.) en headers.
-
Gegevensvalidatie:
- Validatie van JSON-schema's om de structuur en datatypes in de respons te controleren.
- Het vergelijken van werkelijke waarden in de respons met de verwachte waarden.
-
Gegevensbeheer:
- Gebruik van testgegevens opgeslagen in bestanden (JSON, CSV) of databases.
- Het voorbereiden van gegevens vóór het uitvoeren van de test en het opschonen ervan na afloop (indien nodig).
-
Integratie met CI/CD-systemen:
- Het automatisch uitvoeren van API-tests bij elke codewijziging of periodiek (bijvoorbeeld elke avond).
- Gebruik van Jenkins, GitLab CI, GitHub Actions, enz.
-
Rapportage:
- Het genereren van gedetailleerde rapporten over de testresultaten (bijvoorbeeld, Allure Framework).
Voorbeeld van het gebruik van 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 van de API
RestAssured.baseURI = "https://reqres.in/api";
// Verzenden van een GET-verzoek
given()
.when()
.get("/users/2")
.then()
.statusCode(200) // Controleren van de statuscode
.body("data.id", equalTo(2)) // Controleren van de waarde in de respons
.body("data.first_name", equalTo("Janet"));
}
}
Voorbeeld van het gebruik van 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 # Controleren van de statuscode
data = response.json()
assert data['data']['id'] == 2 # Controleren van de waarde in de respons
assert data['data']['first_name'] == 'Janet'