Sobes.tech
Middle

Kā jūs varat automatizēt API testēšanu?

sobes.tech AI

Atbilde no AI

API testēšanas automatizācija var tikt veikta šādi:

  1. Rāmi/bibliotēku izmantošana:

    • Rest-Assured (Java): Populāra bibliotēka REST API testēšanai.
    • Requests (Python): Vienkārša un jaudīga bibliotēka HTTP pieprasījumu veikšanai.
    • SuperTest (Node.js): Bibliotēka HTTP serveru un API testēšanai.
    • Postman/Newman: Programmas ar GUI un CLI, lai izveidotu un palaistu API testus.
  2. Testu scenāriju izveide:

    • Katram galapunktam tiek definēti pozitīvi un negatīvi gadījumi.
    • Scenāriji ietver pieprasījumu sūtīšanu ar dažādiem parametriem, atbilžu statusa kodu pārbaudi, satura (JSON, XML utt.) un galvenes pārbaudi.
  3. Datu pārbaude:

    • JSON shēmas validācija, pārbaudot struktūru un datu tipus.
    • Faktisko vērtību salīdzināšana ar gaidītajām.
  4. Datu pārvaldība:

    • Testu datu izmantošana, kas ir saglabāta failos (JSON, CSV) vai datu bāzēs.
    • Datu sagatavošana pirms testa un tīrīšana pēc tā (ja nepieciešams).
  5. Integrācija ar CI/CD sistēmām:

    • Automātiska API testu palaišana pēc katras koda izmaiņas vai regulāri (piemēram, katru vakaru).
    • Jenkins, GitLab CI, GitHub Actions utt.
  6. Ziņošana:

    • Detalētu ziņojumu ģenerēšana par testu rezultātiem (piemēram, Allure Framework).

Rest-Assured piemērs:

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

        // GET pieprasījuma sūtīšana
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Statusa koda pārbaude
                .body("data.id", equalTo(2))  // Atbildes ķermeņa vērtības pārbaude
                .body("data.first_name", equalTo("Janet"));
    }
}

Python Requests piemērs:

import requests

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

    assert response.status_code == 200  # Statusa koda pārbaude
    data = response.json()
    assert data['data']['id'] == 2  # Atbildes ķermeņa vērtības pārbaude
    assert data['data']['first_name'] == 'Janet'