Sjabloan foar prestaasjetestplan

In sjabloan foar prestaasjetestplan dat kin wurde brûkt sa't it is of oanpast oan jo projektbehoeften yn termen fan prestaasjeseasken.



1. Doel

It doel fan dizze seksje is om in heech oersjoch te jaan fan 'e oanpak fan prestaasjetests dy't folge wurde moat foar de projekt. Dit moat wurde presintearre oan alle relevante belanghawwenden en moat wurde besprutsen om konsensus te krijen.



2. Ynlieding

As ûnderdiel fan 'e levering fan' e is it fereaske dat de oplossing foldocht oan de akseptaasjekritearia, sawol yn termen fan funksjoneel as net-funksjonele gebieten. It doel fan dit dokumint is om in skets te jaan foar net-funksjonele testen fan de oplossing.


Dit dokumint behannelt it folgjende:

  • Yntree- en útgongskriteria
  • Omjouwingseasken
  • Oanpak foar folume en prestaasjetest
  • Prestaasjetestaktiviteiten


3. Yntree kritearia

De folgjende wurkitems moatte foarôf wêze foltôge / oerienkommen om troch te gean mei de eigentlike prestaasjetestaktiviteiten:


  • Net-funksjoneel testeasken dokumint levere troch , mei as kwantifisearre NFR's
  • De krityske gebrûksaken moatte funksjoneel wurde hifke en sûnder krityske bugs
  • Untwerp arsjitektoaryske diagrammen goedkard en beskikber
  • Key use-cases binne definieare en omfette
  • Prestaasjetestsoarten ôfpraat
  • Laad ynjektors ynstelle
  • Elke gegevensopset nedich - bgl. Passend oantal brûkers oanmakke yn


4. Útgongskriteria

De aktiviteitstestaktiviteit sil wurde foltôge as:

  • De NFR-doelen binne helle en prestaasjetestresultaten binne presintearre oan it team en goedkard.


5. Omjouwingseasken

