Mis on mastaapsuse testimine?

Üldiselt tähendab skaleeritav “suutlikkust muuta suurust ja mahtu”. Sama tähendus on ka mastaapsuse testimisel. Tavaliselt öeldes on mastaapsuse testimine mis tahes tarkvara või rakenduse testimine, et kontrollida selle võimekust ning suurendada ja vähendada vastavalt kasutajate arvule, kes sellele konkreetsel / konkreetsel ajal juurde pääseb. Põhimõtteliselt kontrollib see rakenduse toimimist erineva töömahuga ja seetõttu nimetatakse seda ka jõudluse testimiseks. See kontrollib, kas süsteem suudab töötada ootuspäraselt isegi suure liikluse, andmemahu või päringu sageduse jms korral. See on mittefunktsionaalse testimise tüüp. Skaalautuvustesti saab mõõta erinevatel parameetritel sõltuvalt rakenduse tüübist ja seda saab teha riistvara, andmebaasi ja tarkvara abil.

Reaalses maailmas on väga oluline testida süsteemi mastaapsust enne selle vabastamist tootmiskeskkonnas. Mõelge e-poe veebisaidi stsenaariumile ja veebisait töötab tavapärastel päevadel hästi, kuid müügi või mõne muu erilise sündmuse ajal kasvas veebisaidi koormus / liiklus 2-3 korda ja veebisait reageerib väga aeglaselt või jookseb kokku mingil hetkel. See põhjustab turul suurt raha ja maine kaotust. Rakendused peavad suutma toime tulla paljude kasutajate taotluste, andmemahu ja muu töökoormuse erinevate stsenaariumidega. Mastaapsuse testimine tagab arendajatele, et rakendus on väljalaskmiseks valmis ja klientidele kättesaadav.

Paljud inimesed kasutavad termineid mastaapsuse testimine ja koormuse testimine vaheldumisi, kuid nende kahe vahel on palju erinevusi. Kuigi mõlemad on mittefunktsionaalsed testimised, tehakse koormustestid, et kontrollida, millisel hetkel maksimaalse koormuse rakendamine rakendust puruneks, kuid skaleeritavuse testimine toimub rakenduse erinevate atribuutide käitumise testimiseks, rakendades erinevaid koormusi minimaalsest maksimumini. Selle peamine eesmärk on testida rakenduse toimivust erinevatel koormustel, mitte testida rakenduse reageerimise ebaõnnestumise punkti.

Kuidas tehakse skaleeritavuse testimist?

Nagu eespool arutatud, tehakse skaleeritavuse testimist, et kontrollida rakenduse toimivust erineva töömahuga. Skaleeritavuse testimiseks järgitakse järgmisi samme, kasutades kõiki turul saadaolevaid mastaapsuse testimise tööriistu.

  • Esimene samm on määratleda korratav protsess, mis kestab kogu rakenduse elutsükli vältel.
  • Rakenduse testimiseks sobiva tarkvara / tööriista otsimine.
  • Hea testimiskeskkonna loomine, mis on peaaegu reproduktsioon tootmiskeskkonnast, kus toimub kogu testimine.
  • Seadistage mastaapsuse testimiseks vajalik riistvara.
  • Mitme virtuaalse kasutaja loomine lõimede kujul, et testida erinevatel koormustel.
  • Looge erinevaid katsestsenaariume, võttes arvesse erinevaid katsetingimusi.
  • Käitage testtsenaariume ülalloetud testkeskkonnas.
  • Hinnake tulemusi ja jälgige iga stsenaariumi jaoks loodud erinevaid graafikuid ja diagramme.
  • Rakenduse toimivuse parandamiseks võtke parandusmeetmed vastavalt ülaltoodud stsenaariumide tulemustele.

Skaalautuvuse testimise tööriistad

