Výukový program na testovanie výkonnosti: Čo je, typy, metriky a Príklad

Obsah:

Anonim

Testovanie výkonu

Testovanie výkonu je proces testovania softvéru používaný na testovanie rýchlosti, doby odozvy, stability, spoľahlivosti, škálovateľnosti a využitia zdrojov softvérovej aplikácie pri konkrétnom pracovnom zaťažení. Hlavným účelom testovania výkonu je identifikovať a eliminovať úzke miesta výkonu v softvérovej aplikácii. Je to podmnožina výkonového inžinierstva a tiež známa ako „Perf Testing“.

Testovanie výkonu sa zameriava na kontrolu softvérových programov

  • Rýchlosť - určuje, či aplikácia reaguje rýchlo
  • Škálovateľnosť - určuje maximálne zaťaženie používateľa, ktoré softvérová aplikácia dokáže spracovať.
  • Stabilita - Určuje, či je aplikácia stabilná pri rôznych zaťaženiach

V tomto návode sa naučíte

  • Čo je to Testovanie výkonu?
  • Prečo testovanie výkonu?
  • Druhy testovania výkonu
  • Bežné problémy s výkonom
  • Proces testovania výkonu
  • Metriky testovania výkonu: Monitorované parametre
  • Príklady testovacích prípadov výkonnosti
  • Nástroje na testovanie výkonu
  • FAQ

Prečo testovanie výkonu?

Funkcie podporované softvérovým systémom nie sú jediným problémom. Dôležitý je výkon softvérovej aplikácie, ako je jej čas odozvy, spoľahlivosť, využitie zdrojov a škálovateľnosť. Cieľom testovania výkonu nie je nájsť chyby, ale odstrániť úzke miesta výkonu.

Testovanie výkonu sa vykonáva s cieľom poskytnúť zúčastneným stranám informácie o ich aplikácii týkajúce sa rýchlosti, stability a škálovateľnosti. Dôležitejšie je, že Testovanie výkonu odhaľuje, čo je potrebné vylepšiť predtým, ako sa produkt dostane na trh. Bez Testovania výkonu bude softvér pravdepodobne trpieť problémami, ako sú: pomalý beh, zatiaľ čo ho niekoľko používateľov používa súčasne, nezrovnalosti medzi rôznymi operačnými systémami a slabá použiteľnosť.

Testovanie výkonu určí, či ich softvér spĺňa požiadavky na rýchlosť, škálovateľnosť a stabilitu pri očakávanom pracovnom zaťažení. Aplikácie odosielané na trh so slabými metrikami výkonu v dôsledku neexistujúceho alebo slabého testovania výkonu si pravdepodobne získajú zlú reputáciu a nesplnia očakávané predajné ciele.

Mali by sa tiež testovať výkonnosť kriticky dôležitých aplikácií, ako sú programy vypúšťania z vesmíru alebo zdravotnícke prístroje na záchranu života, aby sa zabezpečilo ich dlhodobé fungovanie bez odchýlok.

Podľa Dunn & Bradstreet 59% spoločností z rebríčka Fortune 500 zažíva každý týždeň odhadom 1,6 hodiny výpadku. Ak vezmeme do úvahy, že priemerná spoločnosť zaradená do rebríčka Fortune 500 s minimálne 10 000 zamestnancami platí 56 dolárov za hodinu, pracovná časť nákladov na prestoje pre takúto organizáciu by bola 896 000 dolárov týždenne, čo by predstavovalo viac ako 46 miliónov dolárov ročne.

Odhaduje sa, že iba päťminútový výpadok webu Google.com (19. augusta - 13) stojí vyhľadávacieho giganta až 545 000 dolárov.

Odhaduje sa, že spoločnosti prišli o tržby v hodnote 1100 dolárov za sekundu v dôsledku nedávneho výpadku webovej služby Amazon.

Testovanie výkonu je preto dôležité.

Druhy testovania výkonu

  • Testovanie záťaže - kontroluje schopnosť aplikácie pracovať pri predpokladanom zaťažení používateľa. Cieľom je identifikovať úzke miesta výkonu pred uvedením softvérovej aplikácie do života.
  • Stresové testovanie - zahŕňa testovanie aplikácie pri extrémnom pracovnom zaťažení, aby sa zistilo, ako zvláda vysokú prevádzku alebo spracovanie údajov. Cieľom je identifikovať bod zlomu aplikácie.
  • Testovanie odolnosti - vykonáva sa s cieľom zabezpečiť, aby softvér zvládol očakávané zaťaženie počas dlhého časového obdobia.
  • Testovanie hrotov - testuje reakciu softvéru na náhle veľké hroty v záťaži generovanej používateľmi.
  • Testovanie objemu - v časti Testovanie objemu veľké č. z. Údaje sa ukladajú do databázy a sleduje sa celkové správanie softvérového systému. Cieľom je skontrolovať výkon softvérovej aplikácie pri rôznych objemoch databázy.
  • Testovanie škálovateľnosti - Cieľom testovania škálovateľnosti je určiť účinnosť softvérovej aplikácie pri „škálovaní“, aby sa podporilo zvýšenie zaťaženia používateľov. Pomáha plánovať zvýšenie kapacity vášho softvérového systému.

