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'