Bosh sahifa Wiki Browser testing

Browser testing

Browser testing — veb-ilovaning browser rendering engine, DOM, JavaScript, CSS, storage va foydalanuvchi interactionlari bilan birga ishlashini tekshirish jarayoni. U qo‘lda yoki Playwright, Selenium va WebDriver kabi avtomatlashtirish vositalari bilan bajariladi. API test server javobini tasdiqlasa, browser test foydalanuvchi ko‘radigan sahifa shu javobni to‘g‘ri ishlatishini ko‘rsatadi.

Browser matritsasi

Chrome va Edge Chromium engine, Firefox Gecko, Safari esa WebKitdan foydalanadi. Bir engine’da ishlagan CSS, codec, date parser yoki permission oqimi boshqasida farq qilishi mumkin. Desktop va mobile browser viewportdan tashqari touch, virtual keyboard, memory va OS integratsiyasida ham farqlanadi.

Har browser–OS–version kombinatsiyasini test qilish qimmat. Analytics va qo‘llab-quvvatlash policy asosida asosiy matritsa tuziladi. PRda bitta tez browser, nightly yoki release’da to‘liq cross-browser suite ishlashi mumkin. Faqat headless mode real GPU, font va permission farqlarini to‘liq ko‘rsatmaydi.

Selektor va interaction

Test elementni accessibility role, label yoki barqaror test ID bilan topadi. Bu foydalanuvchi semantikasiga yaqin va CSS class refactoriga chidamli. Bir xil role’li elementlar bo‘lsa name bilan aniqlanadi. Hidden elementni force-click qilish real foydalanuvchi muammosini yashirishi mumkin.

Framework auto-wait element visible, enabled va stable bo‘lishini kutadi. Arbitrary sleep testni sekin va flaky qiladi. Drag-and-drop, file upload, clipboard va popup browser API’siga mos usulda bajariladi. JavaScript bilan to‘g‘ridan-to‘g‘ri DOM click real pointer hit-testingni chetlab o‘tadi.

Network boshqaruvi

Test requestni intercept qilib xato, sekinlik yoki ma’lum fixture response qaytarishi mumkin. Bu frontend edge case’ni deterministic tekshiradi, lekin real backend contractini sinamaydi. Bir qism suite real staging API bilan integrationni qoplaydi.

Offline, yuqori latency va packet loss holatlari loading, retry va cached UI’ni tekshiradi. Request tugaganini kutish uchun faqat “network idle” ba’zi analytics yoki WebSocket sahifada hech qachon yuz bermasligi mumkin; maqsadli response yoki UI state kutiladi.

Visual regression

Screenshot test current renderni approved baseline bilan pixel yoki perceptual farq asosida solishtiradi. Font, anti-aliasing, GPU va OS farqi shovqin yaratadi; containerized font va barqaror viewport ishlatiladi. Dynamic vaqt, avatar va animatsiya maskalanadi yoki muzlatiladi.

Snapshot farqi avtomatik xato yoki to‘g‘ri dizayn deb qabul qilinmaydi. Reviewer tasvirni ko‘rib baseline update’ni tasdiqlaydi. Accessibility test contrast, name va keyboard muammolarini topadi; screenshot uning o‘rnini bosmaydi.

Sessiya va izolyatsiya

Har test yangi browser context bilan cookie, localStorage va cache’ni izolyatsiya qiladi. Login storage state’ni qayta ishlatish suite’ni tezlashtiradi, ammo expiry va permission testlarini yashirmasligi kerak. Yuqori vakolatli session artefakti CI logiga yoki screenshotga tushmaydi.

Parallel testlar alohida user va data yaratadi. Bir account bilan bir vaqtda parol yoki savat o‘zgartirish testlarni bog‘laydi. Cleanup API orqali bajarilishi mumkin, lekin test muvaffaqiyatsiz bo‘lganda diagnostika uchun data ID saqlanadi.

Artefaktlar

Failure’da screenshot, video, DOM snapshot, console log va network trace olinadi. Console error testning o‘z assertionidan alohida signal bo‘lishi mumkin. Har uchinchi tomon warningi testni yiqitmasligi uchun allowlist aniq va vaqtinchalik yuritiladi.

Trace token, cookie va form secretlarini maskalaydi. Artefakt retention CI access policy’siga mos bo‘ladi. Test natijasida browser, OS, viewport, locale va timezone qayd etilib, failure qayta ishlab bo‘ladigan qilinadi.

Bog‘liq tushunchalar

WebDriver, Playwright, Cross-browser testing, Visual regression, End-to-End testing, DOM, Accessibility testing