K6

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.