Bežné problémy s výkonom

Väčšina problémov s výkonom sa točí okolo rýchlosti, času odozvy, času načítania a zlej škálovateľnosti. Rýchlosť je často jedným z najdôležitejších atribútov aplikácie. Pomaly bežiaca aplikácia stratí potenciálnych používateľov. Testovanie výkonu sa vykonáva s cieľom zabezpečiť, aby aplikácia bežala dostatočne rýchlo na to, aby udržala pozornosť a záujem používateľa. Zoznámte sa s nasledujúcim zoznamom bežných problémov s výkonom a všimnite si, ako je rýchlosť spoločným faktorom mnohých z nich:

  • Dlhá doba načítania - Doba načítania je zvyčajne začiatočný čas potrebný na spustenie aplikácie. Toto by sa malo všeobecne obmedziť na minimum. Aj keď niektoré aplikácie nie je možné načítať za menej ako minútu, čas načítania by sa mal podľa možnosti ponechať na niekoľko sekúnd.
  • Slabý čas odozvy - čas odozvy je čas, ktorý uplynie od času, keď používateľ zadá údaje do aplikácie, kým aplikácia na tento výstup neodošle odpoveď. Spravidla by to malo byť veľmi rýchle. Ak používateľ musí čakať príliš dlho, opäť stráca záujem.
  • Slabá škálovateľnosť - Softvérový produkt trpí zlou škálovateľnosťou, keď nedokáže spracovať očakávaný počet používateľov alebo ak nie je vhodný pre dostatočne široký okruh používateľov. Je potrebné vykonať testovanie záťaže, aby ste si boli istí, že aplikácia zvládne predpokladaný počet používateľov.
  • Úzke miesta - Úzke miesta sú prekážky v systéme, ktoré znižujú celkový výkon systému. Úzke miesto je, keď buď chyby kódovania alebo problémy s hardvérom spôsobia zníženie priepustnosti pri určitých zaťaženiach. Úzke miesto je často spôsobené jednou chybnou časťou kódu. Kľúčom k vyriešeniu problému s úzkym profilom je nájsť časť kódu, ktorá spôsobuje spomalenie, a pokúsiť sa to tam napraviť. Úzke miesta sa zvyčajne opravia buď opravou nedostatočne spustených procesov, alebo pridaním ďalšieho hardvéru. Niektoré bežné prekážky výkonu
    • Využitie CPU
    • Využitie pamäte
    • Využitie siete
    • Obmedzenia operačného systému
    • Využitie disku

Proces testovania výkonu

Metodika prijatá na testovanie výkonnosti sa môže veľmi líšiť, ale cieľ testovania výkonnosti zostáva rovnaký. Môže to pomôcť preukázať, že váš softvérový systém spĺňa určité vopred definované výkonnostné kritériá. Alebo to môže pomôcť porovnať výkonnosť dvoch softvérových systémov. Môže tiež pomôcť identifikovať časti vášho softvérového systému, ktoré znižujú jeho výkon.

Ďalej uvádzame všeobecný postup vykonávania testovania výkonnosti

  1. Identifikujte svoje testovacie prostredie - Poznajte svoje fyzické testovacie prostredie, produkčné prostredie a dostupné testovacie nástroje. Pred začatím procesu testovania pochopte podrobnosti o hardvérových, softvérových a sieťových konfiguráciách použitých počas testovania. Pomôže testerom vytvoriť efektívnejšie testy. Pomôže tiež identifikovať možné výzvy, s ktorými sa môžu testéri stretnúť počas postupov testovania výkonu.
  2. Identifikujte kritériá prijatia výkonu - Patria sem ciele a obmedzenia týkajúce sa priepustnosti, časov odozvy a alokácie zdrojov. Je tiež potrebné identifikovať kritériá úspechu projektu mimo týchto cieľov a obmedzení. Testéri by mali mať oprávnenie stanovovať výkonnostné kritériá a ciele, pretože špecifikácie projektu často nebudú obsahovať dostatočne širokú škálu výkonnostných kritérií. Niekedy nemusí byť vôbec žiadny. Ak je to možné, nájdenie podobnej aplikácie na porovnanie je dobrý spôsob stanovenia výkonnostných cieľov.
  3. Plánovanie a testovanie výkonu - Zistite, ako sa bude pravdepodobne medzi koncovými používateľmi meniť použitie, a identifikujte kľúčové scenáre, ktoré sa dajú otestovať pre všetky možné prípady použitia. Je potrebné simulovať rôznych koncových používateľov, naplánovať údaje o testoch výkonnosti a načrtnúť, aké metriky sa zhromaždia.
  4. Konfigurácia testovacieho prostredia - Pred vykonaním pripravte testovacie prostredie. Usporiadajte tiež nástroje a ďalšie zdroje.
  5. Implementácia návrhu testu - Vytvorte testy výkonu podľa návrhu testu.
  6. Spustiť testy - Vykonať a monitorovať testy.
  7. Analyzovať, ladiť a testovať - ​​konsolidovať, analyzovať a zdieľať výsledky testov. Potom dolaďte a znovu otestujte, či došlo k zlepšeniu alebo zníženiu výkonu. Pretože vylepšenia sa pri každom opätovnom testovaní zväčša zmenšujú, zastavte sa, keď je problémové miesto spôsobené CPU. Potom môžete zvážiť možnosť zvýšenia výkonu procesora.

