Jõudluskontrolli õpetus
⚡ Nutikas kokkuvõte
Jõudlustestimine on tarkvara testimise protsess, mis hindab rakenduse kiirust, reageerimisaega, stabiilsust, skaleeritavust ja ressursikasutust kindlate töökoormuste korral. See tuvastab ja kõrvaldab enne juurutamist kitsaskohad, tagades töökindluse reaalsetes tingimustes.

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õudlustestide keskmes on tarkvaraprogrammi kontrollimine:
- Kiirus – Määrab, kas rakendus reageerib kiiresti
- Skaalautuvus – Määrab tarkvararakenduse maksimaalse kasutajakoormuse
- Stabiilsus – Määrab, kas rakendus on muutuva koormuse korral stabiilne
PFLB keskendub täppispõhisele jõudlustestimisele, mis aitab süsteemidel ettearvamatute töökoormuste korral stabiilsena püsida. Selle teenused hõlmavad koormustestimist, tipptestimist ja latentsuse mõõtmist, kusjuures peamine eesmärk on tuvastada jõudluse halvenemine enne, kui see lõppkasutajaid mõjutab.
Miks on jõudluse testimine oluline?
Tarkvarasüsteemi toetatavad funktsioonid ja funktsioonid ei ole ainus mure. Tarkvararakenduse jõudlus, näiteks selle reageerimisaeg, töökindlus, ressursikasutus ja skaleeritavus, on olulised. Jõudlustestimise eesmärk ei ole vigade leidmine, vaid jõudluse kitsaskohtade kõrvaldamine.
Jõudlustestimise eesmärk on anda sidusrühmadele teavet nende rakenduse kiiruse, stabiilsuse ja skaleeritavuse kohta. Veelgi olulisem on see, et jõudlustestimine paljastab, mida tuleb enne toote turuletulekut parandada. Ilma jõudlustestimiseta kannatab tarkvara tõenäoliselt selliste probleemide all nagu aeglane töötamine mitme kasutaja samaaegsel kasutamisel, ebajärjekindlus erinevate operatsioonisüsteemide vahel ja halb kasutatavus.
Jõudlustestid määravad kindlaks, kas tarkvara vastab oodatava töökoormuse korral kiiruse, skaleeritavuse ja stabiilsuse nõuetele. Rakendused, mis saadetakse turule kehvade jõudlusnäitajatega, mis on tingitud olematust või kehvast jõudlustestimisest, saavad tõenäoliselt halva maine ja ei saavuta oodatavaid 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 of GoogleHinnanguliselt läheb .com (19. august 13) otsinguhiiglasele maksma 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 - Seda tehakse selleks, et tarkvara suudaks oodatava koormusega pika aja jooksul toime tulla. See aitab tuvastada probleeme, nagu mälulekked ja ressursside ammendumine, mis ilmnevad alles pideva töö ajal.
- Spike testimine – testib tarkvara reaktsiooni kasutajate tekitatud koormuse järskudele suurtele hüpetele. Erinevalt stresstestimisest keskendub hüppetestimine spetsiifiliselt sellele, kuidas süsteem saab hakkama järskude ja lühiajaliste liikluse hüpetega ning neist taastub.
- Mahu testimine – hõlmab andmebaasi täitmist suure hulga andmetega ja kogu tarkvarasüsteemi käitumise jälgimist. Eesmärk on kontrollida tarkvararakenduse jõudlust erinevate andmebaasi mahtude korral.
- Skaleeritavuse testimine – määrab tarkvararakenduse efektiivsuse kasutajakoormuse suurenemise toetamiseks skaleerimisel. See aitab planeerida tarkvarasüsteemi mahutavuse suurendamist.
Levinud jõudlusprobleemid
Enamik jõudlusprobleeme on seotud kiiruse, reageerimisaja, laadimisaja ja kehva skaleeritavusega. Kiirus on sageli rakenduse üks olulisemaid omadusi. Aeglaselt töötav rakendus kaotab potentsiaalseid kasutajaid. Jõudlustestimine tagab, et rakendus töötab piisavalt kiiresti, et hoida kasutaja tähelepanu ja huvi. Järgnevalt on toodud levinud jõudlusprobleemid, mille puhul kiirus on korduv tegur:
- Pikk laadimisaeg – Laadimisaeg on tavaliselt rakenduse käivitumiseks kuluv aeg. See peaks üldiselt olema minimaalne. Kuigi mõnda rakendust on võimatu alla minuti laadida, peaks laadimisaeg võimaluse korral jääma alla mõne sekundi.
- Kehv reageerimisaeg - Reaktsiooniaeg on aeg, mis kulub kasutaja andmete sisestamisest rakendusse kuni rakenduse vastuse saamiseni. Üldiselt peaks see olema väga kiire. 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üsteemi takistused, mis halvendavad süsteemi üldist jõudlust. Kitsaskoht on see, kui kas kodeerimisvead või riistvaraprobleemid põhjustavad teatud koormuste korral läbilaskevõime langust. Kitsaskoha põhjustab sageli üks vigane koodiosa. Kitsaskoha probleemi lahendamise võti on leida aeglustumist põhjustav koodiosa ja proovida see seal parandada. Kitsaskohti lahendatakse üldiselt kas halvasti töötavate 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 protsess jõudlustestimise läbiviimiseks.

