Sobes.tech
Middle

Hogyan automatizálhatja az API tesztelést?

sobes.tech MI

Válasz az MI-től

Az API tesztelésének automatizálásához a következőket használom:

  1. Eszközválasztás:

    • Postman: Kiváló megoldás kézi és félautomata teszteléshez, kérésgyűjtemények létrehozásához, JavaScript-ben írt szkriptekhez ellenőrzésekhez (assertions) és környezetek létrehozásához.
    • Rest-Assured (Java-hoz) / Requests (Python-hoz): Könyvtárak az automatizált tesztek írásához kódban. Rugalmassá teszik a kérések összeállítását, a válaszok feldolgozását és összetett ellenőrzéseket.
    • Swagger/OpenAPI: Az API specifikáció alapján ügyfélkód vagy tesztek generálásához.
  2. Teszt szcenáriók meghatározása: Az API specifikáció elemzése, végpontok, metódusok (GET, POST, PUT, DELETE stb.), paraméterek, fejléc, kérés törzsek, elvárt státuszkódok és válaszformátumok (JSON, XML) meghatározása. Pozitív és negatív tesztszcenáriók kidolgozása.

  3. Tesztelés megvalósítása:

    • Postman-nel:

      • Gyűjtemények létrehozása a tesztek csoportosításához.
      • Pre-request szkriptek írása az adatok előkészítéséhez (pl. token beszerzése).
      • Tests (későbbi kérés utáni szkriptek) írása a válasz státuszának, fejlécének, törzsének ellenőrzéséhez (pm.response.json(), pm.expect(), chai.expect()).
      • Környezetváltozók használata a környezetek között változó paraméterekhez (URL, hitelesítési adatok).
      • Gyűjtemények futtatása Collection Runner vagy Newman segítségével (CI/CD-hez).
      // Postman teszt
      pm.test("Status code is 200", function () {
          pm.response.to.have.status(200);
      });
      
      pm.test("Response body contains specific field", function () {
          const responseJson = pm.response.json();
          pm.expect(responseJson.data).to.have.property('id');
      });
      
    • Rest-Assured (Java):

      • Kód írása Java-ban teszt keretrendszerek (JUnit, TestNG) használatával.
      • Kérések létrehozása, paraméterek, fejléc, törzs megadása.
      • Kérés végrehajtása (when().get(), post(), stb.).
      • Válasz ellenőrzése (then().statusCode(int), body(String path, Matcher<?> matcher)).
      // Rest-Assured (Java) példa JUnit használatával
      import io.restassured.RestAssured;
      import org.junit.jupiter.api.Test;
      import static io.restassured.RestAssured.given;
      import static org.hamcrest.Matchers.equalTo;
      
      public class ApiTest {
      
          @Test
          public void testGetUser() {
              RestAssured.baseURI = "https://api.example.com"; // Alap URL beállítása
      
              given()
              .when()
                  .get("/users/1") // GET kérés küldése /users/1-hez
              .then()
                  .statusCode(200) // Statusz kód ellenőrzése
                  .body("data.id", equalTo(1)); // A válasz törzsében lévő mező ellenőrzése
          }
      }
      
  4. Tesztadatok kezelése: A bemeneti adatok különböző kombinációinak ellenőrzése paraméterezett tesztekkel. Az adatok forrásai lehetnek CSV, JSON fájlok, adatbázisok.

  5. Teszt futtatása CI/CD pipeline-ban: Automatizált API tesztek integrálása folyamatos integrációs / folyamatos szállítási folyamatba Jenkins, GitLab CI, GitHub Actions eszközökkel. Ez lehetővé teszi a tesztek automatikus futtatását minden commitnál és gyors visszacsatolás kapását az API stabilitásáról. Postman esetén a Newman, kód alapú megoldásoknál a teszt keretrendszer futtatása.

  6. Eredmények elemzése és jelentéskészítés: Teszteredmények jelentéseinek generálása (pl. Allure, HTML jelentések a TestNG/JUnit-től). Az eredmények nyomon követése és a hibák okainak elemzése.

Ez a megközelítés rendszeres és megbízható módon biztosítja az API funkcionalitásának és stabilitásának ellenőrzését a fejlesztés különböző szakaszaiban.