Sparround

Performans testinin əsasları

Automation QA-dan performans mühəndisi olmaq gözlənilmir, amma terminologiyanı bilmək və QA-nın rolunu izah edə bilmək middle səviyyəsində gözləntidir.

Yük testinin əsas növləri:

  • Load test — gözlənilən yük altında davranış (məs. 500 eyni vaxtlı istifadəçi): cavab müddəti SLA-ya uyğundurmu?
  • Stress test — sistemi qırılma nöqtəsinə qədər sıxmaq: harada və NECƏ sınır (səliqəli degradasiya, yoxsa tam çöküş)?
  • Spike test — yükün qəfil sıçrayışı (marketinq kampaniyası, bilet satışının açılması)
  • Soak/endurance test — uzunmüddətli sabit yük: yaddaş sızması, resurs tükənməsi görünür

Alətlər: k6 (JS ilə skript yazılır — JS bilən QA üçün ən təbii seçim, CI-a asan qoşulur), JMeter (köhnə, GUI-li, plagin ekosistemi geniş, enterprise-də yayğın), Gatling (Scala/Java). Bunlar protokol səviyyəsində işləyir — brauzer açmadan minlərlə HTTP sorğusu göndərir; məhz buna görə miqyaslana bilir.

Burada kritik ayrım var: Playwright yük testi aləti deyil. 500 brauzer instansiyası açmaq mümkün deyil (hər biri yüzlərlə MB yaddaş yeyir) və bu, yanlış modeldir.

Frontend performansı isə tamamilə ayrı sahədir və burada QA-nın rolu daha birbaşadır. Ölçü vahidi — Core Web Vitals:

  • LCP (Largest Contentful Paint) — ən böyük məzmun elementinin görünmə vaxtı; "səhifə açıldı" hissinin ölçüsü. Yaxşı: ≤2.5s
  • INP (Interaction to Next Paint) — istifadəçi qarşılıqlı təsirinə cavab müddəti (2024-də FID-i əvəz etdi). Yaxşı: ≤200ms
  • CLS (Cumulative Layout Shift) — layout-un yüklənmə zamanı sıçraması; "düyməyə basdım, o yerini dəyişdi" problemi. Yaxşı: ≤0.1

Lighthouse CI bu metrikaları pipeline-da avtomatik ölçür və performance budget qoymağa imkan verir: LCP 2.5s-i keçsə, PR bloklanır. Bu, performansın "sonra baxarıq" kateqoriyasından çıxıb regressiya nəzarətinə düşməsidir — və bu, QA-nın təbii sahəsidir.

QA-nın rolu (interview-da bunu aydın ifadə et): mən performans mühəndisi deyiləm, amma (1) performans tələblərinin ölçülə bilən şəkildə formalaşdırılmasını təmin edirəm ("sürətli olsun" yox, "axtarış nəticəsi p95 < 1.5s"); (2) Lighthouse CI-ı pipeline-a qoşuram və budget-i saxlayıram; (3) funksional testlərdə açıq performans regressiyalarını görürəm (suite müddətinin qəfil artması çox vaxt məhsulun yavaşlamasının siqnalıdır); (4) ciddi yük testi lazım olanda tələbi formalaşdırıb performans komandası/mütəxəssisi ilə işləyirəm.

SualUI testi cavab verə bilir?Düzgün alət
Səhifə tək istifadəçi üçün nə qədər tez açılır?Qismən — indikativ ölçü kimiLighthouse CI (daha dəqiq və müqayisə oluna bilən)
500 eyni vaxtlı istifadəçidə sistem dayanırmı?Xeyrk6 / JMeter — protokol səviyyəli yük
LCP son release-dən sonra pisləşibmi?QismənLighthouse CI + performance budget
24 saatlıq yükdə yaddaş sızması varmı?XeyrSoak test + serverin monitorinqi (APM)
Düymə basıldıqdan sonra UI donurmu?Bəli — funksional test bunu tuturPlaywright (assertion timeout-u siqnal verir)

İnterview-da ən çox səhv edilən yer: "Performansı Playwright ilə ölçürəm, çünki test 3 saniyə çəkir" cavabı. Bu, ölçmə deyil — CI maşınının yükündən, şəbəkədən və paralel worker sayından asılı, təkrarlanmayan bir rəqəmdir. Düzgün mövqe: Playwright indikator verir, ölçü aləti Lighthouse/k6-dır. Bu ayrımı bilmək "terminləri eşidib" ilə "sahəni başa düşür" arasındakı fərqdir.

📚 Mənbələr və sənədlər