Middle
Veb xidməti necə yoxlayacaqsınız?
sobes.tech Süni İntellekt
AI-dan cavab
Veb xidməti yoxlaması bir neçə əsas mərhələ və test növünü əhatə edir:
-
Tələblərin və spesifikasiyaların başa düşülməsi:
- Sənədləşmənin öyrənilməsi (Swagger/OpenAPI, WSDL, funksional spesifikasiyalar).
- İnkişaf komandası və ya biznes analitiklərlə anlaşılmaz nöqtələrin aydınlaşdırılması.
-
Test planlaşdırılması:
- Test strategiyasının müəyyənləşdirilməsi.
- Test metodlarının və alətlərinin seçilməsi.
- Test məlumatlarının həcminin planlaşdırılması.
-
Funksional testlər:
- Müsbət ssenarilər: Düzgün giriş məlumatları ilə gözlənilən davranışın yoxlanması.
- Mənfi ssenarilər: Yanlış məlumatların, səhvlərin və sərhəd dəyərlərinin işlənməsinin yoxlanması.
- Bütün əməliyyatların (GET, POST, PUT, DELETE və s.) test edilməsi.
- Sorğuların və cavabların strukturunun yoxlanması (JSON, XML).
- HTTP status kodlarının yoxlanması (2xx - uğur, 4xx - müştəri səhvi, 5xx - server səhvi).
- Serverin işləməsi zamanı yenidən başlatmaq (mənfi ssenarilər üçün).
-
İnteqrasiya testləri:
- Veb xidməti ilə digər xidmətlər və ya sistemlər arasındakı qarşılıqlı əlaqənin yoxlanması.
- Asılı xidmətlərin cavablarını emulyasiya edə bilən alətlərin istifadəsi (mock-serverlər).
-
Performans testləri:
- Yük testləri: Xidmətin gözlənilən yüklə davranışının yoxlanması.
- Stress testləri: Gözlənilən yüklədən daha yüksək yüklə işləmənin yoxlanması və uğursuzluq nöqtəsinin müəyyənləşdirilməsi.
- Stabilik testləri (Endurance testing): Xidmətin uzun müddət yüklə işləməsinin yoxlanması.
- Cavab vaxtı və ötürmə qabiliyyətinin ölçülməsi.
-
Təhlükəsizlik testləri:
- Doğrulama və icazənin yoxlanması.
- SQL injection, XSS və digər zəifliklərin qarşısını almaq üçün girişlərin yoxlanması.
- HTTPS-nin mövcudluğunun yoxlanması.
-
Məlumatların testləri:
- Xidmət tərəfindən qaytarılan məlumatların düzgünlüyünün yoxlanması.
- Yaratma, yeniləmə və silmə əməliyyatlarında məlumatların bütövlüyünün yoxlanması.
- Böyük həcmdə məlumatlarla işləmə testləri.
-
Testlərin avtomatlaşdırılması:
- Rutini funksional testlərin avtomatlaşdırılması.
- API testləri üçün kitabxanaların və çərçivələrin istifadəsi (Rest Assured, JUnit/TestNG, Pytest, Postman Newman).
- Avtomatik testlərin işlədilməsi üçün CI/CD konfiqurasiyası.
-
Alətlər:
- Postman, Insomnia (əllə və avtomatlaşdırılmış testlər).
- Apache JMeter, LoadRunner, Gatling (performans testləri).
- OWASP ZAP, Burp Suite (təhlükəsizlik testləri).
- Proqramlaşdırma dilləri üçün kitabxanalar (Java üçün Rest Assured, Python üçün Requests və s.).
-
Hesabat:
- Tapılan defektlərin qeydiyyatı və təfərrüatlı izahı, təkrarlanma addımları, gözlənilən və faktiki nəticələr, sorğu/cavab məlumatları, HTTP status və loglar.
- Testlərin gedişatı haqqında hesabatların hazırlanması.
Rest Assured istifadə edilən Java üçün avtomatlaşdırılmış test nümunəsi:
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;
class UserServiceTest {
@Test
void testGetUserById() {
int userId = 1;
given()
.baseUri("http://api.example.com") // Xidmətin əsas URL-i
.when()
.get("/users/" + userId) // Metod və endpoint
.then()
.statusCode(200) // Status kodunun yoxlanması
.body("id", equalTo(userId)) // Cavab bədənində sahənin yoxlanması
.body("name", equalTo("John Doe")); // Digər sahənin yoxlanması
}
@Test
void testCreateUser() {
String requestBody = "{\n" +
" \"name\": \"Jane Smith\",\n" +
" \"email\": \"jane.smith@example.com\"\n" +
"}";
given()
.baseUri("http://api.example.com")
.contentType("application/json") // Məzmun növünün təyin edilməsi
.body(requestBody) // Sorğu bədəninin göndərilməsi
.when()
.post("/users") // Yaratmaq üçün metod və endpoint
.then()
.statusCode(201) // "Yaradıldı" status kodunun yoxlanması
.body("name", equalTo("Jane Smith"))
.body("id", org.hamcrest.Matchers.notNullValue()); // Yaradılan ID-nin yoxlanması
}
}