ݺߣ

ݺߣShare a Scribd company logo
Web aplikacijų
našumo
testavimas
Ričardas Šliapikas
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
Performance
Load
Stress
Soak/Endurance
Spike
Capacity
Configuration
Component
Kodėl testuoti našumą?
Našumo kriterijų atitikimas
Aptikti silpniausias sistemos vietas
Rasti problemas aptinkamas tik prie didelių
apkrovų
Rasti optimalią konfigūraciją
Pamatuoti plėtimo galimybės
Kita
4
Web našumo testavimo principas
5
X
1000
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=/slideshow/ba-performance-testing/55656225/"pic_mountain.jpg" alt="Moun
tain 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 testavimas
Generuojama apkrova:
– Įprasta (kasdieninė)
Dažniausiai matuojama
– Atsako laikas
– Resursų panaudojimas
9
Load testavimas
Generuojama apkrova:
– Numatoma pikinė
Dažniausiai matuojama
– Atsako laikas
– Resursų panaudojimas
10
Endurance/soak testavimas
Generuojama apkrova:
– Įprastinė (kasdieninė)
– Ilgas laiko periodas
(>12h)
Dažniausiai matuojama
– Klaidos
– Resursų panaudojimas
11
Stress testavimas
Generuojama apkrova:
– Didesnė nei numatoma
pikinė
Dažniausiai matuojama
– Klaidos
– Resursų panaudojimas
12
Spike testavimas
Generuojama apkrova:
– Staigus ir didelis
apkrovos šuolis
Dažniausiai matuojama
– Klaidos
– Ar sistema veikia
13
Capacity/scalability testavimas
Generuojama apkrova:
– Didėjanti
Daž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 testavimas
Generuojama 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
15
Našumo testavimas vaizdžiai
16
Komponentų testavimas
Generuojama apkrova:
– Dažnai maksimali
Daž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
Našumo testavimo procesas
18
Reikalavimai
Scenarijų/script‘ų ruošimas ir vykdymas
Ataskaita
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
Ataskaita
29
Ataskaita
30
Ataskaita
31
Patogumas,
funkcionalumas
32
Našumas
Ką 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
Ačiū!
35
KLAUSIMAI?
36

More Related Content

BA Performance Testing