Continuous Performance Testing: JMeter in CI/CD-Pipelines (2026)

Aktualisiert: 18. Mai 2026

Continuous Performance Testing (CPT) ist die konsequente Erweiterung von Continuous Integration: Performance-Metriken laufen pro Build mit, statt einmal pro Release. Regressionen fallen am nächsten Morgen auf, nicht zwei Sprints später im Production-Monitoring. Wer DevOps ernst meint, hat CPT in der Pipeline.

In diesem Artikel zeige ich dir, was CPT bedeutet, wie du Performance-Tests in CI/CD-Pipelines integrierst (JMeter, GitHub Actions, AWS), und welche Schwellenwerte sinnvoll sind. Plus die Stolperfallen aus echten Projekten.

Inhaltsverzeichnis

Was ist Continuous Performance Testing?

Continuous Performance Testing (CPT) ist die Methode, Performance-Tests automatisiert und kontinuierlich in der CI/CD-Pipeline laufen zu lassen. Statt einmal pro Release manuell zu messen, läuft pro Push ein Smoke-Performance-Test und pro Nightly ein vollständiger Lasttest gegen Staging.

Drei Eigenschaften definieren CPT:

  • Automatisiert. Tests laufen ohne Handarbeit, getriggert von Build-System oder Cron.
  • Reproduzierbar. Gleicher Test-Plan, gleiche Lastprofile, gleiche Schwellenwerte über alle Builds.
  • Gated. Schwellenwerte definieren Pass/Fail. Bei Regression failed der Build oder warnt mindestens.

Für die Grundlagen siehe den Performance-Testing-Pillar. Für die Performance-Testing-Sicht auf DevOps insgesamt den Artikel Performance Testing in DevOps.

Pipeline-Profile: was läuft wann

StageTest-TypLastDauerTrigger
Commit-StageSmoke-Performance10 bis 50 User2 MinPro Push
NightlyLasttest auf Staging100 bis 500 User15 bis 30 MinWerktags 2 Uhr
Pre-ReleaseStresstest + Spike1.000+ User1 bis 2 hVor Release-Cut
QuartalEnduranceProduktions-Last24 bis 48 hVor Major-Release

Wichtig: nicht alle Test-Typen in der Commit-Stage. Sonst blockiert ein 30-minütiger Lasttest jeden Push. Gestaffelte Profile sind der Trick.

GitHub Actions: JMeter-Lasttest im Workflow

name: jmeter-nightly
on:
  schedule:
    - cron: '0 2 * * 1-5'
jobs:
  loadtest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run JMeter
        run: |
          docker run --rm -v ${{ github.workspace }}:/tests \
            justb4/jmeter:5.6.3 \
            -n -t /tests/plan.jmx \
            -l /tests/results.jtl \
            -e -o /tests/report-html/ \
            -Jhost=staging.example.com -Jusers=200
      - uses: actions/upload-artifact@v4
        with:
          name: jmeter-report
          path: report-html/

Was passiert: Cron triggert den Workflow nightly, Docker-Image führt JMeter im Non-GUI-Mode aus, HTML-Report wird als Artefakt gespeichert. Für tieferes Setup mit Distributed Workern siehe den Artikel JMeter Lasttest-Praxis.

AWS-Worker für Cluster-Skalierung

Eine GitHub-Actions-VM (ubuntu-latest) schafft etwa 500 bis 1.000 virtuelle User. Für mehr Last brauchst du dedizierte Worker. Drei Optionen:

  • EC2-Worker on-demand. Terraform spinnt 5 Worker vom Typ c6i.2xlarge hoch, JMeter Master koordiniert via RMI, nach dem Run zerstört Terraform die Worker wieder. Kosten: ~1,80 USD pro 1-Stunden-Run.
  • ECS/Fargate. Container-basiert, kein VM-Lifecycle. Etwas teurer als EC2 Spot, dafür schneller im Bootstrap.
  • k6 Cloud oder BlazeMeter. Managed Service, Pay-per-Test. Sinnvoll bei seltenen Tests ohne Performance-Team.

