ba performance testing
TRANSCRIPT
Web našumo testavimo veikimo principas
Našumo testavimo tipai: performance, load, stress ir t.t.
Procesas: reikalavimai, vykdymas, ataskaita
2
Klausimai
Našumo testavimas
3
Našumo testavimas
PerformanceLoadStressSoak/EnduranceSpike
CapacityConfigurationComponent
Kodėl testuoti našumą?Našumo kriterijų atitikimasAptikti silpniausias sistemos vietasRasti problemas aptinkamas tik prie didelių apkrovųRasti optimalią konfigūracijąPamatuoti plėtimo galimybėsKita
4
Naršyklės veikimo principas
6
HTTP GET/POST (turinys)
HTTP OK 200<!DOCTYPE html>
<html><head>
<title>Page Title</title></head><body>
<link rel="stylesheet" href="styles.css">
<img src="pic_mountain.jpg" alt="Mountain View" >
HTTP GET (paveikslėliai, css, js)HTTP OK 200
7
Našumo testavimo tipai• Realių situacijų
simuliavimas– Performance, load,
stress, capacity
• Sintetiniai testai– Component– Configuration
8
Performance testavimasGeneruojama apkrova:
– Įprasta (kasdieninė)Dažniausiai matuojama
– Atsako laikas– Resursų panaudojimas
9
Load testavimasGeneruojama apkrova:
– Numatoma pikinėDažniausiai matuojama
– Atsako laikas– Resursų panaudojimas
10
Endurance/soak testavimasGeneruojama apkrova:
– Įprastinė (kasdieninė)– Ilgas laiko periodas
(>12h)
Dažniausiai matuojama– Klaidos– Resursų panaudojimas
11
Stress testavimasGeneruojama apkrova:
– Didesnė nei numatoma pikinė
Dažniausiai matuojama– Klaidos– Resursų panaudojimas
12
Spike testavimasGeneruojama apkrova:
– Staigus ir didelis apkrovos šuolis
Dažniausiai matuojama– Klaidos– Ar sistema veikia
13
Capacity/scalability testavimasGeneruojama apkrova:
– DidėjantiDažniausiai matuojama
– Atsako laikas, resursų panaudojimas
– Kokią apkrovą sistema gali atlaikyti ir vis dar pasiekti reikiamus rodiklius
– Padeda nuspręsti ar reikia padidinti/sumažinti sistemos resursus
14
Configuration testavimasGeneruojama apkrova:
– Kintanti– Keičiami sistemos
nustatymai (DB, HTTP serverio, cache ir pan.)
Dažniausiai matuojama– Atsako laikas, resursų
panaudojimas
– Ieškoma geriausiai tinkančios konfigūracijos
16
Komponentų testavimasGeneruojama apkrova:
– Dažnai maksimaliDažniausiai matuojama
– Transakcijos per sekundę– Atsako laikas
– Izoliuoti rezultatai praktinės reikšmės dažnai neturi
Komponentų testavimas
17
• Kada naudingas komponentų testavimas?– Patogu stebėti komponento
našumo kitimą laike– Galima palyginti su
konkurentais/analogiškais komponentais
– Patogu naudoti kai sudėtinga sugeneruoti dideles realiais apkrovas
19
Reikalavimai• „Sistema turi
užtikrinti spartų vartotojų darbą“
• „Reikia ištestuoti našumą“
• „Visi puslapiai turi užsikrauti greičiau nei per 2 sekundes“
• Kas yra „spartus“? Kiek vartotojų? Ką jie sistemoje veikia?
• Kokie yra sėkmingo ir nesėkmingo našumo testo kriterijai?
• Jau geriau...
20
Baziniai reikalavimai• Vartotojų skaičius
– Įprastinis, pikinis• Dažniausiai
naudojamos funkcijos• Atsako laikas
– Vidutinis arba procentinis (90%, 95%, 99%)
• Kritinės funkcijos• Papildomi
reikalavimai– Spike– Capacity– Stress
Papildomai
Scenarijų/script‘ų rengimo iššūkiai
21
• Artimi realiems scenarijai• Infrastruktūros apribojimai
– Išorinės sistemos– Hardware resursai– Tinklas
Artimi realiems scenarijai• Skirtingi vartotojų
prisijungimai• Think time• Skirtingi vartotojų
tipai/profiliai• Kiek įmanoma dinamiški
scenarijai– Skirtingi produktai, skirtingi
paieškos kriterijai ir pan.22
Artimi realiems scenarijai• Konsultuotis su
sistemos ekspertais
• Fokusuotis į pagrindines funkcijas
• Pakankama testo vykdymo trukmė
23
Infrastruktūra: Išorinės sistemos• Nenaudoti jeigu įmanoma
– Pakeisti fake‘ais
• Riboti scenarijus, nenaudoti duomenų analizei
• Planuoti papildomą rezultatų skaičiavimą
24
Infrastruktūra: Hardware resursai• Resursai apkrovai sugeneruoti
– Gali prireikti ne vienos mašinos• Resursai aplinkos kurioje aliekami
testai– Artimi gamybinei aplinkai
25
Infrastruktūra: Tinklas• Pralaidumas
– Tiesioginis kabelis į serverį• Firewall konfigūracija• Load balancer‘iai
– IP Spoofing
26
Ataskaita• Kam skirta?
– Vidinė– Kliento tech. personalui– Kliento verslo personalui– Konkrečiam sprendimui
priimti
27
Ataskaita• Kas turėtų būti ataskaitoje?
– Našumo reikalavimai– Testavimo aplinkos
parametrai, naudojami įrankiai
– Prielaidos ir apribojimai– Scenarijai ir rezultatai– Išvados, rekomendacijos– Grafinė informacija
28
Patogumas, funkcionalumas
32
NašumasKą naudoti?
• Apache JMeter• HP Load Runner• MS Visual Studio• Neoload• Telerik Test Studio• WebLoad
• ApacheBench• YandexTank• Gattling
Kada testuoti našumą?• Kai sistema yra artima gamybinei versijai
– Projekto/release pabaigoje
• Gali būti per vėlu– Pataisymai ilgai užtruks– Pataisymai įtakos visą sistemą– Reikės daug regresinio testavimo
33
34
Kitas kampas• Našumo testavimas
– Atliekamas projekto/release pabaigoje, kai sistema artimai gamybinei versijai
– Testai imituojantys tikrus vartotojus
• Našumo stebėjimas– Atliekamas nuolatos
(per CI)– Sintetiniai testai,
tikrinantys tam tikras funkcijas
– Istorinių duomenų palyginimas