Sobes.tech
Middle

Kuidas saate automatiseerida API testimist?

sobes.tech AI

Vastus AI-lt

API automatiseerimise testimiseks kasutan järgmist:

  1. Tööriistade valik:

    • Postman: Suurepärane lahendus käsitsi ja poolautomaatseks testimiseks, päringute kogumite loomine, JavaScripti skriptide kirjutamine kontrollide (assertions) ja keskkondade jaoks.
    • Rest-Assured (Java jaoks) / Requests (Python jaoks): teegid automatiseeritud testide kirjutamiseks.
    • Swagger/OpenAPI: kliendikoodi või testide genereerimine API spetsifikatsiooni põhjal.
  2. Teststsenaariumide määratlemine: API spetsifikatsiooni analüüs, endpoints, meetodid (GET, POST, PUT, DELETE jms), parameetrid, päised, päringukehad, oodatud staatuskoodid ja vastuse formaadid (JSON, XML) määratlemine.

  3. Testide teostamine:

    • Postmaniga:

      • Testide rühmitamiseks kogumite loomine.
      • Pre-request skriptide kirjutamine andmete ettevalmistamiseks.
      • Testide kirjutamine vastuse staatuse, päiste, vastuse keha kontrollimiseks (pm.response.json(), pm.expect(), chai.expect()).
      • Keskkonnamuutujate kasutamine parameetrite jaoks, mis muutuvad keskkondade vahel.
      • Kogumite käivitamine Collection Runneri või Newmaniga (CI/CD).
      // Postman Test
      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) kasutades:

      • Java koodi kirjutamine, kasutades testiraamistikke (JUnit, TestNG).
      • Päringute koostamine, parameetrite, päiste, keha määratlemine.
      • Päringute täitmine (when().get(), post(), jms.).
      • Vastuse kontrollimine (then().statusCode(int), body(String path, Matcher<?> matcher)).
      // Rest-Assured (Java) example using JUnit
      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"; // Põhiviidise URL määramine
      
              given()
              .when()
                  .get("/users/1") // GET-päring
              .then()
                  .statusCode(200) // Staatuskoodi kontroll
                  .body("data.id", equalTo(1)); // Vasta keha kontroll
          }
      }
      
  4. Andmete haldamine: testide parametriseerimine, erinevate andmekombinatsioonide kontroll.

  5. Testide käivitamine CI/CD pipeline'is: automatiseeritud API testide integreerimine Jenkins, GitLab CI, GitHub Actions abil.

  6. Tulemuste analüüs ja aruandlus: testide tulemuste aruannete genereerimine (nt Allure, HTML-aruanded TestNG/JUnit-ist). Vea põhjuste analüüs.

Selline lähenemine tagab regulaarse ja usaldusväärse API funktsionaalsuse ja stabiilsuse kontrolli erinevatel arendusfaasidel.