1. samm) tuvastage oma testimiskeskkond
Tunne oma füüsilist testimiskeskkonda, tootmiskeskkonda ja saadaolevaid testimistööriistu. Enne testimisprotsessi alustamist tutvu testimisel kasutatava riist- ja tarkvara ning võrgu konfiguratsioonidega. See aitab testijatel luua tõhusamaid teste. Samuti aitab see tuvastada võimalikke väljakutseid, millega testijad võivad jõudlustestimise protseduuride 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 kindlaks teha projekti edukriteeriumid väljaspool neid eesmärke ja piiranguid. Testijatel peaks olema õigus seada tulemuslikkuse kriteeriume ja eesmärke, sest sageli ei sisalda projekti spetsifikatsioonid piisavalt laia valikut tulemuslikkuse võrdlusnäitajaid. Mõnikord ei pruugi neid üldse olla. Võimaluse korral on hea viis tulemuslikkuse eesmärkide seadmiseks leida sarnane rakendus, millega võrrelda.
3. samm) Planeerige ja kavandage jõudlustestid
Tehke kindlaks, kuidas kasutus lõppkasutajate vahel tõenäoliselt varieerub, ja tuvastage peamised stsenaariumid kõigi võimalike kasutusjuhtude testimiseks. Vajalik on simuleerida mitmesuguseid lõppkasutajaid, planeerida jõudlustestide andmeid ja visandada kogutavaid mõõdikuid.
4. samm) Testikeskkonna seadistamine
Valmistage enne testimist ette testimiskeskkond. Samuti korraldage tööriistad ja muud ressursid. Peegeldage võimalikult täpselt tootmiskeskkonda, et tagada testi tulemuste realistlikkus ja rakendatavus.
5. samm) Rakendage testi kavandamist
Looge toimivustestid vastavalt oma testiplaanile.
6. samm) Käivitage testid
Tehke ja jälgige teste.
7. samm) Analüüsi, häälesta ja testi uuesti
Koondage, analüüsige ja jagage testi tulemusi. Seejärel peenhäälestage ja testige uuesti, et näha, kas jõudluses on toimunud paranemist või langust. Kuna paranemised üldiselt iga kordustestiga vähenevad, lõpetage testimine, kui protsessori koormus tekitab kitsaskohti. Sellisel juhul peate võib-olla kaaluma protsessori võimsuse suurendamise võimalust.
Jõudluskontrolli mõõdikud: jälgitavad parameetrid
Toimivuse testimise ajal jälgitavad põhiparameetrid on järgmised:
- Protsessori kasutamine - aeg, mille protsessor kulutab mitte-jõudeolekus lõimede käivitamisele.
- Mälu kasutamine - arvuti protsessidele saadaoleva füüsilise mälu hulk.
- ketta aeg - aeg, mille jooksul ketas on lugemis- või kirjutamispäringu 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 - kasutatava virtuaalmälu hulk.
- Mälu lehekülgi sekundis – kettale kirjutatud või kettalt loetud lehekülgede arv, et lahendada püsivaid leheküljetõrkeid. Püsivad leheküljetõrked tekivad siis, kui kettalt kutsutakse välja kood, mis ei kuulu praegusesse töökomplekti.
- Lehekülje vead sekundis – Protsessori poolt vealehtede töötlemise üldine kiirus. See juhtub siis, kui protsess vajab koodi väljastpoolt oma töökomplekti.
- CPU katkestused sekundis – riistvaraliste katkestuste keskmine arv, mida protsessor sekundis vastu võtab ja töötleb.
- Ketta järjekorra pikkus – valitud kettale valimiintervalli jooksul järjekorras olevate lugemis- ja kirjutamispäringute keskmine arv.
- Võrguväljundi järjekorra pikkus – väljundpakettide järjekorra pikkus pakettides. Kõik, mis on rohkem kui kaks, tähendab viivitust ja kitsaskohtade teke tuleb peatada.
- Võrgubaidid kokku sekundis – kiirus, millega liidese kaudu baite saadetakse ja võetakse vastu, sealhulgas raamimismärgid.
- Reaktsiooniaeg - aeg alates kasutaja päringu sisestamisest kuni vastuse esimese tähe saabumiseni.
- Läbilaskevõime – kiirus, millega arvuti või võrk sekundis päringuid vastu võtab.
- Ü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 – veebiserveri külastuste arv koormustesti iga 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 tegemist on andmete mälust hankimise kiirusega.
- Lõngade arv – Rakenduse tervist saab mõõta töötavate ja hetkel aktiivsete lõimede arvu järgi.
- Prügi kogumine - hõlmab kasutamata mälu tagastamist süsteemi. Prügikoristust tuleb efektiivsuse tagamiseks jälgida.
Toimivustestimise katsejuhtumite näide
Allpool on näidisnäitajad jõudlustestimise testidest:
- Testjuhtum 01: Veenduge, et vastuse aeg ei ületaks 4 sekundit, kui veebisaidile pääseb samaaegselt ligi 1000 kasutajat.
- Testjuhtum 02: Veenduge, et rakenduse koormuse all reageerimisaeg oleks vastuvõetavas vahemikus, kui võrguühendus on aeglane.
- 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älu kasutust 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õudlustestimise parimad tavad
Parima tava järgimine tagab jõudlustestimisel usaldusväärsed tulemused. Need juhised aitavad meeskondadel vältida levinud lõkse.
- Peegeldage tootmiskeskkonda – Konfigureerige oma testi seadistus nii, et see kajastaks võimalikult täpselt tootmist. Riist- või tarkvaraversioonide erinevused võivad anda eksitavaid tulemusi.
- Loo realistlikud testistsenaariumid – Looge testijuhtumeid, mis simuleerivad tegelikku kasutajakäitumist, sealhulgas mõtlemisaegu ja samaaegseid tehinguid.
- Kasutage protsentiilipõhiseid mõõdikuid – Tuginege pigem 90. ja 95. protsentiili reageerimisaegadele kui ainult keskmistele. Pertsentiilid paljastavad lõpp-lõpu latentsusaja, mida keskmised võivad varjata.
- Testige varakult ja pidevalt – Integreeri jõudlustestimine CI/CD torujuhtmesse, selle asemel, et käsitleda seda viimase etapi tegevusena.
- Dokumenteerida ja lähtetulemused – Salvesta iga testi tulemused. Uute tulemuste võrdlemine algtasemetega lihtsustab versioonidevaheliste regressioonide tuvastamist.
Kuidas tehisintellekt muudab jõudlustestimist
Tehisintellekt on reshaping jõudlustestimine keeruliste analüüsiülesannete automatiseerimise ja ennustamisvõimaluste võimaldamise kaudu. Tehisintellektil põhinevad tööriistad analüüsivad ajaloolisi andmeid, tuvastavad mustreid ja pakuvad tegutsemissoovitusi ilma inimese sekkumiseta igal sammul.
- Ennustav anomaaliate tuvastamine – Tehisintellekti algoritmid analüüsivad koormustestide ajal reaalajas jõudlusnäitajaid ja märgistavad kõrvalekaldeid enne, kui need kriitilisteks tõrgeteks eskaleeruvad.
- Automatiseeritud algpõhjuste analüüs – Tehisintellektil põhinevad tööriistad korreleerivad andmeid hajutatud süsteemides, et täpselt kindlaks teha komponendid, mis põhjustavad jõudluse halvenemist.
- Nutikas testide optimeerimine – Masinõppe mudelid tuvastavad üleliigsed testistsenaariumid ja pakuvad välja optimaalseid konfiguratsioone, vähendades täitmisaega ja säilitades samal ajal katvuse.
- Isetervenevad testiskriptid – Tehisintellekt kohandab testiskripte vastavalt rakenduse liideste muutumisele, vähendades jõudlustestide hoolduskulusid.
Jõudluse testimise tööriistad
Turul on saadaval lai valik jõudlustestimise tööriistu. Testimiseks valitud tööriist sõltub paljudest teguritest, näiteks toetatava protokolli tüübid, litsentsi hind, riistvaranõuded ja platvormi tugi. Allpool on loetelu populaarsetest testimistööriistadest.
- HP LoadRunner - on üks populaarsemaid jõudlustestimise tööriistu turul. See tööriist suudab simuleerida sadu tuhandeid kasutajaid, pannes rakendused reaalse koormuse alla, et teha kindlaks nende käitumine oodatavate koormuste korral. LoadRunner sisaldab virtuaalset kasutajate generaatorit, mis simuleerib elavate inimkasutajate tegevusi.
- JMeter - Üks juhtivaid avatud lähtekoodiga tööriistu, mida kasutatakse veebi- ja rakendusserverite koormustestimiseks. See toetab mitut protokolli ja pakub ulatuslikke aruandlusvõimalusi.


