Jõudluse testimine
Performance Testing on tarkvara testimise protsess, mida kasutatakse tarkvararakenduse kiiruse, reageerimisaja, stabiilsuse, usaldusväärsuse, mastaapsuse ja ressursikasutuse testimiseks kindla töökoormuse korral. Jõudluskontrolli peamine eesmärk on tuvastada ja kõrvaldada tarkvararakenduse jõudluse kitsaskohad. See on jõudlustehnika alamhulk ja tuntud ka kui “Perf Testing”.
Jõudluskontrolli keskmes on tarkvaraprogrammide kontrollimine
- Kiirus - määrab, kas rakendus reageerib kiiresti
- Skaalautuvus - määrab maksimaalse kasutajakoormuse, mida tarkvararakendus suudab toime tulla.
- Stabiilsus - määrab, kas rakendus on muutuvate koormuste korral stabiilne
Selles õpetuses saate teada
- Mis on jõudluskontroll?
- Miks teha jõudlustesti?
- Jõudluskontrolli tüübid
- Levinud jõudlusprobleemid
- Jõudluse testimise protsess
- Jõudluskontrolli mõõdikud: jälgitavad parameetrid
- Jõudluskatse juhtumite näited
- Jõudluskontrolli tööriistad
- KKK
Miks teha jõudlustesti?
Tarkvarasüsteemi toetatud funktsioonid ja funktsionaalsus pole ainus probleem. Tarkvararakenduse jõudlus, nagu reageerimisaeg, töökindlus, ressursikasutus ja mastaapsus, loevad. Jõudluskontrolli eesmärk ei ole leida vigu, vaid kõrvaldada jõudluse kitsaskohad.
Jõudluskontrolli tehakse sidusrühmadele teabe saamiseks nende rakendamise kohta seoses kiiruse, stabiilsuse ja mastaapsusega. Veelgi olulisem on see, et jõudlustestimisel avastatakse, mida tuleb enne toote turule jõudmist parandada. Ilma jõudluskontrollita kannatavad tarkvara tõenäoliselt järgmiste probleemide all: aeglane töötamine, samal ajal kui mitu kasutajat kasutavad seda korraga, erinevates operatsioonisüsteemides esinevad vastuolud ja halb kasutatavus.
Jõudluskontrolliga tehakse kindlaks, kas nende tarkvara vastab eeldatava töökoormuse korral kiiruse, mastaapsuse ja stabiilsuse nõuetele. Puuduvate või kehvade jõudluskontrollide tõttu turule saadetud rakendused saavad tõenäoliselt halva maine ega suuda oodatud müügieesmärke täita.
Samuti tuleks missioonikriitilisi rakendusi, näiteks kosmosesõiduprogramme või elupäästvaid meditsiiniseadmeid, katsetada jõudlusega, tagamaks, et need töötaksid pikka aega ilma kõrvalekalleteta.
Dunn & Bradstreet andmetel kogeb 59% Fortune 500 ettevõtetest hinnanguliselt 1,6 tundi seisakuid igal nädalal. Arvestades, et keskmine Fortune 500 ettevõte, kus töötab vähemalt 10 000 töötajat, maksab 56 dollarit tunnis, oleks sellise organisatsiooni seisakukulude tööjõuosa 896 000 dollarit nädalas, mis tähendab aastas üle 46 miljoni dollari.
Hinnanguliselt maksab Google.com-i ainult 5-minutiline seisak (19. august-13) otsinguhiiglasele koguni 545 000 dollarit.
Hinnanguliselt kaotasid ettevõtted hiljutise Amazoni veebiteenuste katkestuse tõttu müüki väärtusega 1100 dollarit sekundis.
Seega on jõudlustestimine oluline.
Jõudluskontrolli tüübid
- Laadimistestimine - kontrollib rakenduse võimet toimida eeldatavate kasutajakoormuste korral. Eesmärk on tuvastada jõudluse kitsaskohad enne tarkvararakenduse avaldamist.
- Stressitestimine - hõlmab rakenduse testimist äärmise koormuse korral, et näha, kuidas see suure liikluse või andmetöötlusega hakkama saab. Eesmärk on tuvastada rakenduse murdepunkt.
- Vastupidavustestimine - tehakse selleks, et tarkvara saaks oodatud koormusega pika aja jooksul hakkama.
- Spike testimine - testib tarkvara reaktsiooni kasutajate poolt tekitatud koormuse äkilistele suurtele hüppetele.
- Helitugevuse testimine - helitugevuse testimise all suur nr. kohta. Andmed täidetakse andmebaasis ja jälgitakse tarkvarasüsteemi üldist käitumist. Eesmärk on kontrollida tarkvararakenduse toimivust andmebaasi erineva hulga korral.
- Mastaapsuse testimine - mastaapsuse testimise eesmärk on kindlaks teha tarkvararakenduse efektiivsus "suurendamisel", et toetada kasutajate koormuse kasvu. See aitab planeerida oma tarkvarasüsteemi võimsuse lisamist.
Levinud jõudlusprobleemid
Enamik jõudlusprobleeme keerleb kiiruse, reageerimisaja, laadimisaja ja kehva mastaapsuse ümber. Kiirus on sageli rakenduse üks olulisemaid atribuute. Aeglaselt töötav rakendus kaotab potentsiaalsed kasutajad. Toimivuse testimine on tehtud selleks, et veenduda, et rakendus töötab piisavalt kiiresti, et hoida kasutaja tähelepanu ja huvi. Vaadake järgmist levinumate jõudlusprobleemide loendit ja märkige, kuidas kiirus on paljudes neist tavaline tegur:
- Pikk laadimisaeg - laadimisaeg on tavaliselt algusaeg, mis kulub rakenduse käivitamiseks. Üldiselt peaks see olema minimaalne. Kuigi mõnda rakendust on võimatu laadida alla minuti, peaks laadimisaeg jääma võimalusel mõne sekundi alla.
- Kehv reageerimisaeg - reageerimisaeg on aeg, mis kulub ajast, mil kasutaja sisestab andmeid rakendusse, kuni rakendus väljastab vastuse sellele sisendile. Üldiselt peaks see olema väga kiire. Jällegi, kui kasutaja peab liiga kaua ootama, kaotab ta huvi.
- Kehv mastaapsus - tarkvaratoode kannatab halva mastaapsuse korral, kui see ei saa hakkama oodatud kasutajate arvuga või kui see ei mahu piisavalt laiale kasutajaskonnale. Koormuse testimine peaks olema kindel, et rakendus suudab eeldatava kasutajate arvuga hakkama saada.
- Pudelikael - kitsaskohad on süsteemi takistused, mis halvendavad süsteemi üldist jõudlust. Pudelikael on see, kui kodeerimisvead või riistvaraprobleemid põhjustavad teatud koormuste korral läbilaskevõime vähenemist. Pudelikael on sageli tingitud ühest vigasest koodilõigust. Kitsaskohtade probleemi lahendamise võti on leida aeglustumist põhjustav koodilõik ja proovida see seal parandada. Pudelikael on tavaliselt fikseeritud kas halva tööprotsessi parandamise või täiendava riistvara lisamise teel. Mõned levinumad jõudluse kitsaskohad on
- Protsessori kasutamine
- Mälu kasutamine
- Võrgu kasutamine
- Operatsioonisüsteemi piirangud
- Ketta kasutamine
Jõudluse testimise protsess
Jõudluskontrolliks kasutatav metoodika võib olla väga erinev, kuid jõudlustestide eesmärk jääb samaks. See võib aidata tõestada, et teie tarkvarasüsteem vastab teatud etteantud toimivuskriteeriumidele. Või võib see aidata võrrelda kahe tarkvarasüsteemi toimivust. Samuti võib see aidata tuvastada tarkvarasüsteemi osi, mis halvendavad selle toimivust.
Allpool on üldine protsess jõudluskontrolli teostamiseks
- Tuvastage oma testimiskeskkond - tundke oma füüsilist testikeskkonda , tootmiskeskkonda ja olemasolevaid testimisvahendeid. Enne testimise alustamist saate aru testimisel kasutatud riist-, tarkvara- ja võrgukonfiguratsioonide üksikasjadest. See aitab testijatel luua tõhusamaid teste. Samuti aitab see tuvastada võimalikke väljakutseid, millega testijad võivad jõudluskontrolli protseduuride käigus kokku puutuda.
- Määrake toimivuse aktsepteerimise kriteeriumid - see hõlmab eesmärke ja piiranguid läbilaskevõime, reageerimisaja ja ressursside jaotamise kohta. Samuti on vaja välja selgitada projekti edukriteeriumid väljaspool neid eesmärke ja piiranguid. Testijatele tuleks anda volitused seada tulemuslikkuse kriteeriumid ja eesmärgid, sest sageli ei sisalda projekti spetsifikatsioonid piisavalt laia valikut tulemuslikkuse võrdlusaluseid. Mõnikord ei pruugi neid üldse olla. Võimaluse korral on tulemuslikkuse eesmärkide seadmiseks hea sarnase rakenduse leidmine, millega võrrelda.
- Planeerige ja kavandage jõudlustestid - tehke kindlaks, kuidas kasutus lõppkasutajatel tõenäoliselt varieerub, ja määrake peamised stsenaariumid kõigi võimalike kasutusjuhtumite testimiseks. On vaja simuleerida erinevaid lõppkasutajaid, kavandada jõudlustesti andmed ja visandada, milliseid mõõdikuid kogutakse.
- Testimiskeskkonna konfigureerimine - enne käivitamist valmistage ette testimiskeskkond. Samuti korraldage tööriistu ja muid ressursse.
- Rakendage testide disain - looge toimivuskatsed vastavalt oma testi kavandile.
- Testide käivitamine - testide teostamine ja jälgimine.
- 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õudlust on paranenud või vähenenud. Kuna parandused kasvavad iga kordustestiga tavaliselt väiksemaks, peatage, kui kitsaskoht on põhjustatud protsessorist. Siis võite kaaluda võimalust protsessori võimsuse suurendamiseks.
Jõudluskontrolli mõõdikud: jälgitavad parameetrid
Jõudluskontrolli käigus jälgitavad põhiparameetrid hõlmavad järgmist:
- Protsessori kasutamine - protsessori kulutatav aeg mitteaktiivsete lõimede käivitamiseks.
- Mälukasutus - arvutis toimuvate protsesside jaoks saadaval oleva füüsilise mälu hulk.
- Ketta aeg - aeg , mil ketas on lugemis- või kirjutamistaotluse täitmisega hõivatud.
- Ribalaius - näitab bitti sekundis, mida võrguliides kasutab.
- Privaatsed baidid - protsessile eraldatud baitide arv, mida ei saa teiste protsesside vahel jagada. Neid kasutatakse mälulekete ja kasutamise mõõtmiseks.
- Kohustatud mälu - kasutatud virtuaalse mälu maht.
- Mälulehed sekundis - kettale kirjutatud või kõvakettalt loetud lehtede arv, et lahendada kõvade lehtede vead. Rasked lehevead on siis, kui mujalt kutsutakse välja kood, mis pole praegusest töökomplektist ja leitakse kettalt.
- Lehevead sekundis - üldine sagedus, milles protsessor töötleb rikkelehti. See juhtub uuesti siis, kui protsess nõuab koodi väljastpoolt oma töörühma.
- Protsessori katkestused sekundis - on keskm. riistvara katkestuste arv, mida protsessor iga sekund vastu võtab ja töötleb.
- Ketta järjekorra pikkus - on keskm. ei näidisintervalli jooksul valitud kettale järjekorda seatud lugemis- ja kirjutamistaotlusi.
- Võrgu väljundijärjekorra pikkus - väljundpakettide järjekorra pikkus pakettides. Kõik rohkem kui kaks tähendab viivitust ja kitsaskohtade kõrvaldamine tuleb lõpetada.
- Võrgubaitide koguarv sekundis - baitide liidesel saatmise ja vastuvõtmise määr koos raamistike tähemärkidega.
- Vastamisaeg - aeg alates päringu sisestamisest kuni vastuse esimese märgi saabumiseni.
- Läbilaskevõime - määr, mida arvuti või võrk saab päringuid sekundis.
- Ühenduse ühiskasutuse summa - kasutaja taotluste arv, millele ühendatud ühendused vastavad. Mida rohkem taotlusi täidavad ühendused basseinis, seda parem on jõudlus.
- Maksimaalne aktiivne seanss - maksimaalne korraga aktiivsete seansside arv.
- Tulemussuhted - see on seotud SQL-i käskude arvuga, mida kallite sisend- / väljundoperatsioonide asemel käsitsevad vahemällu salvestatud andmed. See on hea koht kitsaskohtade lahendamiseks.
- Hitte sekundis - ei. tabamustest veebiserveris laadimiskatse iga sekundi jooksul.
- Tagasipööramise segment - andmemaht, mida saab igal ajahetkel tagasi kerida.
- Andmebaaside lukud - tabelite ja andmebaaside lukustamist tuleb jälgida ja hoolikalt häälestada.
- Ülemine ootamine - jälgitakse, et teha kindlaks, milliseid ooteaegu saab lühendada, kui käsitletakse andmete kiiret otsimist mälust
- Keermete arv - rakenduse tervist saab mõõta nr. käimasolevatest ja praegu aktiivsetest lõimedest.
- Prügikoristus - see on seotud kasutamata mälu süsteemi tagasi viimisega. Prügi kogumise tõhususe tagamiseks tuleb jälgida.
Jõudluskatse juhtumite näited
- Veenduge, et reageerimisaeg ei ületaks 4 sekundit, kui veebisaidile pääseb üheaegselt 1000 kasutajat.
- Veenduge, et koormuse all oleva rakenduse reageerimisaeg oleks vastuvõetavas vahemikus, kui võrguühendus on aeglane
- Enne krahhi kontrollige maksimaalset kasutajate arvu, mida rakendus suudab käsitseda.
- Kontrollige andmebaasi täitmise aega, kui korraga loetakse / kirjutatakse 500 kirjet.
- Tipptaseme tingimustes kontrollige rakenduse ja andmebaasiserveri protsessorit ning mälukasutust
- Kontrollige rakenduse reageerimisaega madala, normaalse, keskmise ja raske koormuse korral.
Tegeliku jõudluskontrolli käigus asendatakse ebamäärased mõisted nagu vastuvõetav ulatus, suur koormus jne konkreetsete numbritega. Performance-insenerid määravad need numbrid vastavalt ärinõuetele ja rakenduse tehnilisele maastikule.
Jõudluskontrolli tööriistad
Turul on saadaval väga erinevaid jõudluskontrolli tööriistu. Testimiseks valitud tööriist sõltub paljudest teguritest, nagu toetatava protokolli tüübid, litsentsikulu, riistvaranõuded, platvormi tugi jne. Allpool on loetelu populaarseimatest testimistööriistadest.
- LoadNinja - muudab revolutsiooniliselt testi laadimise viisi. See pilvepõhine koormuse testimise tööriist annab meeskondadele võimaluse salvestada ja koheselt taasesitada terviklikke koormustestid ilma keeruka dünaamilise korrelatsioonita ja käivitada need koormustestid reaalsetes brauserites ulatuslikult. Võistkonnad suudavad testide katvust suurendada. & lühendage koormuse testimise aega üle 60%.
- NeoLoad - on DevOpsile mõeldud jõudlustestimise platvorm, mis integreerub sujuvalt teie olemasolevasse pideva tarnimise torujuhtmesse. NeoLoadi abil testivad meeskonnad kümme korda kiiremini kui traditsioonilised tööriistad, et täita uue nõude taset kogu Agile tarkvaraarenduse elutsükli jooksul - alates komponentidest kuni kogu süsteemi hõlmavate koormustestideni.
- HP LoadRunner - on tänapäeval turul kõige populaarsemad jõudlustestimise tööriistad. See tööriist suudab simuleerida sadu tuhandeid kasutajaid, pannes rakendused reaalsete koormuste alla, et määrata nende käitumine eeldatavate koormuste korral. Loadrunneris on virtuaalne kasutajageneraator, mis simuleerib elusate inimkasutajate tegevusi.
- Jmeter - üks juhtivaid tööriistu, mida kasutatakse veebi- ja rakendusserverite koormustestimiseks.
KKK
Milliseid rakendusi peaksime jõudlust testima?
Jõudluskontrolli tehakse alati ainult kliendi-serveri põhistes süsteemides. See tähendab, et ükski rakendus, mis ei ole kliendi-serveri põhine arhitektuur, ei tohi nõuda jõudlustesti.
Näiteks ei ole Microsofti kalkulaator klient-serveripõhine ega käita mitut kasutajat; seega ei kuulu ta jõudluskontrolli kandidaadiks.
Mis vahe on jõudluskontrolli ja jõudlustehnika vahel
On oluline mõista erinevust jõudlustesti ja jõudlustehnika vahel. Allpool jagatakse arusaama:
Jõudluskontroll on distsipliin , mis on seotud tarkvararakenduse praeguse toimivuse testimise ja aruandlusega erinevate parameetrite all.
Jõudlustehnika on protsess, mille käigus tarkvara testitakse ja häälestatakse eesmärgiga realiseerida vajalik jõudlus. Selle protsessi eesmärk on optimeerida rakenduse kõige olulisem omadus, st kasutuskogemus.
Ajalooliselt on testimine ja häälestamine olnud selgelt eraldiseisvad ja sageli konkureerivad valdkonnad. Viimaste aastate jooksul on aga mitu testijate ja arendajate tasku teinud häälestustiimide loomiseks iseseisvat koostööd. Kuna need meeskonnad on saavutanud märkimisväärset edu, on jõudluskontrolli ühendamine kontseptsiooniga jõudluse häälestunud ja nüüd nimetame seda jõudlustehnikaks.
Järeldus
Tarkvaratehnikas on jõudlustestimine vajalik enne tarkvaratoodete turustamist. See tagab klientide rahulolu ja kaitseb investori investeeringuid toodete ebaõnnestumise eest. Jõudluskontrolli kulud on tavaliselt rohkem kui korvatud kliendi parema rahulolu, lojaalsuse ja hoidmisega.