Miroslav Renda
Senior Test Manager
Blog
Miroslav Renda
Senior Test Manager
Jak se chová vaše aplikace pod tlakem? V dnešním článku se zaměříme na zátěžové testování – jednu z klíčových metod testování výkonnosti. Zjistíte, jak se definuje typická zátěž a co vše můžete díky zátěžovým testům odhalit ještě před spuštěním. Navíc se podíváme na praktický příklad pomocí nástroje k6.
V tomto článku navážeme na základní informace o různých typech testování výkonnosti, které byly shrnuty v předchozím článku a zaměříme se zátěžové testování.
Zátěžové testování je klíčovou součástí testování výkonnosti, které hodnotí chování a odezvu aplikace při očekávané zátěži. Simuluje typické zátěžové situace, jako je počet souběžných uživatelů nebo transakcí, a sleduje důležité metriky výkonnosti, jako jsou doba odezvy, propustnost a stabilita serveru.
Definice „typické zátěže“ se liší podle kontextu. Například Google musí zvládat miliony souběžných vyhledávání s odezvou kratší než jednu sekundu, zatímco malá banka může považovat za „typickou“ zátěž 1000 souběžných uživatelů s maximální dobou odezvy 3 sekundy.
Zátěžové testování umožňuje expertům na vývoj a testování systémů optimalizovat architekturu, procesy a díky sledování chování systému za různých podmínek odhalit potenciální problémy ještě před uvedením nových funkcí do provozu. V dnešní rychlé době, kdy první dojem hraje klíčovou roli, je tento typ testování nepostradatelný.
Průběh zátěžového testu je možné vizualizovat v podobě grafu simulovaných souběžných uživatelů (nazývaných virtuální uživatelé, VUs) v čase. Na začátku testu probíhá takzvaná ramp-up fáze, kdy se počet VUs postupně zvyšuje. Jejím cílem je nezahltit testovaný server skokovým nárůstem počtu připojených uživatelů a tím věrněji simulovat reálnou zátěž. Poté následuje fáze stabilní zátěže a na závěr fáze ramp-down, kdy se počet VUs snižuje.
Uvedený obrázek představuje jednoduchý test, kdy zátěž tvoří pouze jeden scénář (např. typická cesta uživatele při nákupu v e-shopu). V praxi může být při zátěžovém testu simulován souběh zátěže různých scénářů (např. souběh aktivity uživatele e-shopu se spuštěním dávkového jobu).
Podívejme se, jak efektivně provádět zátěžové testování pomocí open-source nástroje k6. Tento nástroj je skvělý pro rychlé nastavení a spouštění zátěžových testů vytvořených v JavaScriptu.
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 load.js, a přidejte následující kód:
import http from "k6/http";
import { sleep } from "k6";
// Define the stages of the test
export let options = {
stages: [
{
duration: "30s",
target: 240,
},
{
duration: "290s",
target: 240,
},
{
duration: "10s",
target: 0,
},
],
};
// Virtual users script
export default function () {
http.get("https://test.k6.io");
sleep(1);
http.get("https://test.k6.io/contacts.php");
sleep(2);
http.get("https://test.k6.io/flip_coin.php");
sleep(2);
}
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 load.js
V uvedeném testovacím skriptu jsou v poli options.stages definovány 3 fáze testu:
Testovací scénář pak spočívá v postupném volání URL https://test.k6.io, https://test.k6.io/contacts.php a https://test.k6.io/flip_coin.php s prodlevami mezi požadavky definovanými funkcí sleep() (tzv. think-time).
Po dokončení testu poskytne k6 souhrnné statistiky, jako jsou časy odezvy, počet požadavků za sekundu a procento chyb.
Analýza těchto metrik vám pomůže pochopit, jak si vaše aplikace stojí pod zátěží a identifikovat možné problémy nebo slabá místa.
Zátěžové testování je klíčovým typem nefunkcionálního testování, které prověřuje, jak aplikace zvládá očekávanou zátěž. Simuluje typické aktivity uživatelů při definovaném počtu současných uživatelů nebo transakcí a měří klíčové metriky výkonnosti, jako jsou doby odezvy a stabilita systému.
Zahrnutí zátěžového testování 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 vyšší robustnosti, škálovatelnosti systému 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.
Chcete poradit?
Napište si o naši bezplatnou, neprodejní konzultaci zdarma. Vyplňte formulář a my se vám ozveme zpět.
Upozornění