Mastaapsuse testimiseks kasutatav tööriist sõltub rakendusest, mida kasutaja soovib testida. Kuigi turul on saadaval palju mastaapsuse testimise tööriistu ja see on liiga avatud lähtekoodiga. Mõnda tööriista on nimetatud allpool:

  • LoadUI Pro
  • LoadNinja
  • Apache Jmeter
  • Laadimisvaade
  • Uuskoormus
  • Koormuse mõju
  • Blitz
  • Laadur

Skaalautuvustestide turul puuduvad parimad ja halvimad tööriistad. Igal tööriistal on oma eripärad rakenduse skaleeritavuse testimiseks, kuid igal organisatsioonil on teatud kriteeriumid ja rakenduse keskkonnamõjurid mõjutavad ka rakenduse testimiseks tööriista valimist. Testijad vajavad testimisriista, mis suudab erinevate loodud stsenaariumide korral koormustegurit käsitleda.

Skaalautuvuse testimise atribuudid

Allpool on toodud mõned skaleeritavuse testimise levinumad atribuudid:

1) läbilaskevõime

Läbilaskevõimsus on määratletud kui ühe aja jooksul töödeldud taotluste arv. Erinevate rakenduste puhul võib läbilaskevõime määratlus siiski erineda ja seda katsetatakse erineval viisil. Näiteks veebirakenduse puhul testitakse läbilaskevõimet, kontrollides ühiku ajaga töödeldud kasutaja taotletud arvu, andmebaasi puhul mõõdetakse läbilaskevõimet korraga töödeldavate päringute arvuga.

2) Mälu kasutamine

Mälu kasutamist testitakse ka selleks, et saada rakenduse jaoks mälukasutuse parimaid tulemusi. Mälu kasutuses testitakse rakenduses mis tahes toimingu täitmiseks kasutatud mälumahtu. Kuna mis tahes toimingu täitmisel kasutatakse RAM-i mälu, mis tuleks optimeerida mis tahes rakenduse tõrgeteta toimimiseks. Mälu vähem kasutamise huvides peaksid programmeerijad järgima häid programmeerimistavasid, näiteks vähem kasutama koondatud silmuseid, vähendama andmebaasi kokkulangevusi, käsitlema maksimaalseid valideerimisi ainult kliendi poolel jne. Mitu korda kulub rakendusel mälu, kuna suur arv päringuid, nii et arendajad peaksid selliste olukordade käsitlemiseks hoidma alati täiendavat andmebaasi.

3) CPU kasutamine

Protsessori kasutamist testitakse, et kontrollida protsessori kasutamist rakenduse mis tahes toimingu täitmisel. Protsessori kasutamist mõõdetakse megahertsides. Väiksema protsessori kasutamise ja suurema läbilaskevõime jaoks tuleks mis tahes programmeerimiskeeles kirjutatud veebirakenduste kood korralikult optimeerida. CPU kasutamise vähendamiseks peaksid arendajad vältima programmeerimispraktikaid nagu surnud ja üleliigne kood, lõimed, tarbetud ahelad. Unerežiim on parim meetod, mida tuleks kasutada protsessori kasutamise minimeerimiseks vahel.

4) võrgu kasutamine

Võrgusiseses kasutuses testitakse rakenduses konkreetse ülesande täitmiseks kulunud ribalaiust. Võrgu kasutamist mõõdetakse võrgu kaudu sekundis vastuvõetud või sekundis saadetud baitide, segmentide, pakettide järgi. Parima tulemuse saamiseks ideaalse rakenduse jaoks peaks võrgu kasutamine olema minimaalne. Programmeerijad kasutavad võrgu tarbimise ja rakenduse suure jõudluse vähendamiseks erinevaid ummikute tehnikaid.

5) reageerimise aeg

