Jõudluskontrolli õpetus

Koormuse testimine

Mis on jõudluse testimine?

Jõudluse testimine on tarkvara testimisprotsess, mida kasutatakse tarkvararakenduse kiiruse, reaktsiooniaja, stabiilsuse, töökindluse, skaleeritavuse ja ressursikasutuse testimiseks konkreetse töökoormuse korral. Jõudlustestimise põhieesmärk on tuvastada ja kõrvaldada tarkvararakenduse jõudluse kitsaskohad. See on jõudlustehnoloogia alamhulk ja seda tuntakse ka kui "Täiuslikkuse testimine".

Jõudluskontrolli keskmes on tarkvaraprogrammide kontrollimine

  • Kiirus – Määrab, kas rakendus reageerib kiiresti
  • Skaalautuvus – Määrab maksimaalse kasutajakoormuse, mida tarkvararakendus suudab taluda.
  • Stabiilsus – Määrab, kas rakendus on muutuva koormuse korral stabiilne

Miks toimivustesti teha?

Tarkvarasüsteemi toetatavad funktsioonid ja funktsionaalsus pole ainsad murekohad. Tarkvararakenduse jõudlus, nagu reaktsiooniaeg, töökindlus, ressursikasutus ja mastaapsus, on olulised. Jõudlustesti eesmärk ei ole leida vigu, vaid kõrvaldada jõudluse kitsaskohad.

Jõudlustesti tehakse selleks, et anda sidusrühmadele teavet nende rakenduse kohta kiiruse, stabiilsuse ja mastaapsuse kohta. Veelgi olulisem on see, et jõudluse testimine paljastab, mida tuleb enne toote turule tulekut parandada. Ilma jõudlustestita kannatab tarkvara tõenäoliselt selliste probleemide all nagu: aeglane töötamine, samal ajal kui mitu kasutajat kasutavad seda samaaegselt, ebakõlad erinevate operatsioonisüsteemide vahel ja halb kasutatavus.

Jõudluse testimine

Jõudlustestimisega tehakse kindlaks, kas nende tarkvara vastab kiiruse, mastaapsuse ja stabiilsuse nõuetele eeldatava töökoormuse korral. Rakendused, mis saadetakse turule kehvade toimivusmõõdikutega, mis on tingitud olematu või kehva jõudluse testimisest, omandavad tõenäoliselt halva maine ega suuda saavutada eeldatavaid müügieesmärke.

Niisiis, missioonikriitilised rakendused nagu kosmosestardiprogrammid või elupäästvad meditsiiniseadmed, tuleks testida nende toimivust, et tagada nende pikaajaline toimimine ilma kõrvalekalleteta.

Dunn & Bradstreeti andmetel kogeb 59% Fortune 500 ettevõtetest igal nädalal hinnanguliselt 1.6 tundi seisakuid. Arvestades, et keskmine Fortune 500 vähemalt 10,000 56 töötajaga ettevõte maksab 896,000 dollarit tunnis, oleks sellise organisatsiooni seisakukulude tööjõu osa 46 XNUMX dollarit nädalas, mis tähendab rohkem kui XNUMX miljonit dollarit aastas.

Ainult a 5-minutiline seisak Google.com-ist (19.-13. august) kulub otsinguhiiglasele hinnanguliselt sama palju kui $ 545,000.

Hinnanguliselt kaotasid ettevõtted müügiväärtust 1100 dollarit sekundis hiljutise tõttu Amazon Veebiteenuse katkestus.

Seetõttu on jõudluse testimine oluline. Selle protsessi abistamiseks vaadake seda loendit jõudluskontrolli tööriistad.

Jõudluskontrolli tüübid

Tarkvara testimisel on peamiselt kuut tüüpi jõudluse testimist, mida selgitatakse allpool.
  • Koormustestimine - kontrollib rakenduse võimet töötada kasutaja eeldatava koormusega. Eesmärk on tuvastada jõudluse kitsaskohad enne tarkvararakenduse käivitamist.
  • Stressitestimine - hõlmab rakenduse testimist äärmusliku töökoormuse all, et näha, kuidas see suure liiklusega või andmetöötlusega toime tuleb. Eesmärk on tuvastada rakenduse murdepunkt.
  • Vastupidavuse testimine - tehakse tagamaks, et tarkvara suudab oodatava koormusega pika aja jooksul hakkama.
  • Spike testimine – testib tarkvara reaktsiooni kasutajate tekitatud koormuse äkilistele suurtele hüpetele.
  • Mahu testimine – Volume testimise all suur nr. kohta. Andmed kantakse andmebaasi ja kogu tarkvarasüsteemi käitumist jälgitakse. Eesmärk on kontrollida tarkvararakenduse jõudlust erinevate andmebaasi mahtude juures.
  • Skaleeritavuse testimine – Skaleeritavuse testimise eesmärk on määrata tarkvararakenduse tõhusus „suurendamiseks”, et toetada kasutajakoormuse suurenemist. See aitab planeerida teie tarkvarasüsteemi võimsuse suurendamist.