Bei AWS müssen Worker-Security-Groups Port 1099 (RMI) zwischen Master und Worker offen lassen. Klassiker, der den ersten Distributed Run gerne 60 Sekunden hängen lässt bevor Timeout.

Schwellenwerte und Pass/Fail-Gates

CPT ohne Schwellenwerte ist nur Datensammeln. Drei Schwellen-Typen:

  1. Absolute Werte. z.B. „95% unter 500 ms bei 200 Usern". Klar definiert, aber starr.
  2. Vergleich zum Baseline. z.B. „p(95) nicht mehr als 20 % schlechter als letzte Woche". Adaptiv, aber erfordert Trend-Datenbank.
  3. Error-Rate. z.B. „Error-Rate unter 1 %". Easy, immer sinnvoll.

Hard-Gates (Build failed bei Verletzung) nur in Nightly aufwärts. In der Commit-Stage maximal Soft-Warnungen, sonst blockierst du jeden Push wegen einem Ausreißer.

Stolperfallen aus der Praxis

  1. Flaky-Tests aus Shared-CI-Runnern. Performance auf ubuntu-latest schwankt um Faktor 2. Dedizierte Worker oder Cloud-VMs für stabile Messungen.
  2. Test-Daten-Drift. Performance-Test mit 100 Demo-Datensätzen rennt grün, Production mit 10 Millionen killt die DB. Test-Daten müssen Production-Volumen widerspiegeln.
  3. Build-Blocker im Commit-Stage. Performance-Tests in der Commit-Stage als hard-failing-Gate stoppen jeden Push. Soft-Gate mit Trend-Warnung, hard-Gate nur in Nightly.
  4. HTML-Report nicht archiviert. Build endet, Workspace aufgeräumt, Report weg. Immer upload-artifact oder publishHTML nutzen.

Du baust CPT in deine Pipeline ein? Wir unterstützen Kunden im Verkehrs-, FSI- und Versicherungs-Sektor beim Aufbau von Performance-Test-Pipelines mit JMeter, k6 und Cloud-Skalierung. Performance-Testing-Beratung anfragen.

Fazit

Continuous Performance Testing macht aus einem einmaligen Pre-Release-Stress einen Trend, den du täglich beobachtest. Mit gestaffelten Profilen, Cloud-Worker für Skalierung und sinnvollen Schwellenwerten verwandelst du Performance von einem Quartals-Audit in einen Pipeline-Standard.

Qualität ist kein Gate am Ende der Pipeline. Qualität ist die Pipeline.

Für die DevOps-Sicht insgesamt lies den Artikel Performance Testing in DevOps. Für die JMeter-Praxis im Produktions-Setup siehe JMeter Lasttest: Distributed Mode, Cloud & CI/CD.

Häufige Fragen (FAQ)

Was ist Continuous Performance Testing?

Continuous Performance Testing (CPT) ist die Methode, Performance-Tests automatisiert in CI/CD-Pipelines laufen zu lassen, statt einmal pro Release manuell. Pro Push ein Smoke-Test, nightly ein vollständiger Lasttest gegen Staging.

Welches Tool nutze ich für CPT?

JMeter (etabliert, Mixed Protocols), k6 (modern, JavaScript, Grafana-Native) oder Locust (Python-Teams). Alle drei eignen sich für CI/CD. Vergleich im Tool-Vergleich.

Wie oft sollen Performance-Tests laufen?

Smoke-Performance pro Push (2 Min), Lasttest nightly (15 bis 30 Min), Stresstest pre-Release (1 bis 2 h), Endurance quartalsweise. Hard-Gates nur ab Nightly aufwärts.

Was kostet CPT in AWS?

Etwa 1,80 USD pro 1-Stunden-Run mit 5 Worker (c6i.2xlarge) plus Master (t3.medium). Bei nightly 5x/Woche sind das ~40 USD/Monat.

Brauche ich Grafana für CPT?

Nicht zwingend, aber sehr empfohlen. Trend-Visualisierung über Builds macht Regressionen sichtbar. JMeter Backend Listener + InfluxDB + Grafana ist der Open-Source-Standard.

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: