ba performance testing

36
Web aplikacijų našumo testavimas Ričardas Šliapikas

Upload: ricardas-sliapikas

Post on 20-Feb-2017

99 views

Category:

Documents


0 download

TRANSCRIPT

Web aplikacijų našumo testavimasRič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

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

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="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

15

Našumo testavimas vaizdžiai

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

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š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

Ačiū!

35

KLAUSIMAI?

36