Sobes.tech
Middle

Kuidas saate automatiseerida API testimist?

sobes.tech AI

Vastus AI-lt

API testimise automatiseerimine võib toimuda järgmistel viisidel:

  1. Raamistikute/raamatukogude kasutamine:

    • Rest-Assured (Java): Populaarne raamatukogu REST API testimiseks.
    • Requests (Python): Lihtne ja võimas raamatukogu HTTP-päringute tegemiseks.
    • SuperTest (Node.js): Raamatukogu HTTP-serverite ja API testimiseks.
    • Postman/Newman: Rakendused GUI ja CLI abil API testide loomiseks ja käivitamiseks.
  2. Teststsenaariumide loomine:

    • Iga lõpp-punkti jaoks määratletakse positiivsed ja negatiivsed juhtumid.
    • Skenaariumid hõlmavad päringute saatmist erinevate parameetritega, vastuse staatuskoodide kontrolli, sisu (JSON, XML jms) ja päiste kontrolli.
  3. Andmete kontroll:

    • JSON skeemi valideerimine, struktuuri ja andmetüüpide kontroll.
    • Tegelike väärtuste võrdlemine oodatavate väärtustega.
  4. Andmete haldamine:

    • Testandmete kasutamine, mis on salvestatud failidesse (JSON, CSV) või andmebaasidesse.
    • Andmete ettevalmistamine enne testi ja puhastamine pärast seda (vajadusel).
  5. Integreerimine CI/CD süsteemidega:

    • Automaatne API testide käivitamine iga koodimuudatuse järel või regulaarselt (näiteks iga õhtu).
    • Jenkins, GitLab CI, GitHub Actions jms kasutamine.
  6. Aruandlus:

    • Üksikasjalike aruannete koostamine testide tulemustest (näiteks Allure Framework).

Näide Rest-Assured kasutamisest:

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 põhileht
        RestAssured.baseURI = "https://reqres.in/api";

        // GET-päringu saatmine
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Staatuskoodi kontroll
                .body("data.id", equalTo(2))  // Vastuse keha kontroll
                .body("data.first_name", equalTo("Janet"));
    }
}

Python Requests näide:

import requests

def test_get_user_by_id():
    url = "https://reqres.in/api/users/2"
    response = requests.get(url)

    assert response.status_code == 200  # Staatuskoodi kontroll
    data = response.json()
    assert data['data']['id'] == 2  # Vastuse keha kontroll
    assert data['data']['first_name'] == 'Janet'