Middle
API testlarini qanday avtomatlashtirish mumkin?
sobes.tech AI
AIdan javob
API testlarini avtomatlashtirish quyidagi usullar bilan amalga oshirilishi mumkin:
-
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.
-
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.
-
Ma'lumotlarni tekshirish:
- Javobdagi JSON sxemasini validatsiya qilish, uning tuzilishi va ma'lumot turlarini tekshirish.
- Haqiqiy qiymatlarni kutgan qiymatlar bilan solishtirish.
-
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).
-
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.
-
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'