Sobes.tech
Middle

API тесттерин автоматташтыруу үчүн кантип жасай аласыз?

sobes.tech AI

AIден жооп

API сынактары автоматташтыруу төмөнкү жолдор менен жүргүзүлүшү мүмкүн:

  1. Фреймворк/кітапханаларды колдонуу:

    • Rest-Assured (Java): REST API сынагы үчүн популярдуу китепкана.
    • Requests (Python): HTTP суроолорду аткаруу үчүн жөнөкөй жана күчтүү китепкана.
    • SuperTest (Node.js): HTTP серверлер жана API сынагы үчүн китепкана.
    • Postman/Newman: GUI жана CLI колдонмолору API тесттерин түзүү жана иштетүү үчүн.
  2. Сынак сценарийлерин түзүү:

    • Ар бир акыркы чекит үчүн позитивдүү жана негативдүү учурлар аныкталат.
    • Сценарийлер суроолорду ар кандай параметрлер менен жөнөтүү, жооптордун статустук коддорун, мазмунун (JSON, XML жана башка) жана башталыштарды текшерүүнү камтыйт.
  3. Маалыматтарды текшерүү:

    • JSON схемасын валидациялоо, структурасы жана маалымат түрлөрү текшерилет.
    • Чындык маанилерди күтүлгөндөр менен салыштыруу.
  4. Маалыматтарды башкаруу:

    • Тест маалыматтарын файлдарда (JSON, CSV) же базаларда сактоо.
    • Тесттен мурун жана андан кийин маалыматтарды даярдоо жана тазалоо (керек болсо).
  5. CI/CD системалары менен интеграция:

    • Ар бир өзгөртүүдөн кийин автоматташтырылган API тесттерин иштетүү, же туруктуу (мисалы, ар бир кечинде).
    • Jenkins, GitLab CI, GitHub Actions жана башка колдонуу.
  6. Отчеттуулук:

    • Тесттердин жыйынтыктары боюнча толук отчетторду түзүү (мисалы, Allure Framework).

Rest-Assured колдонуу мисалы:

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 негизги URL
        RestAssured.baseURI = "https://reqres.in/api";

        // GET суроо жөнөтүү
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Статус кодду текшерүү
                .body("data.id", equalTo(2))  // Жооптун денесиндеги маанини текшерүү
                .body("data.first_name", equalTo("Janet"));
    }
}

Python Requests колдонуу мисалы:

import requests

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

    assert response.status_code == 200  # Статус кодду текшерүү
    data = response.json()
    assert data['data']['id'] == 2  # Жооптун денесиндеги маанини текшерүү
    assert data['data']['first_name'] == 'Janet'