Postman və Newman İlə REST API Testi: Praktiki Bələdçi və Skriptlər
Müasir mikroservis və bulud arxitekturalarında istifadəçi interfeysi (UI) yalnız aysberqin görünən tərəfidir. Əsas biznes məntiqi və məlumat axını RESTful API-lər vasitəsilə idarə olunur. Bu bələdçidə Postman və Newman vasitəsilə peşəkar API testlərinin yazılmasını və avtomatlaşdırılmasını öyrənəcəksiniz.
1. REST API Testinin Əsas Komponentləri və HTTP Metodları
Hər bir REST API sorğusu 4 əsas komponentdən ibarətdir: Endpoint URL, HTTP Metod (GET, POST, PUT, DELETE, PATCH), Headers (Content-Type, Authorization) və Request Body.
2. Postman-də JavaScript İlə Dinamik Test Skriptlərinin Yazılması
Postman daxili Tests sekmesində JavaScript və Chai Assertion kitabxanasından istifadə edərək kompleks yoxlamalar apara bilərsiniz:
// 1. Status kodunun 200 OK olduğunu yoxla
pm.test("Status code is 200 OK", function () {
pm.response.to.have.status(200);
});
// 2. Cavab müddətinin 500ms-dən az olduğunu yoxla (SLA)
pm.test("Response time is below 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
// 3. JSON cavab strukturunu və sahələri yoxla
pm.test("Validate User Payload Data", function () {
const jsonData = pm.response.json();
pm.expect(jsonData).to.have.property("id");
pm.expect(jsonData.email).to.be.a("string");
pm.expect(jsonData.status).to.eql("active");
});
3. API Zəncirləri (Chaining) və Dinamik Dəyişənlər
Real layihələrdə autentifikasiya tokeni (Bearer JWT) /api/login sorğusundan əldə edilir və növbəti bütün qorunan sorğularda istifadə olunur:
// /api/auth/login sorğusunun Tests sekmesində:
const res = pm.response.json();
if (res.token) {
pm.environment.set("authToken", res.token);
pm.environment.set("userId", res.user.id);
console.log("Token uğurla mühit dəyişəninə yazıldı:", res.token);
}
4. Newman İlə CLI və CI/CD Boru Kəmərində Avtomatlaşdırma
Postman kolleksiyalarını terminalda və ya GitHub Actions/Jenkins CI/CD mühitində Newman vasitəsilə icra edə bilərsiniz:
# Newman quraşdırılması npm install -g newman newman-reporter-htmlextra # Kolleksiyanın mühit faylı ilə icrası və HTML hesabatın yaradılması newman run QA_Academy_APIs.json -e Production_Env.json --reporters cli,htmlextra --reporter-htmlextra-export ./reports/api_report.html
Tez-tez Verilən Suallar (FAQ)
Postman ilə SOAP API-ləri test etmək mümkündürmü?
Bəli, Postman HTTP POST metodu və XML body formatı vasitəsilə SOAP API-ləri test etməyi tam dəstəkləyir.
Postman Environment və Global dəyişənlər arasındakı fərq nədir?
Global dəyişənlər bütün kolleksiyalarda əlçatan olur, Environment dəyişənləri isə yalnız seçilmiş xüsusi mühitdə (məs: Dev, Staging, Prod) aktivdir.
API cavabının JSON sxemasını necə avtomatlaşdıra bilərəm?
Postman-də `tv4` və ya `ajv` kitabxanalarından istifadə edərək JSON Schema Definition hazırlayıb strukturun tam uyğunluğunu tək sətirdə yoxlamaq mümkündür.