Modul 4 · Python for SDETs

Neqativ &
validasiya testi

Şeyləri qəsdən sındır — və API-nin düzgün cür uğursuz olduğunu assert et

400 / 401 404 / 409 validasiya matrisi baqı xfail et
AI with Rufat
Düşüncə tərzi

Uğurlu yol işlədiyini sübut edir. Neqativ testlər təhlükəsiz uğursuz olduğunu sübut edir.

🎯

Düzgün status

Düzgün səbəbə görə 400 / 401 / 404 / 409 — səhv kod (və ya 500 çökmə) özü baqdır.

💬

Faydalı mesaj

xəta gövdəsi çağırana nəyin səhv getdiyini deyir.

🐛

Baqların yaşadığı yer

test edilməmiş xəta yolları məhz real defektlərin gizləndiyi yerdir.

AI with Rufat
Hər uğursuzluq, statusu

4xx ailəsi

400
Bad Request
çatışmayan / yararsız giriş
401
Unauthorized
səhv kimlik məlumatları
404
Not Found
resurs mövcud deyil
409
Conflict
təkrar / toqquşur
🔒Təhlükəsizlik toxunuşu: səhv parol naməlum email hər ikisi eyni 401 qaytarır — beləcə API hansı email-lərin mövcud olduğunu heç vaxt sızdırmır.
AI with Rufat
Bir test, səhv girişlər cədvəli
@pytest.mark.parametrize(
"payload, expected",
[
(valid, 200), # control
(bad_pw, 401),
(missing, 400),
])
pytest -v
test_login[valid] PASSED
test_login[bad-password] PASSED
test_login[missing] PASSED
Bir valid kontrol sətri saxla — onda uğursuz olan neqativ sətir giriş haqqındadır, sınmış endpoint haqqında yox.
AI with Rufat
API səhv uğursuz olanda

Neqativ test real baqlar tapır

POST təkrar ad → 500 💥
onu kodla: @xfail(strict=True) 409 assert edir
bu gün XFAIL · düzələndə XPASS+uğursuz
🏷️strict=True xfail məlum baqı sənədləşdirir, dəsti bu gün yaşıl saxlayır və düzələn an ucadan uğursuz olur — beləcə köhnəlmiş marker qala bilmir.
AI with Rufat
🛡️

Düzgün cür
uğursuz ol

Statusu dəqiq, mesajı sərbəst assert et — və çökmələri qeydə al

🧪
Məşq
400 / 401 / 404 / 409 tətiklə və hər birini assert et
🏷️
xfail
dup-ad 500-ünü 409 assert edən strict xfail ilə tut
➡️
Modul 5
Test datası quraşdırma & söküş — hər testin vəziyyətini idarə et
AI with Rufat
← / → · space