k6 Hello-World

Aktualisiert: 03. März 2025

k6 ist ein modernes Open-Source-Tool für Lasttests, das leichtgewichtig und skriptbasiert ist. In diesem Tutorial setzen wir einen einfachen k6-Test auf, der einige HTTP-Requests an Google  sendet. Wir simulieren dabei 3 parallele User, die jeweils 10 mal hintereinander auf die Seite zugreifen, so schnell wie sie können.

Schritt 1: k6 installieren

Falls k6 noch nicht installiert ist, kannst du es je nach Betriebssystem mit einem der folgenden Befehle installieren:

  • Mac (Homebrew)
    brew install k6
  • Linux (Debian/Ubuntu)
    sudo apt update && sudo apt install k6
  • Windows (Scoop)
    scoop install k6
  • Es kann auf allen Plattformen auch recht einfach selbst gebaut werden. Dafür benötigt man Go. Das wird dann zwingend erforderlich, wenn man Plugins hinzufügen möchte.

 

Schritt 2: Test-Skript erstellen

Erstelle eine neue Datei hello-world.js mit folgendem Inhalt:

import http from 'k6/http'; 
import { check } from 'k6'; 

export let options = { 
  vus: 3,        // 3 gleichzeitige Nutzer 
  iterations: 30 // Jeder Nutzer führt 10 Requests aus (3 VUs * 10 Iterationen = 30 Requests insgesamt) 
}; 

export default function () { 
  let res = http.get('https://www.google.de'); 

  // Statuscode-Check 
  check(res, { 
    'Status ist 200': (r) => r.status === 200 
  }); 
} 

Schritt 3: Test ausführen

Führe den Test mit folgendem Befehl aus:

k6 run hello-world.js 

Schritt 4: Ergebnisse analysieren

Nach dem Testlauf zeigt k6 eine Übersicht der wichtigsten Metriken:

  • http_reqs → Anzahl der gesendeten Requests
  • http_req_duration → Antwortzeit der Anfragen
  • checks → Anzahl der erfolgreich validierten Statuscodes
  • vus → Anzahl der virtuellen User während des Tests

Beispielausgabe:

PS C:\Users\meggert\Desktop> k6.exe run .\hello-world.js 

         /\      Grafana   /‾‾/ 
    /\  /  \     |\  __   /  / 
   /  \/    \    | |/ /  /   ‾‾\ 
  /          \   |   (  |  (‾)  | 
 / __________ \  |_|\_\  \_____/ 

     execution: local 
        script: .\hello-world.js 
        output: - 

     scenarios: (100.00%) 1 scenario, 3 max VUs, 10m30s max duration (incl. graceful stop): 
              * default: 30 iterations shared among 3 VUs (maxDuration: 10m0s, gracefulStop: 30s) 


     ✓ Status ist 200 

     checks.........................: 100.00% 30 out of 30 
     data_received..................: 591 kB  642 kB/s 
     data_sent......................: 6.1 kB  6.7 kB/s 
     http_req_blocked...............: avg=8.21ms  min=0s       med=0s      max=82.62ms  p(90)=8.19ms   p(95)=81.98ms 
     http_req_connecting............: avg=1.5ms   min=0s       med=0s      max=16.89ms  p(90)=1.39ms   p(95)=14.19ms 
     http_req_duration..............: avg=73.09ms min=63.24ms  med=72.43ms max=92.78ms  p(90)=79.91ms  p(95)=86.8ms 
       { expected_response:true }...: avg=73.09ms min=63.24ms  med=72.43ms max=92.78ms  p(90)=79.91ms  p(95)=86.8ms 
     http_req_failed................: 0.00%   0 out of 30 
     http_req_receiving.............: avg=2.92ms  min=590.09µs med=2.75ms  max=5.13ms   p(90)=4.28ms   p(95)=4.35ms 
     http_req_sending...............: avg=98.63µs min=0s       med=0s      max=634.29µs p(90)=552.13µs p(95)=634.29µs 
     http_req_tls_handshaking.......: avg=4.31ms  min=0s       med=0s      max=44.29ms  p(90)=4.12ms   p(95)=42.65ms 
     http_req_waiting...............: avg=70.07ms min=59.91ms  med=69.03ms max=88.36ms  p(90)=78.19ms  p(95)=83.45ms 
     http_reqs......................: 30      32.627148/s 
     iteration_duration.............: avg=90.38ms min=63.24ms  med=72.43ms max=250.89ms p(90)=108.59ms p(95)=250.89ms 
     iterations.....................: 30      32.627148/s 


running (00m00.9s), 0/3 VUs, 30 complete and 0 interrupted iterations 
default ✓ [======================================] 3 VUs  00m00.9s/10m0s  30/30 shared iters

 

Fazit

Das war dein erster k6-Test! Mit wenigen Zeilen Code haben wir einen einfachen Load-Test gegen Google  durchgeführt und wichtige Performance-Metriken erhalten. Von hier aus kannst du Tests erweitern, Variablen hinzufügen oder größere Lastsimulationen durchführen.

Das vollständige Beispiel Skript gibt es hier: hello-world.js 

 

Performance Testing Beratung

Ihre Anwendung soll auch unter Last performen? Unsere Experten unterstützen Sie bei Lasttest-Strategie, Tool-Auswahl und CI/CD-Integration.

Performance Testing anfragen

Finden Sie weitere interessante Artikel zum Thema: