Sobes.tech
Middle

API testlarini qanday avtomatlashtirish mumkin?

sobes.tech AI

AIdan javob

API testlarini avtomatlashtirish quyidagi usullar bilan amalga oshirilishi mumkin:

  1. Frameworklar/kitobxonalar ishlatish:

    • Rest-Assured (Java): REST APIlarni test qilish uchun mashhur kutubxona.
    • Requests (Python): Oddiy va kuchli HTTP so'rovlar kutubxonasi.
    • SuperTest (Node.js): HTTP serverlar va APIlarni test qilish uchun kutubxona.
    • Postman/Newman: GUI va CLI bilan API testlarini yaratish va ishga tushirish uchun dasturlar.
  2. Test ssenariylarini yaratish:

    • Har bir endpoint uchun ijobiy va salbiy test holatlari aniqlanadi.
    • Ssenariylar turli parametrlar bilan so'rov yuborishni, javob holat kodlarini, javob matnini (JSON, XML va boshqalar) va sarlavhalarni tekshirishni o'z ichiga oladi.
  3. Ma'lumotlarni tekshirish:

    • Javobdagi JSON sxemasini validatsiya qilish, uning tuzilishi va ma'lumot turlarini tekshirish.
    • Haqiqiy qiymatlarni kutgan qiymatlar bilan solishtirish.
  4. Ma'lumotlarni boshqarish:

    • Test ma'lumotlarini fayllarda (JSON, CSV) yoki ma'lumotlar bazalarida saqlash.
    • Testdan oldin ma'lumotlarni tayyorlash va testdan keyin tozalash (zarur bo'lsa).
  5. CI/CD tizimlari bilan integratsiya:

    • Har bir kod o'zgarishi yoki muntazam ravishda API testlarini avtomatik ishga tushirish.
    • Jenkins, GitLab CI, GitHub Actions va boshqalarni ishlatish.
  6. Hisobotlar:

    • Test natijalari haqida batafsil hisobotlar tayyorlash (masalan, Allure Framework).

Rest-Assured dan foydalanish misoli:

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

        // GET so'rov yuborish
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Javob kodini tekshirish
                .body("data.id", equalTo(2))  // Javob matnidagi qiymatni tekshirish
                .body("data.first_name", equalTo("Janet"));
    }
}

Requests (Python) dan foydalanish misoli:

import requests

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

    assert response.status_code == 200  # Javob kodini tekshirish
    data = response.json()
    assert data['data']['id'] == 2  # Javob matnidagi qiymatni tekshirish
    assert data['data']['first_name'] == 'Janet'