Middle
Hogyan automatizálhatja az API-teszteket?
sobes.tech MI
Válasz az MI-től
Az API tesztelés automatizálása a következő módokon valósítható meg:
-
Frameworkök/könyvtárak használata:
- Rest-Assured (Java): Népszerű könyvtár REST API-k teszteléséhez.
- Requests (Python): Egyszerű és erőteljes könyvtár HTTP kérésekhez.
- SuperTest (Node.js): Könyvtár HTTP szerverek és API-k teszteléséhez.
- Postman/Newman: GUI és CLI alkalmazások API tesztek létrehozásához és futtatásához.
-
Teszt forgatókönyvek készítése:
- Pozitív és negatív tesztesetek meghatározása minden végpont esetében.
- Forgatókönyvek különböző paraméterekkel küldött kéréseket, válasz státuszkódokat, tartalmat (JSON, XML stb.) és fejlécet ellenőriznek.
-
Adatok ellenőrzése:
- JSON séma validálása a válasz szerkezetének és adattípusainak ellenőrzéséhez.
- A tényleges értékek összehasonlítása a várt értékekkel.
-
Adatkezelés:
- Tesztadatok fájlokban (JSON, CSV) vagy adatbázisokban való tárolása.
- Az adatok előkészítése a teszt futtatása előtt és tisztítása utána (ha szükséges).
-
CI/CD rendszerekkel való integráció:
- Automatikus API tesztek futtatásának beállítása minden kódváltozásnál vagy rendszeresen (pl. minden este).
- Jenkins, GitLab CI, GitHub Actions stb. használata.
-
Jelentéskészítés:
- Részletes jelentések generálása a tesztek eredményeiről (pl. Allure Framework).
Rest-Assured példakód:
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() {
// API alap URL
RestAssured.baseURI = "https://reqres.in/api";
// GET kérés küldése
given()
.when()
.get("/users/2")
.then()
.statusCode(200) // státuszkód ellenőrzése
.body("data.id", equalTo(2)) // érték ellenőrzése a válasz testében
.body("data.first_name", equalTo("Janet"));
}
}
Requests (Python) példakód:
import requests
def test_get_user_by_id():
url = "https://reqres.in/api/users/2"
response = requests.get(url)
assert response.status_code == 200 # státuszkód ellenőrzése
data = response.json()
assert data['data']['id'] == 2 # érték ellenőrzése a válasz testében
assert data['data']['first_name'] == 'Janet'