Blog

Miroslav Renda

Miroslav Renda

Senior Test Manager

Spike testing: Jak zvládnout náhlý nápor

Vzdělávání Přístupy k testování Testování výkonnosti

Jak se vaše aplikace chová při náhlých výkyvech zátěže? V dnešním článku se zaměříme na testování špičkového zatížení – klíčovou metodu výkonnostního testování. Dozvíte se, jak aplikace reaguje na prudké změny v počtu uživatelů a jak rychle se zotavuje mezi jednotlivými špičkami. 

V tomto článku navážeme na základní informace o různých typech testování výkonnosti, které byly shrnuty v tomto článku a zaměříme se na testování špičkového zatížení.  

Testování špičkového zatížení (spike testing) je forma výkonnostního testování, kdy aplikace čelí simulovaným náhlým a extrémním výkyvům zátěže. Cílem tohoto testování je zjistit, jak se software chová při těchto prudkých změnách. Testování špičkového zatížení nemusí hodnotit pouze schopnost aplikace zvládat zátěžovou špičku, ale zkoumá také dobu zotavení mezi více špičkami. Pojem „špička“ (spike) označuje prudký nárůst i pokles zátěže. 

Jak vypadá test špičkového zatížení v praxi? 

Průběh testu špičkového zatížení je možné vizualizovat v podobě grafu simulovaných souběžných uživatelů (nazývaných virtuální uživatelé, VUs) v čase. Zátěž (daná počtem VUs) se náhle zvýší na maximální hodnotu, poté následuje období zotavení s poklesem zátěže a po nějaké době stabilní zátěže může přijít další špička.  

Spike testing: Jak zvládnout náhlý nápor

Uvedený obrázek ukazuje příklad jednoduchého testu, kdy systém čelí stabilní zátěži 120 VUs (s náběhem uživatelů po dobu 20 sekund, tzv. ramp-up) a dvěma zátěžovým špičkám po první a třetí minutě, kdy se zátěž zvýší až na 400 VUs.  

Praktický příklad: Spike testování s nástrojem k6 

Abychom demonstrovali efektivní provádění testů špičkového zatížení, použijeme open-source nástroj k6. Tento nástroj nabízí snadné nastavení a spouštění testů vytvořených v JavaScriptu pro hodnocení výkonnosti při náhlých změnách zátěže. 

1. Instalace k6: Postupujte podle pokynů na oficiálních stránkách k6, kde najdete návod k instalaci. 

2. Vytvoření skriptu: Vytvořte nový soubor, například spike.js, a přidejte následující kód: 

import http from "k6/http";
import { sleep } from "k6";

// init
export let options = {
  stages: [
    { duration: "20s", target: 120, }, // ramp-up fáze
    { duration: "40s", target: 120, }, // stabilní zátěž 120VU
    { duration: "25s", target: 400, }, // náběh první špičky
    { duration: "25s", target: 120, }, // sestupná hrana první špičky
    { duration: "70s", target: 120, }, // stabilní zátěž 120VU
    { duration: "25s", target: 400, }, // náběh druhé špičky
    { duration: "25s", target: 120, }, // sestupná hrana první špičky
    { duration: "20s", target: 0, },    // ramp-down fáze 
  ],
};

// test script
export default function () {
  http.get("https://test.k6.io");
  sleep(1);
}

3. Spuštění testu: V terminálu přejděte do složky se skriptem a spusťte test pomocí příkazu: 

        k6 run spike.js

V uvedeném testovacím skriptu jsou v poli options.stages definovány postupné fáze testu, které jsou popsány pod obrázkem (z komentářů v kódu je zřejmý detail). 

Testovací scénář pak spočívá ve  volání URL https://k6.io/ jednotlivými virtuálními uživateli s prodlevou 1 sekundy mezi voláními (tzv. think-time zajištěný funkcí sleep(1)). 

Po dokončení testu vám k6 poskytne souhrnné statistiky, jako jsou časy odezvy, počet žádostí za sekundu a procento chyb. Tyto metriky vám pomohou zhodnotit, jak vaše aplikace reaguje na náhlé změny provozu, a identifikovat slabá místa nebo potenciální problémy. 

Závěr 

Testování špičkového zatížení je důležitým typem nefunkcionálního testování výkonnosti, které hodnotí chování a stabilitu aplikace při náhlých extrémních špičkách zátěže. Simuluje prudké nárůsty a poklesy počtu současných uživatelů nebo transakcí a měří klíčové výkonnostní metriky, jako jsou doba odezvy, průtok a odolnost systému. 

Zahrnutí testování špičkového zatížení s využitím efektivních nástrojů pro měření výkonnosti, jako jsou k6, Gatling, JMeter či LoadRunner, do celkového mixu testů, napomůže vašemu systému udržet požadovanou výkonnost a stabilitu i při neočekávaných nárůstech zátěže a v konečném důsledku zvýší spokojenost uživatelů. 

Nenechejte si ujít nejnovější informace.

Vyplňte nám vaši e-mailovou adresu a dostávejte pravidelnou nálož informací ohledně nadcházejících školení, akcí a testingového know-how.

Odesláním tohoto formuláře souhlasíte se zpracováním osobních údajů dle GDPR a se zasíláním marketingových e-mailů.