See on skaalautuvuse testimise üks olulisemaid atribuute. Reaktsiooniaeg on põhimõtteliselt aeg kasutaja päringu ja rakendusserverist reageerimise vahel. Reaktsiooniaega testitakse erinevatel koormustel, suurendades taotluste arvu kasutaja kohta või suurendades kasutajate arvu, et kontrollida, millisel ajahetkel hakkab rakendus hilja vastama. Rühmitatud keskkonnas kasutatakse erinevate sõlmede koormuse kontrollimiseks koormuse tasakaalustajat, nii et ei pruugi juhtuda, et üks sõlm on päringuga üle koormatud ja teine ​​sõlm ooteaega ootamas, mille tulemuseks on suurem reageerimisaeg. Skaleeritava rakenduse korral peaks reageerimise aeg olema minimaalne isegi liikluse suurendamisel. Lühendage reageerimisaega. Rakenduse parem jõudlus.

6) Veebisaidi laadimiseks kulub aega

Konkreetse veebilehe jaoks kulub rakenduse laadimiseks aega ka palju ja see mõjutab veebisaidi üldist toimivust. Iga veebisaidi kiireks laadimiseks soovitatakse programmeerijatel kasutada häid programmeerimistavasid ja kasutada kergeid tööriistu, pilte, videoid jne, mida saab hõlpsalt ja kiiresti laadida.

Mastaapsuse testimise meetodid

Skaalautuvuse testimisel on kaks lähenemisviisi:

1) horisontaalne skaleerimine

Horisontaalne skaleerimine hõlmab rohkem füüsiliste masinate ja ressursside lisamist ning seega iga masina / ressursi koormuse vähendamist. See protsess hõlmab võimsuse suurendamise asemel sõlmede arvu suurendamist, koormus jagatakse vanade ja äsja lisatud ressursside vahel. Horisontaalset skaleerimist nimetatakse skaleerimiseks, kuna mahu suurendamine toimub väljapoole, suurendades ressursse.

Horisontaalset skaleerimist teevad suured ettevõtted, nagu Google, Yahoo, Facebook, Amazon jne, kellel on väga suured projektid / rakendused, mis töötavad mitme sõlmega hajutatud keskkonnas. See nõuab kõrgetasemelist andmetöötlust ja seda on võimalik saavutada rühmitatud, koormuse tasakaalustamise ja hajutatud failisüsteemide abil. Horisontaalne skaleerimine hõlmab andmete osadeks jaotamist, st andmed jagatakse erinevate sõlmede vahel. kuigi ühe sõlme läbilaskevõime jääb samaks ja seda ei vähendata, kuid koormus jaguneb erinevate sõlmede vahel ja seega paraneb üldine jõudlus erinevate koormuste korral. Ehkki teoreetiliselt on olemasoleva kogumi ressursse lisades horisontaalset skaleerimist lihtsam teha, on praktiliselt siiski rakenduse mastaapsus skaleerimine.

2) vertikaalne skaleerimine

Vertikaalne skaleerimine hõlmab juba olemasolevate masinate võimsuse suurendamist serverisse nii protsessoris, RAMis kui ka kettal. Selleks võib olla samasse serverisse rohkem protsessorite lisamine. Näiteks enne töö alustamist ühe protsessoriga ühe koormuse suurenemise tõttu hakkab süsteemi jõudlus halvenema, vaatamata ühe keskseadme kasutamisele on ühes serveris suurenenud protsessorite arv. Kui süsteemi hea jõudluse säilitamiseks suurendatakse mälumahtu 4 GB-lt 16 GB-ni või suurendatakse ketta suurust olemasolevast, siis tehakse vertikaalne skaleerimine.

Vertikaalset skaleerimist teevad üldiselt väikesed või keskmise suurusega ettevõtted väikeste rakenduste jaoks, kus suureneva koormuse toimivust saab säilitada, lihtsalt suurendades juba kasutatud ressursside mahtu ja mahtu. Vertikaalse skaleerimise korral asuvad andmed ühel sõlmel ühes kohas ja koormus jagatakse mitme sõlme kaudu erinevate protsessorite ja mälu vahel. Vertikaalne skaleerimine on suhteliselt keeruline ja piirdub masina või serveri konkreetse mahutavusega. MySQL on hea näide vertikaalsest skaleerumisest ja seda saab saavutada väikestelt massidelt suurematele masinatele üleminekul. \