De prestaasjetests wurde útfierd tsjin in stabile ferzje fan de oplossing (dy't al de funksjonele tests hat trochjûn) en útfierd op in tawiide produksje-lykas omjouwing (foarprodusint?) tawiisd foar prestaasjetests sûnder ynsetten op dy omjouwing yn 'e rin fan' e prestaasjetests.

5.1 Load Injektors

D'r sil ien as mear 'load-ynjektors' wijd wêze om de fereaske lading te begjinnen foar prestaasjetests. De ladinginjektor kin in VM wêze as meardere VM's dy't in eksimplaar hawwe fan JMeter dy't rint, wêrtroch de fersiken begjinne.

5.2 Test ark

Testtools brûkt foar folume- en prestaasjetests sille wêze:


5.2.1 JMeter

In ark foar iepen boarne foar lêstest. Foaral brûkt foar testen fan folume en prestaasjes.

5.2.2 Splunk

Splunk sil brûkt wurde foar loggen (Koe in oar ark brûke - moatte befestigje mei it perf testteam).



6. Oanpak folume- en prestaasjetest

De oplossing moat performant genôch wêze om de folgjende laden kritearia te behearjen.

N.B. De getallen yn 'e folgjende tabel binne allinich foar foarbyld - echte wearden moatte wurde ynfoege as se finalisearre binne troch NFR dokumint.


6.1 Doeltsjinstvoluminten

Uerdoelen wurde ûntdutsen út 'e hjoeddeistige oplossing foar [Y2019]. Wiske oare 'foarbyld'-wearden fan plannemal.

Sûnt pykwearden op 'e oere binne net heech, sille se wurde nommen as doelwyt foar fêste ladingstest. Skaalfergrutting is no TBD.

6.2 Oantal brûkers

Prestaasjetests sille rinne mei maksimaal 1000 [?] Brûkers. De brûkers wurde oanmakke yn foarôf en wêze tagonklik fia Oanmelde API. Elk fersyk sil ynlogge mei ferskate brûkersID.

6.3 Bewearingen

JMeter-ark sil wurde brûkt foar it útfieren fan prestaasjes-testen skripts. Binnen de skripts sille d'r bewearingen wurde steld om te kontrolearjen op boppesteande metriken, lykas inkele basisfunksjonele kontrôles om te soargjen dat juste antwurden wurde ûntfongen foar elk fersyk.


6.4 Laadprofilen

De ladingprofilen moatte wurde ûntwurpen om in typysk gemiddelde deiferkear nei nei te meitsjen site. Tink derom dat it ferkear allinich is ferdield en beheind ta it diel fan 'e klantidentiteit en tagongsbehear fan' e side, d.w.s.

  • Oanmelde
  • Register
  • Wachtwurd feroarje
  • Wachtwurd ferjitten
  • Klant ynstelle
  • Krij klant

Hjirûnder is in foarbyldprofyl foar in dei:

6.4.1 Baselining

De earste kursus fan aksje is in basisline te finen. Mei allinich 1 brûker sille wy in simulaasje foar in perioade útfiere (bgl. 5 min.) Om in gemiddelde fan responstiden foar elk einpunt te krijen. Dit soarget derfoar dat wy mei allinich 1 brûker eins de peakoanfragen per sekonde kinne berikke.


6.4.2 Laadproef

Nei't de baseline-metriken binne sammele, wurdt deselde simulaasje, dy't in ladingprofyl simuleart, útfierd mei in ferhege oantal brûkers om te testen tsjin de doelvoluminten. It idee fan dizze lêstest is om it systeem te testen oan 'e lading fan in typyske dei, simulearje de ramp-ups, dei-toppen, en ramp-downs.

6.4.3 Stresstest

It doel fan stresstest is om it brekpunt fan it systeem te finen, dus op hokker punt it systeem net reageart. As auto-skaalfergrutting op syn plak is, sil de stresstest ek in goede yndikator wêze op hokker punt it systeem skaalt en nije boarnen wurde tafoege. Foar stresstest wurdt deselde simulaasje brûkt foar lêstest, mar mei in heger as ferwachte lading.

6.4.4 Spitstest

Spiketests yntroduseart in relatyf koarte perioade in wichtige lêst op it systeem. It doel fan dizze test is om bygelyks in ferkeapbarren te simulearjen, as in grut oantal brûkers tagelyk tagong krije ta har akkount yn relatyf koarte perioade.

6.4.5 Soak Testing

Sûktest sil in lêstest foar langere tiid útfiere. It doel is om alle geheugenlekken en unresponsiviteit as flaters yn 'e rin fan' e soektest te iepenjen. Wy brûke typysk 80% fan 'e lading (brûkt foar lêstests) foar 24 oeren, en / as 60% fan' e lading foar 48 oeren.

6.4.6 Verzadigingspunt testen

By sêdingpunttests ferheegje wy de lading stadichoan om te bepalen op hokker punt it systeem net reageart, dat wol sizze it brekpunt fan it systeem te finen yn termen fan lêst.



7. Prestaasjetestaktiviteiten

De folgjende aktiviteiten wurde suggereare yn oarder te plakfine, om Prestaasjetest te foltôgjen:

7.1 Prestaasjes Test Omjouwing Build

  • De ladinginjektoren moatte genôch kapasiteit hawwe en moatte op ôfstân beheard wurde. Ek moat de lokaasje fan 'e ynjektoaren ôfpraat wurde
  • Real-time monitoaring- en warskôgingsmeganisme moat te plak wêze en moat de applikaasje, de tsjinners en ek de ladinginjektoren dekke.
  • Oanmeldingslogboeken moatte tagonklik wêze.

7.2 Skripts foar gebrûk-saak

  • It tool foar prestaasjetest dat sil wurde brûkt is JMeter
  • Elke gegevenseasken binne besprutsen foar it skriptsjen fan de use-cases

7.3 Test senario bouwe

  • It type fan de te fieren test (Belesting / Stress ensfh.)
  • It ladingprofyl / lêstmodel moat wurde ôfpraat foar elk testsoarte (op- / ôfritten, stappen ensfh.)
  • Opnimme tink tiid yn 'e senario's

7.4 Testútfiering en analyze

De folgjende tests moatte wurde útfierd yn 'e folgjende folchoarder:

  • Baselining Test
  • Load Test
  • Stress Test
  • Spike Test
  • Soak Test
  • Fersadigingspunt test

Ideaal wurde 2 testrinnen fan elk testsoart útfierd. Nei elke testútfiere kin de applikaasje fine-tuned wurde om de prestaasjes te ferheegjen en dan begjint in oare testsyklus.

7.5 Post-test analyze en rapportaazje

  • Alle relevante gegevensrapporten en argyf opnimme en back-up meitsje.
  • Bepale it sukses as it mislearjen troch de testresultaten te fergelykjen mei de prestaasjetoelen. As de doelen net wurde helle, dan moatte de passende wizigingen wurde makke en dan sil in oare testútfiersyklus begjinne. It is ûnbekend hoefolle útfieringssyklusen nedich binne om de oerienkommen doelen te heljen.
  • Dokumintearje en presintearje de testresultaten oan it team.