Metriky testovania výkonu: Monitorované parametre

Medzi základné parametre sledované počas testovania výkonu patria:

  • Využitie procesora - množstvo času, ktoré procesor strávi vykonávaním nečinných vlákien.
  • Využitie pamäte - množstvo fyzickej pamäte dostupnej pre procesy v počítači.
  • Čas disku - množstvo času, ktoré je disk zaneprázdnený vykonaním požiadavky na čítanie alebo zápis.
  • Šírka pásma - zobrazuje počet bitov za sekundu, ktoré používa sieťové rozhranie.
  • Súkromné ​​bajty - počet bajtov, ktoré proces pridelil a ktoré nie je možné zdieľať medzi inými procesmi. Používajú sa na meranie úniku pamäte a využitia.
  • Committed memory - množstvo použitej virtuálnej pamäte.
  • Pamäťové stránky za sekundu - počet stránok zapísaných na disk alebo načítaných z disku s cieľom vyriešiť chyby pevnej stránky. Poruchy tvrdej stránky sú, keď sa kód, ktorý nie je z aktuálnej pracovnej sady, vyvolá odkiaľkoľvek a získa sa z disku.
  • Poruchy stránky / sekundu - celková rýchlosť spracovávania chybných stránok procesorom. K tomu opäť dôjde, keď proces vyžaduje kód mimo jeho pracovnej sady.
  • Prerušenie CPU za sekundu - je priemer. počet hardvérových prerušení, ktoré procesor prijíma a spracováva každú sekundu.
  • Dĺžka frontu disku - je priem. č. požiadaviek na čítanie a zápis do frontu na vybranom disku počas vzorového intervalu.
  • Dĺžka sieťového výstupného frontu - dĺžka frontu výstupných paketov v paketoch. Čokoľvek viac ako dva znamená oneskorenie a úzke miesta je potrebné zastaviť.
  • Sieťové bajty spolu za sekundu - rýchlosť, ktorú sú bajty odosielané a prijímané na rozhraní vrátane rámovacích znakov.
  • Čas odozvy - čas od okamihu, keď používateľ zadá požiadavku, do prijatia prvého znaku odpovede.
  • Priepustnosť - rýchlosť, ktorú počítač alebo sieť prijímajú požiadavky za sekundu.
  • Množstvo združeného pripojenia - počet požiadaviek používateľov, ktorým vyhovujú združené pripojenia. Čím viac požiadaviek uspokojí pripojenie v skupine, tým lepší bude výkon.
  • Maximálny počet aktívnych relácií - maximálny počet relácií, ktoré môžu byť aktívne naraz.
  • Pomery prístupov - to súvisí s počtom príkazov SQL, ktoré sú spracovávané údajmi v pamäti, namiesto drahých I / O operácií. Toto je dobré miesto pre začatie riešenia problémov s úzkym profilom.
  • Hity za sekundu - počet prístupov na webový server počas každej sekundy testu zaťaženia.
  • Vrátiť segment - množstvo dát, ktoré je možné vrátiť späť v ľubovoľnom okamihu.
  • Databázové zámky - zamykanie tabuliek a databáz je potrebné monitorovať a starostlivo vyladiť.
  • Horné čakania - sú monitorované, aby sa určilo, aké čakacie doby je možné skrátiť, keď sa jedná o rýchlosť načítania údajov z pamäte
  • Počet vlákien - Stav aplikácií je možné merať pomocou čísla č. vlákien, ktoré sú spustené a momentálne aktívne.
  • Zber odpadu - súvisí s vrátením nepoužitej pamäte späť do systému. Je potrebné sledovať efektívnosť zberu odpadu.