Mastaapsuse testimise eelised ja puudused

Eelised

Allpool on toodud mõned skaleeritavuse testimise eelised:

  • Skaalautuvuse testimise üks olulisemaid eeliseid on see, et see määrab konkreetse koormuse korral lõppkasutaja kogemuse, nii et probleemide lahendamiseks ja rakenduse mastabeeritavamaks muutmiseks saab eelnevalt võtta parandusmeetmeid.
  • See aitab kindlaks teha testitava veebirakenduse piiranguid kas reageerimisaja, võrgukasutuse, protsessori kasutamise jne osas.
  • Rakenduse halva toimimise tõttu tohutu raha kaotamise riski ja ettevõtte maine vähendamiseks on väga oluline teha range mastaapsuse testimine enne selle vabastamist tootmiskeskkonnas.
  • See paljastab katsetamisfaasis olevate rakenduste mitmesuguste jõudlusprobleemide täpse põhjuse, mis säästab palju aega ja raha, kui see tuvastatakse tootmiskeskkonnas.
  • Mastaapsuse testimine aitab ka tõhusalt jälgida tööriistakasutust.

Puudused

Mõni mastaapsuse testimise puudus on:

  • Testimiskeskkond ei ole alati täpselt samasugune kui tootmiskeskkond ja seetõttu võib see põhjustada erinevaid probleeme ja erinevaid tulemusi.
  • Täiustatud tööriistade kasutamine mastaapsuse testimiseks ja spetsiaalse testimisrühma kasutamine jõudluskontrolli jaoks võib viia projektide ülemäärase eelarveni.
  • Skaalautuvuse testimise kõigi atribuutide testimiseks kuluv aeg on mõnikord väga pikk ja võib põhjustada viivitusi projekti tähtaegadest kinnipidamisel.
  • Mõnikord ebaõnnestuvad testid, mis tegelikult töötavad hästi, ebaõnnestuvad valedes katsestsenaariumide ja testiskriptide tõttu ebavajalike muudatuste tegemisel ajaraiskamisega.
  • Mõnikord on funktsionaalsed vead maha jäetud ja neid ei saa mastaapsuse testimisel tuvastada.
  • Kohati on pakutav testiaken väga kitsas, et äriprotsesse mitte häirida ja seega jäävad puudused katmata.

Järeldus

Tarkvarasektoris on väga oluline kliendile kvaliteeditulemused edastada ning parimate tulemuste ja toimivuse tagamiseks on mastaapsuse testimine rakenduse täielikuks väljatöötamiseks enne tootmiskeskkonnas avaldamist. Skaalautuvustesti peamine eesmärk on leida, millal rakendus hakkab erinevate töökoormuste rakendamisel halvenema, et võtta ennetavaid meetmeid ja teha muudatusi, et vähendada raha kaotamise ja turumaine riski. Ehkki skaleeritavuse testimiseks kasutatav meetod ja tööriist erinevad organisatsioonide lõikes ja rakenduste lõikes.

Nüüd on peaaegu kõik ettevõtted lisanud skaleeritavuse testimise oma testimisprotsessi osana. Skaalautuvuse testimiseks on vaja eraldi spetsialistide ja testijate meeskonda, kellel on süsteemist täielikud teadmised ja tugevad analüüsioskused. Skaalautuvustestide turul on inimeste järele suur nõudlus ja ettevõtted on valmis pakkuma professionaalidele nägusaid pakette.

Soovitatavad artiklid

See on mastaapsuse testimise juhend. Siin käsitleme skaleeritavuse testimise atribuute, tööriistu ja mastaapsuse testimise lähenemisviise, samuti mastaapsuse testimise eeliseid ja puudusi. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Jõudluse testimise tööriistad
  2. SOA testimine
  3. DevOps testimisriistad
  4. Musta kasti testimine
  5. Musta kasti testimise tehnikad

Kategooria: