Čo je testovanie škálovateľnosti?

Všeobecne povedané, škálovateľné znamená „byť schopný meniť veľkosť a objem“. Rovnaký je význam aplikovaný na testovanie škálovateľnosti. Z hľadiska laikov je testovanie škálovateľnosti testovanie akéhokoľvek softvéru alebo aplikácie na overenie jeho schopnosti znášať a škálovať nahor a nadol podľa počtu používateľov, ktorí k nemu majú prístup v konkrétnom / špecifickom čase. V zásade kontroluje výkon aplikácie pri rôznych pracovných zaťaženiach, a preto sa nazýva aj testovanie výkonu. Kontroluje, či je systém schopný fungovať tak, ako sa očakávalo, aj v prípade vysokej prevádzky, objemu údajov alebo frekvencie požiadaviek atď. Je to typ nefunkčného testovania. Testovanie škálovateľnosti sa môže merať na rôznych parametroch v závislosti od typu aplikácie a môže sa vykonávať na hardvéri, databáze a softvéri.

V skutočnom svete je veľmi dôležité otestovať škálovateľnosť systému pred jeho uvedením do produkčného prostredia. Zoberme si scenár webovej stránky s elektronickým obchodom a web funguje normálne v normálnych dňoch, ale v čase predaja alebo pri akejkoľvek zvláštnej príležitosti sa zaťaženie / prenos na webe zvýšia o 2 až 3-krát a webová stránka začne reagovať veľmi pomaly alebo zlyhá. v určitom okamihu. Spôsobí to obrovskú stratu peňazí a reputáciu na trhu. Aplikácie musia byť schopné zvládnuť rôzne scenáre veľkého počtu užívateľských požiadaviek, objemu dát a iných pracovných za ažení. Testovanie škálovateľnosti zaisťuje vývojárom, že aplikácia je pripravená na vydanie a dostupná zákazníkom.

Mnoho ľudí používa pojmy Testovanie škálovateľnosti a Testovanie záťaže zameniteľne, medzi týmito dvoma je však veľký rozdiel. Aj keď obidve sú nefunkčné, testuje sa záťažové testovanie, aby sa skontrolovalo, kedy sa pri aplikácii maximálneho zaťaženia aplikácia preruší, ale testovanie škálovateľnosti sa vykonáva na testovanie správania rôznych atribútov aplikácie pri aplikovaní rôznych záťaží od minima po maximum. Jeho hlavným cieľom je skôr otestovať výkonnosť aplikácie pri rôznych zaťaženiach, ako otestovať zlyhanie aplikácie pri žiadosti.

Ako sa vykonáva testovanie škálovateľnosti?

Ako je uvedené vyššie, testovanie škálovateľnosti sa vykonáva na kontrolu výkonu aplikácie pri rôznych pracovných zaťaženiach. Za účelom vykonania testovania škálovateľnosti nasledujú nasledujúce kroky s použitím akéhokoľvek nástroja na testovanie škálovateľnosti dostupného na trhu.

  • Prvým krokom je definovanie opakovateľného procesu, ktorý prebieha počas celého životného cyklu aplikácie.
  • Hľadanie vhodného softvéru / nástroja na testovanie aplikácie.
  • Vytvorenie dobrého testovacieho prostredia, ktoré je takmer replikou produkčného prostredia, v ktorom sa vykonáva celé testovanie.
  • Nakonfigurujte hardvér potrebný na vykonanie testovania škálovateľnosti.
  • Vytvorenie viacerých virtuálnych používateľov vo forme vlákien na vykonávanie testov pri rôznych zaťaženiach.
  • Vytvorte rôzne testovacie scenáre s ohľadom na rôzne testovacie podmienky.
  • Spustite testovacie scenáre v testovacom prostredí vytvorenom vyššie.
  • Vyhodnoťte výsledky a sledujte rôzne grafy a tabuľky generované pre každý scenár.
  • Vykonajte nápravné opatrenia podľa výsledkov uvedených vyššie uvedených scenárov, aby ste zvýšili výkonnosť aplikácie.

Nástroje na testovanie škálovateľnosti

Nástroj používaný na testovanie škálovateľnosti závisí od aplikácie, ktorú chce užívateľ testovať. Na trhu je síce veľa nástrojov na škálovateľnosť, ale aj príliš otvorený zdroj. Niektoré nástroje sú uvedené nižšie:

  • LoadUI Pro
  • LoadNinja
  • Apache Jmeter
  • Načítať zobrazenie
  • Neo Load
  • Dopad zaťaženia
  • prudký útok
  • loader

Na trhu nie je klasifikácia najlepších a najhorších nástrojov na testovanie škálovateľnosti. Každý nástroj poskytuje svoje vlastné špeciálne funkcie na testovanie škálovateľnosti aplikácie, ale každá organizácia má určité kritériá a environmentálne faktory aplikácie tiež ovplyvňujú pri výbere akéhokoľvek nástroja na testovanie aplikácie. Testéri potrebujú testovací nástroj, ktorý dokáže zvládnuť faktor zaťaženia v rôznych vytvorených scenároch.

Atribúty testovania škálovateľnosti

Nižšie sú uvedené niektoré z bežných atribútov testovania škálovateľnosti:

1) Výkon

Priepustnosť je definovaná ako počet spracovaných žiadostí za jednotku času. Pre rôzne aplikácie sa však definícia priepustnosti môže líšiť a testuje sa iným spôsobom. Napríklad pre webovú aplikáciu sa priepustnosť testuje overením počtu používateľov požadovaných spracovaných v jednotkovom čase, zatiaľ čo v prípade databázy sa priepustnosť meria počtom dopytov spracovaných naraz.

2) Využitie pamäte

Využitie pamäte sa testuje aj s cieľom získať čo najlepšie výsledky spotreby pamäte pre aplikáciu. V časti Využitie pamäte sa testuje množstvo pamäte, ktoré sa používa na vykonávanie ľubovoľných úloh v aplikácii. Pretože pri vykonávaní akejkoľvek úlohy sa používa pamäť RAM, ktorá by mala byť optimalizovaná pre hladký chod ľubovoľnej aplikácie. Pre menšie využitie pamäte by mali programátori dodržiavať správne programovacie postupy, ako napríklad menšie využitie redundantných slučiek, zníženie prístupov do databázy, spracovanie maximálnych validácií iba na strane klienta atď. Aplikácii často dochádza nedostatok pamäte kvôli veľké množstvo žiadostí, takže vývojári by si vždy mali uchovávať ďalšiu databázu, ktorá by takéto situácie riešila.

3) Využitie CPU

Využitie CPU je testované na kontrolu CPU využívaného pri vykonávaní akejkoľvek úlohy v aplikácii. Využitie CPU sa meria v MegaHertz. Kvôli menšiemu využitiu CPU a väčšej priepustnosti by sa mal kód každej webovej aplikácie napísaný v ľubovoľnom programovacom jazyku správne optimalizovať. Vývojári by sa mali vyhnúť programovacím praktikám, ako je mŕtvy a redundantný kód, vlákna, zbytočné slučky, aby sa znížilo využitie CPU. Spánok je najlepšia metóda, ktorá by sa mala používať na minimalizovanie využitia CPU medzi nimi.

4) Využitie siete

Pri použití v sieti sa testuje množstvo šírky pásma spotrebované pri vykonávaní konkrétnej úlohy v aplikácii. Využitie siete sa meria bajtmi, segmentmi, paketmi prijatými alebo odoslanými za sekundu v sieti. Aby ideálna aplikácia poskytla najlepšie výsledky, malo by byť použitie siete minimálne. Programátori používajú rôzne techniky preťaženia, aby znížili spotrebu siete a vysoký výkon aplikácie.

5) Čas odozvy

