K6
1. Co je k6?
k6 je open-source nástroj pro testování výkonu a zátěžové testování webových aplikací. Umožňuje provádět testy na úrovni API, služby nebo celé aplikace, simuluje mnoho současných uživatelů a poskytuje podrobné metriky o výkonu.
Klíčové vlastnosti k6:
- Testování výkonu API a webových aplikací: k6 umožňuje provádět testy jak na API, tak na webových stránkách nebo mikroservisách.
- Vysoký výkon: k6 je optimalizováno pro vysoký výkon a může simulovat tisíce uživatelů.
- Jednoduché skriptování: Testy jsou psány v jazyce JavaScript, což umožňuje snadnou tvorbu a údržbu testovacích skriptů.
- Vizuální reporty a metriky: k6 poskytuje podrobné reporty o výkonu a umožňuje exportovat výsledky do různých formátů, včetně JSON a CSV.
2. Instalace k6
Chcete-li začít používat k6, můžete ho nainstalovat pomocí několika různých metod. Jednou z nejběžnějších je použití Homebrew
pro macOS:
brew install k6
Pro Windows a Linux můžete využít oficiální instalační balíčky nebo stáhnout binární soubor z oficiálních stránek.
Spuštění testu:
Po instalaci můžete spustit test pomocí následujícího příkazu:
k6 run test.js
Kde test.js
je váš testovací skript.
3. Struktura testů v k6
Testy v k6 jsou napsány v JavaScriptu a mají strukturu podobnou jiným nástrojům pro testování. Každý test je definován v souboru, který obsahuje základní testovací scénář.
Ukázkový test v k6:
import http from 'k6/http';
import { check } from 'k6';
export default function() {
const res = http.get('https://example.com');
check(res, {
'status je 200': (r) => r.status === 200,
'délka těla je větší než 0': (r) => r.body.length > 0,
});
};
Tento test provádí následující kroky:
http.get()
: Provádí HTTP GET požadavek na specifikovanou URL.check()
: Ověřuje, zda odpověď splňuje stanovené podmínky, například zda má odpověď status kód 200.
4. Parametry testování a metody v k6
k6 nabízí širokou škálu metod a parametrů pro simulaci různých typů zátěžových testů.
Parametry testu
- Počet uživatelů: Parametr
vus
(Virtual Users) určuje, kolik virtuálních uživatelů bude test simulovat. - Trvání testu: Parametr
duration
určuje, jak dlouho bude test běžet. - Rychlost zátěže: Parametr
ramp-up
určuje, jak rychle se bude zátěž zvyšovat.
Ukázka testu s parametry:
export let options = {
vus: 10,
duration: '30s',
};
export default function() {
http.get('https://example.com');
};
Tento test simuluje 10 virtuálních uživatelů po dobu 30 sekund.
5. Sledování metrik a výstupy
k6 generuje podrobné metriky o výkonu během testování. Metriky zahrnují:
- Response time: Doba odpovědi serveru.
- Throughput: Počet požadavků za sekundu.
- Failures: Počet chybových odpovědí.
Metriky mohou být exportovány do různých formátů, například do grafických nástrojů jako Grafana, nebo do formátů jako JSON pro další analýzu.
6. Integrace k6 do CI/CD
k6 lze snadno integrovat do CI/CD pipeline, aby testy běžely automaticky při každém nasazení. Tento proces zajistí, že výkon aplikace bude pravidelně testován během celého životního cyklu vývoje.
Ukázka integrace s GitHub Actions:
name: Performance Test
on:
push:
branches:
- main
jobs:
performance-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install k6
run: |
curl -s https://dl.k6.io/key.gpg | sudo apt-key add -
echo "deb https://dl.k6.io/deb stable main" | sudo tee -a /etc/apt/sources.list.d/k6.list
sudo apt-get update
sudo apt-get install k6
- name: Run k6 performance tests
run: k6 run test.js
7. Závěr
k6 je výkonný a flexibilní nástroj pro testování výkonu a zátěžové testování webových aplikací. S jeho pomocí můžete simulovat tisíce uživatelů, monitorovat výkon aplikace v reálném čase a integrovat testy do vašeho CI/CD procesu pro pravidelné testování. k6 je ideální pro týmové testování výkonu aplikací a služeb.