Levinud jõudlusprobleemid

Enamik jõudlusprobleeme on seotud kiiruse, reaktsiooniaja, laadimisaja ja halva mastaapsuse ümber. Kiirus on sageli rakenduse üks olulisemaid atribuute. Aeglaselt töötav rakendus kaotab potentsiaalsed kasutajad. Jõudlustestimine tagab, et rakendus töötab piisavalt kiiresti, et hoida kasutaja tähelepanu ja huvi. Vaadake järgmist tavaliste jõudlusprobleemide loendit ja märkige, kuidas kiirus on paljudes neist ühine tegur.

  • pikk laadimisaeg - Laadimisaeg on tavaliselt aeg, mis kulub rakenduse käivitamiseks. See peaks üldjuhul olema minimaalne. Kuigi mõnda rakendust on võimatu laadida alla minuti, tuleks laadimisaega võimalusel hoida alla mõne sekundi.
  • Kehv reageerimisaeg - Reageerimisaeg on aeg, mis kulub kasutaja poolt rakendusse andmete sisestamisest kuni rakenduse sellele sisendile vastuse väljastamiseni. Üldiselt peaks see olema väga kiire. Jällegi, kui kasutaja peab liiga kaua ootama, kaotab ta huvi.
  • Kehv skaleeritavus - Tarkvaratoode kannatab halva skaleeritavuse tõttu, kui see ei suuda oodatavat kasutajate arvu hakkama või kui see ei mahuta piisavalt suurt hulka kasutajaid. Koormuse testimine tuleks teha, et olla kindel, et rakendus saab hakkama eeldatava kasutajate arvuga.
  • Pudelikael – Kitsaskohad on süsteemis takistused, mis halvendavad süsteemi üldist jõudlust. Kitsaskael on siis, kui kodeerimisvead või riistvaraprobleemid põhjustavad teatud koormustel läbilaskevõime vähenemist. Kitsaskaela põhjuseks on sageli üks vigane koodiosa. Kitsaskaela probleemi lahendamise võti on leida aeglustumist põhjustav koodiosa ja proovida seda seal parandada. Kitsaskaelad parandatakse tavaliselt kehvade tööprotsesside parandamise või täiendava riistvara lisamisega. Mõned ühised tulemuslikkuse kitsaskohad See on
    • Protsessori kasutamine
    • Mälu kasutamine
    • Võrgu kasutamine
    • Operasüsteemi piirangud
    • Kettakasutus

Kuidas jõudlustesti teha

Toimivustestimise metoodika võib olla väga erinev, kuid jõudlustestide eesmärk jääb samaks. See võib aidata näidata, et teie tarkvarasüsteem vastab teatud eelmääratletud jõudluskriteeriumidele. Või aitab see võrrelda kahe tarkvarasüsteemi jõudlust. Samuti võib see aidata tuvastada teie tarkvarasüsteemi osi, mis halvendavad selle jõudlust.

Allpool on toodud üldine toimivustestimise protsess

Jõudluskontrolli protsess
Jõudluskontrolli protsess

1. samm) tuvastage oma testimiskeskkond

Teadke oma füüsilist testimiskeskkonda, tootmiskeskkonda ja saadaolevaid testimisvahendeid. Enne testimise alustamist mõistke testimise ajal kasutatud riistvara, tarkvara ja võrgukonfiguratsioonide üksikasju. See aitab testijatel luua tõhusamaid teste. Samuti aitab see tuvastada võimalikke väljakutseid, millega testijad võivad jõudluse testimise käigus kokku puutuda.

2. samm) Tehke kindlaks jõudluse aktsepteerimise kriteeriumid

See hõlmab läbilaskevõime, reageerimisaegade ja ressursside eraldamise eesmärke ja piiranguid. Samuti on vaja tuvastada projekti edu kriteeriumid väljaspool neid eesmärke ja piiranguid. Testijatel peaks olema õigus seada jõudluskriteeriume ja -eesmärke, sest sageli ei sisalda projekti spetsifikatsioonid piisavalt palju erinevaid jõudluse võrdlusaluseid. Mõnikord ei pruugi neid üldse olla. Võimalusel sarnase rakenduse leidmine, millega võrrelda, on hea viis jõudluseesmärkide seadmiseks.