Je to jeden z najdôležitejších atribútov pri testovaní škálovateľnosti. Čas odozvy je v podstate čas medzi požiadavkou užívateľa a odpoveďou z aplikačného servera. Čas odozvy sa testuje pri rôznych zaťaženiach buď zvýšením počtu požiadaviek na používateľa alebo zvýšením počtu používateľov, aby sa overilo, že v akom okamihu aplikácia začne reagovať neskoro. V klastrovanom prostredí sa vyvažovač záťaže používa na kontrolu zaťaženia v rôznych uzloch, takže nemusí byť možné, že jeden uzol je preťažený požiadavkou a ďalší uzol nečinne čaká na požiadavku, čo vedie k dlhšiemu času odozvy. V prípade škálovateľnej aplikácie by doba odozvy mala byť minimálna aj pri zvyšovaní prenosu. Skráťte čas odozvy. Vyšší výkon aplikácie.

6) Na načítanie webovej stránky z webu je potrebný čas

Čas potrebný na načítanie aplikácie do konkrétnej webovej stránky je tiež veľmi dôležitý a ovplyvňuje celkový výkon webovej stránky. Aby sa každá webová stránka načítala rýchlo, programátorom sa odporúča používať osvedčené postupy programovania a používať ľahké nástroje, obrázky, videá atď., Ktoré sa dajú načítať ľahko a rýchlo.

Prístupy k testovaniu škálovateľnosti

K testovaniu škálovateľnosti existujú dva prístupy:

1) Horizontálne škálovanie

Horizontálne škálovanie zahŕňa pridanie ďalších fyzických strojov a zdrojov, a teda zníženie zaťaženia každého stroja / zdroja. Tento proces zahŕňa zvýšenie počtu uzlov namiesto zvýšenia kapacity, záťaž je rozdelená medzi staré a novo pridané zdroje. Horizontálne škálovanie sa označuje ako škálovanie, pretože škálovanie sa vykonáva smerom von zvyšovaním zdrojov.

Horizontálne škálovanie robia veľké spoločnosti ako Google, Yahoo, Facebook, Amazon atď., Ktoré majú veľmi veľké projekty / aplikácie bežiace v distribuovanom prostredí s viacerými uzlami. Vyžaduje si vysokú úroveň výpočtovej techniky a dá sa dosiahnuť pomocou klastrovaných, vyvážených a distribuovaných súborových systémov. Horizontálne škálovanie zahŕňa rozdelenie údajov, tj údaje sú rozdelené medzi rôzne uzly. hoci kapacita jedného uzla zostáva rovnaká a neznižuje sa, ale záťaž je rozdelená medzi rôzne uzly, a preto je celkový výkon pod rôznymi záťažami zlepšený. Aj keď teoreticky je ľahšie urobiť horizontálne škálovanie pridaním zdrojov v existujúcom fonde, ale prakticky je veľmi ťažké škálovať aplikáciu.

2) Vertikálna zmena mierky

Vertikálne škálovanie zahŕňa zvýšenie výkonu už existujúcich počítačov buď v CPU, RAM, Disk na server. Môže to byť pridanie viacerých CPU na jeden jediný server. Napríklad predtým, ako sa práca spracuje pomocou 1 CPU, v dôsledku zvýšenia zaťaženia začne výkon systému klesať, na to napriek použitiu 1 CPU sa počet CPU zvýšil na jednom serveri. Ak sa požiadavka na pamäť zvýši zo 4 GB na 16 GB na zachovanie dobrého výkonu systému alebo sa veľkosť disku zvýši z existujúcej veľkosti, vykoná sa vertikálne prispôsobenie.

Vertikálne škálovanie spravidla robia malé alebo stredné spoločnosti pre malé aplikácie, kde je možné udržať výkon zvýšením záťaže len zvýšením kapacity a veľkosti už použitých zdrojov. Vo vertikálnom meradle sa dáta nachádzajú na jednom uzle na jednom mieste a záťaž je rozdelená medzi rôzne CPU a pamäť prostredníctvom viac uzlov. Vertikálne škálovanie je pomerne ťažké a je obmedzené na konkrétnu kapacitu stroja alebo servera. MySQL je dobrým príkladom vertikálneho škálovania a dá sa dosiahnuť prechodom z malých na oveľa väčšie stroje. \

