Middle
API тесттерин автоматташтыруу үчүн кантип жасай аласыз?
sobes.tech AI
AIден жооп
API сынактары автоматташтыруу төмөнкү жолдор менен жүргүзүлүшү мүмкүн:
-
Фреймворк/кітапханаларды колдонуу:
- Rest-Assured (Java): REST API сынагы үчүн популярдуу китепкана.
- Requests (Python): HTTP суроолорду аткаруу үчүн жөнөкөй жана күчтүү китепкана.
- SuperTest (Node.js): HTTP серверлер жана API сынагы үчүн китепкана.
- Postman/Newman: GUI жана CLI колдонмолору API тесттерин түзүү жана иштетүү үчүн.
-
Сынак сценарийлерин түзүү:
- Ар бир акыркы чекит үчүн позитивдүү жана негативдүү учурлар аныкталат.
- Сценарийлер суроолорду ар кандай параметрлер менен жөнөтүү, жооптордун статустук коддорун, мазмунун (JSON, XML жана башка) жана башталыштарды текшерүүнү камтыйт.
-
Маалыматтарды текшерүү:
- JSON схемасын валидациялоо, структурасы жана маалымат түрлөрү текшерилет.
- Чындык маанилерди күтүлгөндөр менен салыштыруу.
-
Маалыматтарды башкаруу:
- Тест маалыматтарын файлдарда (JSON, CSV) же базаларда сактоо.
- Тесттен мурун жана андан кийин маалыматтарды даярдоо жана тазалоо (керек болсо).
-
CI/CD системалары менен интеграция:
- Ар бир өзгөртүүдөн кийин автоматташтырылган API тесттерин иштетүү, же туруктуу (мисалы, ар бир кечинде).
- Jenkins, GitLab CI, GitHub Actions жана башка колдонуу.
-
Отчеттуулук:
- Тесттердин жыйынтыктары боюнча толук отчетторду түзүү (мисалы, 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'