3. samm) Planeerige ja kavandage jõudlustestid

Tehke kindlaks, kuidas kasutus võib lõppkasutajate vahel erineda, ja tuvastage peamised stsenaariumid, et testida kõiki võimalikke kasutusjuhtumeid. On vaja simuleerida erinevaid lõppkasutajaid, planeerida jõudlustesti andmed ja visandada, milliseid mõõdikuid kogutakse.

Samm 4) Testikeskkonna konfigureerimine

Enne käivitamist valmistage testimiskeskkond ette. Samuti korraldage tööriistu ja muid ressursse.

5. samm) Rakendage testi kavandamist

Looge toimivustestid vastavalt oma testiplaanile.

6. samm) Käivitage testid

Tehke ja jälgige teste.

Samm 7) Analüüsige, häälestage ja testige uuesti

Konsolideerige, analüüsige ja jagage testitulemusi. Seejärel häälestage ja testige uuesti, et näha, kas jõudlus on paranenud või vähenenud. Kuna täiustused muutuvad üldiselt iga kordustestiga väiksemaks, lõpetage protsess, kui kitsaskoha põhjustab protsessor. Seejärel võite kaaluda CPU võimsuse suurendamise võimalust.

Jõudluskontrolli mõõdikud: jälgitavad parameetrid

Toimivuse testimise ajal jälgitavad põhiparameetrid on järgmised:

jõudluskontrolli mõõdikud

  • Protsessori kasutamine - aeg, mille protsessor kulutab jõudeolekuta lõimede täitmisele.
  • Mälu kasutamine - arvutis protsesside jaoks saadaval olev füüsiline mälu.
  • ketta aeg - kui kaua ketas on lugemis- või kirjutamistaotluse täitmisega hõivatud.
  • Ribalaius - näitab võrguliidese kasutatavaid bitte sekundis.
  • Privaatsed baidid – protsessi eraldatud baitide arv, mida ei saa teiste protsesside vahel jagada. Neid kasutatakse mälulekete ja -kasutuse mõõtmiseks.
  • Pühendunud mälestus - kasutatud virtuaalmälu hulk.
  • Mälu lehekülgi sekundis – kettale kirjutatud või sellelt loetud lehekülgede arv, et lahendada kõva lehe vead. Kõva lehe vead on siis, kui kood, mis ei kuulu praegusesse töökomplekti, kutsutakse välja mujalt ja hangitakse kettalt.
  • Lehekülje vead sekundis – üldine kiirus, millega protsessor vealehti töötleb. See juhtub uuesti, kui protsess nõuab koodi väljastpoolt oma töökomplekti.
  • CPU katkestused sekundis – on keskm. riistvarakatkestuste arv, mida protsessor igas sekundis vastu võtab ja töötleb.
  • Ketta järjekorra pikkus – on keskm. ei. näidisintervalli jooksul valitud ketta jaoks järjekorras olevatest lugemis- ja kirjutamistaotlustest.
  • Võrguväljundi järjekorra pikkus – väljundpakettide järjekorra pikkus pakettides. Kõik, mis on rohkem kui kaks, tähendab viivitust ja kitsaskohad tuleb peatada.
  • Võrgubaidid kokku sekundis – määra, milliseid baite liidese kaudu saadetakse ja vastu võetakse, sealhulgas raamimismärgid.
  • Reaktsiooniaeg - aeg alates kasutaja päringu sisestamisest kuni vastuse esimese tähe saamiseni.
  • Läbilaskevõime – Hinda, et arvuti või võrk saab päringuid sekundis.
  • Ühenduse kogumise maht – kasutajate taotluste arv, millele ühendatud ühendused vastavad. Mida rohkem taotlusi basseinis ühendused rahuldavad, seda parem on jõudlus.
  • Maksimaalne aktiivsete seansside arv – maksimaalne seansside arv, mis võivad korraga olla aktiivsed.
  • Tabamussuhted – See on seotud arvuga SQL avaldused, mida käideldakse vahemällu salvestatud andmetega, mitte kallite I/O operatsioonidega. See on hea koht kitsaskohtade lahendamiseks alustamiseks.
  • tabamust sekundis – nr. tabamustes veebiserveris iga koormustesti sekundi jooksul.
  • Tagasipööramise segment – andmete hulk, mida saab igal ajahetkel tagasi võtta.
  • Andmebaasi lukud – tabelite ja andmebaaside lukustamist tuleb jälgida ja hoolikalt häälestada.
  • Peamised ootused – jälgitakse, et teha kindlaks, milliseid ooteaegu saab lühendada, kui tegeletakse andmete mälust toomise kiirusega
  • Lõngade arv – Rakenduse tervist saab mõõta nr. töötavatest ja praegu aktiivsetest lõimedest.
  • Prügi kogumine - See on seotud kasutamata mälu tagastamisega süsteemi. Prügivedu tuleb tõhususe tagamiseks jälgida.

Toimivustestimise katsejuhtumite näide

  • Testjuhtum 01: Kontrollige, et reageerimisaeg ei ületaks 4 sekundit, kui veebisaidile siseneb korraga 1000 kasutajat.
  • Testjuhtum 02: Kui võrguühendus on aeglane, veenduge, et koormatava rakenduse reageerimisaeg on vastuvõetavas vahemikus
  • Testjuhtum 03: Enne kokkujooksmist kontrollige maksimaalset kasutajate arvu, millega rakendus hakkama saab.
  • Testjuhtum 04: Kontrollige andmebaasi täitmise aega, kui samaaegselt loetakse/kirjutatakse 500 kirjet.
  • Testjuhtum 05: Kontrollige rakenduse ja andmebaasiserveri protsessori- ja mälukasutust tippkoormuse tingimustes
  • Testjuhtum 06: Kontrollige rakenduse reaktsiooniaega madala, normaalse, keskmise ja suure koormuse tingimustes.

Tegeliku jõudlustesti läbiviimise ajal asendatakse ebamäärased mõisted, nagu vastuvõetav vahemik, suur koormus jne, konkreetsete numbritega. Jõudlusinsenerid määravad need numbrid vastavalt ärinõuetele ja rakenduse tehnilisele maastikule.

Jõudluskontrolli tööriistad

Turul on saadaval lai valik jõudluse testimise tööriistu. Testimiseks valitud tööriist sõltub paljudest teguritest, nagu toetatud protokolli tüübid, litsentsi maksumus, riistvaranõuded, platvormi tugi jne. Allpool on nimekiri populaarsetest testimistööriistadest.

  • HP LoadRunner - on tänapäeval turul kõige populaarsem jõudluse testimise tööriist. See tööriist on võimeline simuleerima sadu tuhandeid kasutajaid, asetades rakendused reaalse koormuse alla, et määrata kindlaks nende käitumine eeldatava koormuse korral. Loadrunner sisaldab virtuaalset kasutajate generaatorit, mis simuleerib elavate inimkasutajate tegevusi.
  • Jmeter – üks juhtivaid tööriistu, mida kasutatakse veebi- ja rakendusserverite koormustestimiseks.

FAQ

Jõudlustesti tehakse alati ainult klient-serveripõhiste süsteemide jaoks. See tähendab, et ükski rakendus, mis ei ole kliendi-serveripõhine arhitektuur, ei tohi jõudluse testimist nõuda.

Näiteks Microsoft Kalkulaator ei ole kliendi-serveripõhine ega käitata mitut kasutajat; seega ei ole see jõudluskontrolli kandidaat.

Jõudlustesti

On oluline mõista jõudluse testimise ja jõudlustehnoloogia erinevust. Allpool on jagatud arusaamine:

Jõudluse testimine on distsipliin, millega tegeletakse testimine ja aruandlus tarkvararakenduse praegune jõudlus erinevate parameetrite juures.

Performance Engineering on protsess, mille käigus tarkvara testitakse ja häälestatakse eesmärgiga saavutada vajalik jõudlus. Selle protsessi eesmärk on optimeerida rakenduse kõige olulisemat jõudlust, st kasutajakogemust.

Ajalooliselt on testimine ja häälestamine olnud selgelt eraldiseisvad ja sageli konkureerivad valdkonnad. Viimastel aastatel on aga mitmed testijad ja arendajad teinud tuunimismeeskondade loomisel iseseisvat koostööd. Kuna need meeskonnad on saavutanud märkimisväärset edu, on jõudluse testimise ja jõudluse häälestamise kontseptsioon levinud ja nüüd kutsume seda jõudlustehnoloogiaks.

Järeldus

In Tarkvaraarendus, Enne mis tahes tarkvaratoote turustamist on vaja jõudlust testida. See tagab klientide rahulolu ja kaitseb investori investeeringut toote rikke eest. Toimivustestimise kulud kaetakse tavaliselt rohkem kui kompenseeritud klientide parema rahulolu, lojaalsuse ja säilitamisega.