Výhody a nevýhody testovania škálovateľnosti

výhody

Nižšie sú uvedené niektoré z výhod testovania škálovateľnosti:

  • Jednou z najdôležitejších výhod testovania škálovateľnosti je to, že určuje skúsenosti koncového používateľa pri špecifickom zaťažení, takže je možné vopred prijať nápravné opatrenia na odstránenie problémov a zvýšenie škálovateľnosti aplikácie.
  • Pomáha určiť obmedzenia testovanej webovej aplikácie z hľadiska času odozvy, použitia siete, využitia CPU atď.
  • Aby sa znížilo riziko obrovskej straty peňazí a reputácie spoločnosti z dôvodu zlého výkonu aplikácie, je veľmi dôležité pred uvoľnením do výrobného prostredia vykonať dôkladné testovanie škálovateľnosti.
  • Odhaľuje presnú príčinu rôznych problémov s výkonom v aplikácii vo fáze testovania, ktorá šetrí veľa času a peňazí, ak sa zistí vo výrobnom prostredí.
  • Testovanie škálovateľnosti tiež pomáha pri efektívnom sledovaní využitia nástrojov.

nevýhody

Medzi nevýhody testovania škálovateľnosti patrí:

  • Testovacie prostredie nie je vždy úplne rovnaké ako výrobné prostredie, a preto môže viesť k rôznym problémom a rôznym výsledkom.
  • Použitie pokročilých nástrojov na testovanie škálovateľnosti a určený tím pre testovanie výkonnosti na testovanie výkonu môžu viesť k nadmernému rozpočtu projektov.
  • Čas strávený testovaním každého atribútu testovania škálovateľnosti je niekedy veľmi vysoký a môže spôsobiť oneskorenie pri dodržaní termínov projektu.
  • Testy, ktoré skutočne fungujú dobre, niekedy zlyhajú vo fáze testovania kvôli nesprávnym testovacím scenárom a testovacie skripty spôsobujú stratu času pri vykonávaní zbytočných zmien.
  • Niekedy sú funkčné chyby pozadu a nemôžu byť identifikované pri testovaní škálovateľnosti.
  • V niektorých prípadoch je ponúkané testovacie okno veľmi úzke, aby nenarušilo obchodné procesy, a preto chyby zostávajú neodhalené.

záver

V softvérovom priemysle je veľmi dôležité poskytovať klientovi kvalitné výsledky a pre dosiahnutie najlepších výsledkov a výkonu je testovanie škálovateľnosti nevyhnutnosťou pre kompletný vývoj aplikácie pred jej vydaním v produkčnom prostredí. Hlavným cieľom testovania škálovateľnosti je zistiť, kedy sa aplikácia začne zhoršovať pri uplatňovaní rôznych pracovných za ažení, aby mohla prijať preventívne opatrenia a vykonať zmeny, aby sa mohlo znížiť riziko straty peňazí a reputácie trhu. Metóda a nástroj používaný na testovanie škálovateľnosti sa líšia v závislosti od organizácie a organizácie a od aplikácie k aplikácii.

Teraz takmer všetky spoločnosti pridali testovanie škálovateľnosti ako súčasť svojho testovacieho procesu. Testovanie škálovateľnosti si vyžaduje samostatný tím odborníkov a testerov, ktorí majú úplné vedomosti o systéme a majú silné analytické schopnosti. Existuje veľký dopyt po ľuďoch na trhu pre testovanie škálovateľnosti a spoločnosti sú pripravené ponúkať profesionálnym zákazníkom pekné balíčky.

Odporúčané články

Toto je príručka pre testovanie škálovateľnosti. Tu diskutujeme o atribútoch, nástrojoch a prístupoch k testovaniu škálovateľnosti a o výhodách a nevýhodách testovania škálovateľnosti. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Nástroje na testovanie výkonnosti
  2. Testovanie SOA
  3. Nástroje na testovanie DevOps
  4. Testovanie čiernej skrinky
  5. Techniky testovania čiernej skrinky

Kategórie: