🛒 Test Shop

Bələdçi

Hansı səhifə hansı funksiyanı yoxlayır və orada nə etmək lazımdır.

🎯 Necə istifadə etməli

  • Vulkan → Converters → Interactive Recorder → domen: host.docker.internal:8080
  • Saytı gəzin, sonra aşağıdakı cədvəldən istədiyiniz ssenarini seçib ayarları tətbiq edin
  • Build JMX → Loader → nəticəni Yazılan data səhifəsində yoxlayın
SsenariSəhifəNə varNə etməliGözlənilən nəticə
Correlation — CSRF (gizli input) /index.php Login formunda gizli csrf_token. Login edin. Correlation siyahısında csrf_token görünməlidir. Söndürüb Build etsəniz test ?err=csrf alır → 302, gözlənilən 200 deyil.
Correlation — CSRF (meta tag) /dashboard.php <meta name="csrf-token"> və X-CSRF-Token header. “Sifariş yarat” düyməsinə basın. Correlation olmasa /api/order.php 403 qaytarır.
Correlation — JSON token /api/auth.php → /api/profile.php JSON cavabında data.access_token. “API login + profil” düyməsinə basın. Correlation olmasa profil 401 verir.
Correlation — __VIEWSTATE /form-token.php Hər yükləmədə dəyişən gizli token. Formanı göndərin. Köhnə token → 403.
Correlation — əl ilə (OTP) /otp.php Kod səhifədə id="otp-code" içindədir. Kodu köçürüb göndərin. Recorder avtomatik tutmur → JMeter Converter-də Regex Extractor əlavə edin. Səhv kod 401.
Data list (CSV Data Set) /index.php İstifadəçi adı və parol sahələri. Data listi yaradın (username,password), sahələrə dəyişən qoyun, 3 thread ilə işlədin. /data.php → “Girişlər” bölməsində üç fərqli istifadəçi görünməlidir.
Random dəyər /register.php Eyni istifadəçi adı ikinci dəfə 409 verir. Ad sahəsinə ${__RandomString(8,abcdefghijklmnopqrstuvwxyz,)} qoyun. Hər iterasiyada yeni ad → hamısı 200. Assertion “200” qoysanız təkrar ad dərhal görünər.
Transaction qrupu /checkout.php Üç addımlı ödəniş: ünvan → çatdırılma → kart. “Davam et” düyməsinə basmazdan əvvəl Ödəniş adlı qrup başladın, sonda bitirin. Hesabatda üç sorğu əvəzinə bir Ödəniş sətri görünür.
Loop Controller /catalog.php?page=2 Səhifələnmiş kataloq. Bir sorğuya Loop = 5 qoyun. JMeter həmin sorğunu hər iterasiyada 5 dəfə göndərir.
Timer (think time) istənilən səhifə Sorğular arası gözləmə. Timer & Loop tabında Uniform 1000 + 500 ms qoyun. JTL-də sorğular arası fasilə 1–1.5 san olur.
Assertion — status kodu /status.php?code=404 İstənilən status kodu qaytarır. Gözlənilən kod “404” yazın. Uğurlu sayılır. “200” yazsanız — fail.
Assertion — mətn /dashboard.php Səhifədə “Xoş gəldiniz” yazısı var. Assertions tabında mətn: Xoş gəldiniz. Login sınsa, 200 gəlsə belə test fail olur.
Assertion — müddət /slow.php?ms=1500 Cavab 1.5 saniyə çəkir. Maksimum müddət: 1000 ms. Test fail olur — SLA yoxlaması budur.
Timeout /slow.php?ms=5000 Çox yavaş cavab. Advanced → Response timeout: 1000. SocketTimeoutException alırsınız.
Xəta faizi /flaky.php?fail=30 30% ehtimalla 500. Loop 20 qoyun. Hesabatda ~30% xəta. Thread Group-da “xətadan sonra davam et” ayarını sınayın.
Rate limit /limited.php 5 sorğudan sonra 429. Loop 10 qoyun. İlk 5 sorğu 200, qalanı 429 → yük altında limit davranışı.
Redirect /redirect.php?n=3 Üç dəfə 302. Follow redirects açıq / bağlı yoxlayın. Bağlı olanda cavab 302 kimi qalır.
Cookie Manager /cookie.php Hər açılışda sayğac artır. “Hər iterasiyada cookie-ləri təmizlə” ayarını açıb-bağlayın. Açıq olanda rəqəm həmişə 1, bağlı olanda artır.
Metodlar (PUT/DELETE) /api/cart.php GET, POST, PUT, DELETE dəstəkləyir. Kabinetdən fetch ilə çağırın və ya JMeter Converter-də metodu dəyişin. Yanlış metod 405 verir.
Basic Auth /basic.php admin / admin123. Header əlavə edin: Authorization: Basic YWRtaW46YWRtaW4xMjM=. Headersiz 401.
Debug /api/echo.php Göndərilən hər şeyi geri qaytarır. Şübhəli sorğunu bura yönləndirin. JMeter-in hansı header və body göndərdiyini dəqiq görürsünüz.
Böyük cavab /heavy.php?kb=300 300 KB mətn. Şəbəkə yükünü ölçün. Hesabatda “Received KB/sec” artır.

Hazır istifadəçilər

İstifadəçiParol
demodemo123
testtest123
anaranar2024
Basic Auth üçün ayrıca: admin / admin123