TL;DR
Newman, der offizielle CLI-Runner von Postman, benötigt npm und Node.js in Ihrer CI-Pipeline. Das erhöht das Lieferkettenrisiko, erschwert die Abhängigkeitsverwaltung und ist im kostenlosen Postman-Tarif durch Ratenbegrenzung limitiert. In diesem Leitfaden zeige ich drei Alternativen für API-Tests in der CI ohne Newman: Apidogs CLI-Runner, k6 und Hurl. Apidog eignet sich am besten, wenn Sie bereits Postman-Sammlungen nutzen: Es importiert diese nativ und setzt kein Limit für Durchläufe.
💡 Apidog ist eine kostenlose All-in-One-Plattform für API-Entwicklung. Ihr CLI-Runner führt Postman-kompatible Sammlungen in der CI ohne npm-Abhängigkeit und ohne Durchführungslimit aus. Teste Apidog kostenlos – keine Kreditkarte erforderlich.
Einleitung
Newman war ein solider Ansatz: Ein CLI-Tool, das Postman-Sammlungen in CI-Pipelines ausführt, machte API-Tests portabel und automatisierbar. Es profitierte vom Markenvertrauen, ließ sich leicht in GitHub Actions integrieren und wurde zur Basis vieler API-Testautomatisierungen.
Doch drei Probleme traten auf:
- Newman ist ein npm-Paket. Jede Pipeline, die es nutzt, zieht Pakete zur Build-Zeit aus dem npm-Register. Die
ua-parser-js- undnode-ipc-Vorfälle zeigten, dass npm-Lieferkettenangriffe real sind. Sicherheitsteams fragten berechtigt, warum für API-Tests überhaupt npm nötig ist. - Postman begrenzt Sammlungsdurchläufe in den kostenlosen und einfachen Tarifen. Teams, die auf API-gesteuerte Durchläufe setzen, stoßen auf Limits und müssen dann entweder upgraden oder ihre Pipelines umbauen.
- Die Wartung von Newman ist ins Stocken geraten. Probleme bleiben auf GitHub oft monatelang offen. Neue Postman-Scripting-APIs werden nur lückenhaft unterstützt.
Fazit: Wer auf Newman für CI-Tests setzt, sollte Alternativen prüfen. Hier findest du die besten Optionen.
Option 1: Apidog CLI (empfohlen für Postman-Sammlungsbenutzer)
Der Apidog CLI-Runner ist der direkteste Ersatz für Newman, wenn du bereits Postman-Sammlungen im Einsatz hast.
Unterstützte Features:
- Postman Collection v2 und v2.1 Format
- Postman-Umgebungen (JSON-Export)
-
pm.test,pm.expect,pm.environment.set,pm.collectionVariables.set - Pre-request- und Post-request-Skripte
- Datengesteuertes Testen mit CSV- und JSON-Daten
- JUnit XML- und JSON-Reporting für CI
Kein npm nötig:
Apidog CLI ist ein eigenständiges Binärprogramm. Download, zum PATH hinzufügen, fertig.
Keine Durchführungslimits:
Apidog limitiert die Anzahl der Sammlungsdurchläufe in keinem Tarif. Ob 500 oder 5 Durchläufe pro Tag, alles läuft.
Installation
Lade die CLI-Binärdatei für dein System direkt von apidog.com/cli oder nutze das offizielle Install-Skript:
# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation | sh
# Version prüfen
apidog --version
Für Docker-basierte Pipelines gibt es ein offizielles Image:
FROM apidog/cli:latest
Postman-Sammlung ausführen
Exportiere deine Sammlung aus Postman (Datei > Exportieren > Sammlung v2.1) und die Umgebung (Umgebungen verwalten > Exportieren).
Dann ausführen:
apidog run collection.json \
--environment environment.json \
--reporter-junit results.xml
Beispiel für GitHub Actions
name: API Tests
on: [push, pull_request]
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Apidog CLI
run: curl -sSf https://apidog.com/cli/install.sh?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation | sh
- name: Run API tests
run: |
apidog run ./tests/collection.json \
--environment ./tests/env.json \
--reporter-junit test-results.xml
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: api-test-results
path: test-results.xml
Kein npm install, keine package.json, keine Node.js-Matrix. Schnellere Jobs, reduzierte Angriffsfläche.
Beispiel für GitLab CI
api-tests:
image: apidog/cli:latest
script:
- apidog run ./tests/collection.json
--environment ./tests/env.json
--reporter-junit test-results.xml
artifacts:
reports:
junit: test-results.xml
Option 2: k6
k6 ist ein Lasttest-Tool von Grafana Labs, das auch funktionale API-Tests durchführen kann. Besonders geeignet, wenn Performance- und Funktionsprüfungen kombiniert werden sollen.
Unterstützt:
- HTTP/1.1, HTTP/2, WebSocket, gRPC
- JavaScript (ES6+)
- Performance-Assertions (Thresholds)
- Reporting an InfluxDB, Prometheus, Datadog
Nicht unterstützt:
- Kein natives Postman-Sammlungsformat. Migration via
postman-to-k6, aber Nacharbeit meist nötig. - Postmans
pm.*API wird nur teilweise emuliert.
Wann k6 wählen?
Wenn du Funktions- mit Performance-Tests verbinden willst, z.B. um API-Korrektheit unter Last zu prüfen. Für reinen Funktionsersatz von Newman ist Apidog schneller eingerichtet.
k6 in CI nutzen:
# Installation (Linux)
sudo apt-get install k6
# Testskript ausführen
k6 run api-tests.js
k6 gibt Pass/Fail nach den definierten Thresholds zurück. JUnit-XML-Output ist via k6-reporter-Paket möglich.
Option 3: Hurl
Hurl ist ein schnelles Open-Source-HTTP-Testtool in Rust. Keine Laufzeitabhängigkeiten, Klartext-DSL für Requests und Assertions.
Unterstützt:
- HTTP/1.1 und HTTP/2
- JSON-, XPath- und Regex-Assertions
- Variablen und Request-Chaining
- HTML-, JUnit- und JSON-Reports
Nicht unterstützt:
- Kein Postman-Import. Eigene
.hurl-Dateien, kein Konverter. - Keine JavaScript-Tests. Assertions sind deklarativ.
Wann Hurl wählen?
Wenn du bereit bist, Tests in Hurl-DSL neu zu schreiben, bekommst du ein extrem kleines und schnelles Binary (~10 MB). Ideal für neue Projekte ohne Postman-Altlasten.
Beispiel für einen Hurl-Test:
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString
Hurl in GitHub Actions verwenden:
- name: Install Hurl
run: |
curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest/download/hurl-x86_64-unknown-linux-gnu.tar.gz
tar -xf hurl-*.tar.gz
sudo mv hurl /usr/local/bin/
- name: Run API tests
run: hurl --test tests/*.hurl
Vergleich der drei Optionen
| Funktion | Apidog CLI | k6 | Hurl |
|---|---|---|---|
| Postman-Import | Nativ | Konverter (verlustbehaftet) | Nein |
| npm-Abhängigkeit | Nein | Nein | Nein |
| JavaScript-Skripting | Ja (pm.* API) | Ja (ES6) | Nein (nur DSL) |
| Performance-Tests | Nein | Ja | Nein |
| Binärgröße | ~50 MB | ~30 MB | ~10 MB |
| Kostenlose Laufzeitbeschränkungen | Keine | Keine | Keine |
| JUnit-Ausgabe | Ja | Via Plugin | Ja |
Migration von Newman: Praktische Schritte
Wenn deine Pipeline aktuell auf Newman basiert, folge diesen Schritten für den Wechsel zu Apidog CLI:
- Sammlungen exportieren: In Postman mit Rechtsklick auf die Sammlung, dann als v2.1 exportieren. Umgebungen separat exportieren.
- Apidog CLI installieren: Installationsschritt zu deiner CI-Konfiguration hinzufügen.
-
Newman-Befehl ersetzen.
- Newman:
newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml
-
Apidog:
apidog run collection.json --environment environment.json --reporter-junit results.xml
Die Flags sind bewusst ähnlich.
-
Skript-Kompatibilität prüfen: Führe die Sammlung lokal mit Apidog CLI aus, bevor du in der CI umstellst. Die meisten
pm.*-Skripte laufen unverändert. Skripte mitpm.requiremüssen eventuell angepasst werden. -
Node.js entfernen: Wenn Newman die einzige Node.js-Abhängigkeit war, kannst du Node.js- und
npm install-Schritte komplett streichen.
FAQ
Ist Newman offiziell veraltet?
Nein, Anfang 2026 wird Newman noch von Postman gepflegt. Das Wartungstempo ist aber niedrig, viele relevante Issues bleiben offen. Neue Pipelines darauf aufzubauen birgt zunehmende Risiken.
Brauche ich ein Apidog-Konto für den CLI-Runner?
Für lokal exportierte Sammlungen: nein. Für die Synchronisation aus einem Apidog-Arbeitsbereich: ja. Für den Umstieg von Postman reichen Export-JSON-Dateien.
Kann Apidog CLI datengesteuerte Tests ausführen?
Ja. Über das Flag --iteration-data kannst du CSV- oder JSON-Daten übergeben – wie Newmans -d.
Wie hoch ist das Lieferkettenrisiko npm-basierter Runner?
Jedes zur CI-Zeit von npm gezogene Paket ist potenziell angreifbar. Kompromittierte Pakete können Umgebungsvariablen exfiltrieren, darunter API-Keys und Tokens. Ein Binär-Runner wie Apidog CLI, der über HTTPS und mit Prüfsumme geladen wird, minimiert das Risiko.
Unterstützt k6 gRPC-Tests?
Ja. k6 hat native gRPC-Unterstützung und kann REST und gRPC in einer Suite testen. Für APIs mit gRPC-Endpunkten ist k6 eine Überlegung wert.
Kann Hurl Auth-Header setzen?
Ja, Hurl unterstützt beliebige Header, inklusive Authorization, Bearer und Cookie-Authentifizierung. Variablen erlauben das Einbringen von Secrets zur Laufzeit.
Die Zeit, in der Newman die Standardlösung für API-Tests in CI war, geht zu Ende. Lieferkettenrisiken und Tariflimits verschieben die Entscheidung, und es gibt leistungsfähige Alternativen. Die Migration – gerade mit Apidog CLI und bestehenden Postman-Sammlungen – ist einfach und schnell umsetzbar.
Top comments (0)