Príklady testovacích prípadov výkonnosti

  • Overte si, že doba odozvy nie je dlhšia ako 4 sekundy, keď na web súčasne vstúpi 1 000 používateľov.
  • Ak je sieťové pripojenie pomalé, overte si, že doba odozvy aplikácie pri načítaní je v prijateľnom rozmedzí
  • Pred zlyhaním aplikácie skontrolujte maximálny počet používateľov, ktorý dokáže spracovať.
  • Skontrolujte čas vykonania databázy, keď je súčasne načítaných / zapísaných 500 záznamov.
  • Skontrolujte využitie procesora a pamäte aplikácie a databázového servera za podmienok špičkového zaťaženia
  • Skontrolujte dobu odozvy aplikácie pri nízkom, normálnom, strednom a vysokom zaťažení.

Počas vykonávania testu skutočnej výkonnosti sú neurčité výrazy ako prijateľný rozsah, veľké zaťaženie atď. Nahradené konkrétnymi číslami. Výkonní inžinieri stanovili tieto počty podľa obchodných požiadaviek a technického prostredia aplikácie.

Nástroje na testovanie výkonu

Na trhu existuje široká škála nástrojov na testovanie výkonu. Nástroj, ktorý si vyberiete na testovanie, bude závisieť od mnohých faktorov, ako sú typy podporovaných protokolov, náklady na licenciu, hardvérové ​​požiadavky, podpora platforiem atď. Nižšie je uvedený zoznam populárne používaných testovacích nástrojov.

  • LoadNinja - predstavuje revolúciu v spôsobe načítania testu. Tento cloudový nástroj na testovanie záťaže umožňuje tímom zaznamenávať a okamžite prehrávať komplexné záťažové testy bez zložitej dynamickej korelácie a spúšťať tieto záťažové testy v reálnych prehľadávačoch v rozsahu. Tímy dokážu zvýšiť pokrytie testami. & skrátiť čas testovania záťaže o viac ako 60%.
  • NeoLoad - je platforma na testovanie výkonu určená pre DevOps, ktorá sa bezproblémovo integruje do vášho existujúceho potrubia Continuous Delivery. S programom NeoLoad testujú tímy 10-krát rýchlejšie ako s tradičnými nástrojmi, aby splnili novú úroveň požiadaviek v rámci celého životného cyklu agilného vývoja softvéru - od testovania komponentov až po testy plného zaťaženia celého systému.
  • HP LoadRunner - je dnes najpopulárnejším nástrojom na testovanie výkonu. Tento nástroj dokáže simulovať státisíce používateľov a uviesť aplikácie do skutočného zaťaženia, aby určil ich správanie pri očakávanom zaťažení. Loadrunner obsahuje generátor virtuálnych používateľov, ktorý simuluje akcie živých používateľov.
  • Jmeter - jeden z popredných nástrojov používaných na testovanie záťaže webových a aplikačných serverov.

FAQ

Ktoré aplikácie by sme mali testovať?

Testovanie výkonu sa vždy vykonáva iba pre systémy založené na klient-server. To znamená, že každá aplikácia, ktorá nie je architektúrou typu klient-server, nesmie vyžadovať testovanie výkonu.

Napríklad Microsoft Calculator nie je založený na klient-serveri ani nespúšťa viac používateľov; preto nie je kandidátom na testovanie výkonnosti.

Aký je rozdiel medzi testovaním výkonu a výkonovým inžinierstvom

Je dôležité pochopiť rozdiel medzi testovaním výkonu a výkonovým inžinierstvom. Pochopenie zdieľame nižšie:

Testovanie výkonu je disciplína zaoberajúca sa testovaním a vykazovaním aktuálneho výkonu softvérovej aplikácie podľa rôznych parametrov.

Výkonové inžinierstvo je proces, ktorým sa testuje a ladí softvér s cieľom dosiahnuť požadovaný výkon. Tento proces si kladie za cieľ optimalizovať najdôležitejšiu vlastnosť výkonu aplikácie, tj užívateľskú skúsenosť.

Historicky boli testovanie a ladenie zreteľne oddelené a často si konkurovali. V posledných niekoľkých rokoch však niekoľko vreciek testerov a vývojárov nezávisle spolupracovalo na vytvorení tuningových tímov. Pretože sa tieto tímy stretli s významným úspechom, koncept spojenia testovania výkonu s vyladením výkonu sa uchytil a teraz mu hovoríme výkonové inžinierstvo.

Záver

V softvérovom inžinierstve je pred uvedením softvérového produktu na trh potrebné testovanie výkonu. Zaisťuje spokojnosť zákazníka a chráni investíciu investora pred zlyhaním produktu. Náklady na testovanie výkonu sú zvyčajne viac, ako kompenzované zlepšením spokojnosti, lojality a udržania zákazníka.