Middle
Ako môžete automatizovať testovanie API?
sobes.tech AI
Odpoveď od AI
Automatizácia testovania API môže byť vykonaná nasledujúcimi spôsobmi:
-
Použitie rámcov/knižníc:
- Rest-Assured (Java): Populárna knižnica na testovanie REST API.
- Requests (Python): Jednoduchá a výkonná knižnica na vykonávanie HTTP požiadaviek.
- SuperTest (Node.js): Knižnica na testovanie HTTP serverov a API.
- Postman/Newman: Aplikácie s GUI a CLI na tvorbu a spúšťanie API testov.
-
Vytváranie testovacích scenárov:
- Pre každý endpoint sú definované pozitívne a negatívne testovacie prípady.
- Scenáre zahŕňajú odosielanie požiadaviek s rôznymi parametrami, kontrolu stavových kódov odpovedí, obsahu tela odpovede (JSON, XML a pod.) a hlavičiek.
-
Kontrola údajov:
- Validácia JSON schémy na kontrolu štruktúry a typov údajov v odpovedi.
- Porovnanie skutočných hodnôt v odpovedi s očakávanými.
-
Správa údajov:
- Použitie testovacích údajov uložených v súboroch (JSON, CSV) alebo databázach.
- Príprava údajov pred vykonaním testu a čistenie po ňom (ak je potrebné).
-
Integrácia s CI/CD systémami:
- Nastavenie spúšťania automatizovaných API testov pri každej zmene kódu alebo pravidelne (napríklad, každý večer).
- Použitie Jenkins, GitLab CI, GitHub Actions a pod.
-
Reportovanie:
- Generovanie podrobných správ o výsledkoch testov (napríklad, Allure Framework).
Príklad použitia 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() {
// Základná URL API
RestAssured.baseURI = "https://reqres.in/api";
// Odoslanie GET požiadavky
given()
.when()
.get("/users/2")
.then()
.statusCode(200) // Kontrola stavu odpovede
.body("data.id", equalTo(2)) // Kontrola hodnoty v tele odpovede
.body("data.first_name", equalTo("Janet"));
}
}
Príklad použitia 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 # Kontrola stavu odpovede
data = response.json()
assert data['data']['id'] == 2 # Kontrola hodnoty v tele odpovede
assert data['data']['first_name'] == 'Janet'