Wenn Sie nach einer Möglichkeit gesucht haben, API-Tests zu erhalten, ohne sie von Hand zu schreiben, sind Sie wahrscheinlich auf Keploy gestoßen. Es verspricht etwas, das fast zu bequem klingt: Zeigen Sie es auf Ihre laufende Anwendung, lassen Sie es den realen Traffic beobachten, und Sie erhalten eine Testsuite. Was genau macht Keploy also unter der Haube, und wo passt es in Ihren Test-Stack?
Dieser Leitfaden erklärt, was Keploy ist, wie seine Record-and-Replay-Engine auf der eBPF-Netzwerkschicht funktioniert, welche zwei Workflows es bietet, wie man es installiert und ausführt, und welche ehrlichen Grenzen Sie kennen sollten, bevor Sie es einführen.
Was ist Keploy
Keploy ist eine Open-Source-Plattform (Apache-2.0-lizenziert) zur Erstellung sicherer, isolierter Produktionssandboxes für API-, Integrations- und End-to-End-Tests. Die Kernidee ist, dass Ihre reale Anwendung bereits das Verhalten ausführt, das Sie testen möchten. Anstatt Sie zu bitten, dieses Verhalten im Testcode zu beschreiben, beobachtet Keploy es und wandelt es in reproduzierbare Tests um.

Es bietet Ihnen zwei Möglichkeiten, dies zu tun:
- Aufzeichnen und Wiedergeben erfasst reale API-Interaktionen und deren Abhängigkeiten und spielt sie dann deterministisch wieder ab.
- KI-Testgenerierung erstellt validierte API-Testsuiten aus einer Spezifikation, einer Sammlung, einem cURL-Befehl oder einem Live-Endpunkt.
Beide erzeugen ausführbare Tests sowie die Mocks, die benötigt werden, um sie ohne Zugriff auf Live-Abhängigkeiten auszuführen. Das Projekt ist Open Source, sodass Sie den Code lesen und selbst hosten können. Das Repository befindet sich unter github.com/keploy/keploy, und die offiziellen Docs sind unter keploy.io/docs zu finden.
Wie Keploy Record auf der eBPF-Ebene funktioniert
Dies ist der Teil, der Keploy einzigartig macht. Wenn Sie keploy record ausführen, werden Sie nicht aufgefordert, ein SDK hinzuzufügen oder eine einzige Zeile Ihres Anwendungscodes zu ändern. Es erfasst den Datenverkehr auf der Netzwerkschicht mithilfe von eBPF, einer Linux-Kernel-Technologie, die Programmen ermöglicht, Systemereignisse sicher zu beobachten und darauf zu reagieren.
Das bringt Ihnen in der Praxis Folgendes:
- Code-lose Erfassung. Keine Instrumentierung, kein Test-Harness, keine Dekoratoren in Ihren Handlern. Keploy sitzt unter Ihrer Anwendung und ĂĽberwacht die ein- und ausgehenden Bytes.
- Sprachunabhängige Erfassung. Da die Erfassung auf der Kernel-Netzwerkschicht statt in einer Laufzeitumgebung erfolgt, funktioniert sie unabhängig davon, ob Ihr Dienst in Go, Python oder Rust geschrieben ist.
- Abhängigkeitserfassung. Keploy zeichnet nicht nur den eingehenden API-Aufruf und seine Antwort auf. Es zeichnet auch die ausgehenden Aufrufe auf, die Ihr Dienst an seine Abhängigkeiten macht, wie Datenbankabfragen und Netzwerk- oder Streaming-Ereignisse.
Dieser letzte Punkt ist wichtig. Wenn Keploy eine Anfrage aufzeichnet, erfasst es das Gesamtbild: die API-Anfrage, die API-Antwort und jeden Abhängigkeitsaufruf, der dazwischen stattgefunden hat. Aus dieser einzigen beobachteten Interaktion werden dann zwei Artefakte erstellt:
- Ein Testfall, der die erwartete Anfrage und Antwort beschreibt.
- Mocks und Stubs für jeden Abhängigkeitsaufruf, sodass der Test ohne eine Live-Datenbank oder einen nachgelagerten Dienst wiedergegeben werden kann.
Die Wiederholung schließt den Kreis. Wenn Sie keploy test ausführen, sendet es die aufgezeichneten Anfragen an Ihre Anwendung zurück, stellt die erfassten Abhängigkeitsantworten aus den generierten Mocks bereit und vergleicht die neuen Antworten mit den aufgezeichneten. Eine Abweichung bedeutet, dass sich etwas geändert hat. Deshalb wird dieser Ansatz "Aufzeichnen und Wiedergeben" genannt: Sie zeichnen das reale Laufzeitverhalten einmal auf und spielen es dann deterministisch als Regressionstest bei jeder Änderung wieder ab.
Die zwei Keploy-Workflows
Aufzeichnen und Wiedergeben
Verwenden Sie dies, wenn Sie bereits eine funktionierende Anwendung haben und schnell eine Regressionsabdeckung wünschen. Sie führen die App unter Keploy aus, nutzen sie so, wie es ein echter Benutzer oder Client tun würde (manuelle Aufrufe, ein vorhandener Integrationstest oder Live-Traffic), und Keploy speichert jede Interaktion als Test plus die zugehörigen Mocks. Spätere Läufe spielen diese Interaktionen wieder ab und melden jede Verhaltensänderung.
KI-Testgenerierung
Verwenden Sie dies, wenn Sie eine breitere Abdeckung wünschen, als Ihre manuellen Übungen ergeben haben, oder wenn Sie von einem Vertrag statt von einem laufenden Workflow ausgehen. Keploy kann validierte API-Testsuiten aus einer OpenAPI-Spezifikation, einer Postman-Sammlung, einem cURL-Befehl oder einem Live-Endpunkt generieren. Es mockt Abhängigkeiten automatisch und führt einen automatischen Bereinigungslauf durch, damit keine redundanten Fälle übrig bleiben.
Die beiden Workflows ergänzen sich. Aufzeichnen und Wiedergeben verankert Tests im realen beobachteten Verhalten; KI-Testgenerierung füllt Lücken aus Ihrer Spezifikation. Wenn Sie Tools bewerten, die Tests aus einem Schema generieren, sind unsere Übersicht der KI-Testfallgeneratoren und der Leitfaden zur Generierung von Testskripten aus OpenAPI gute Begleiter.
Keploy installieren
Keploy liefert ein Installationsskript mit. Auf einem unterstĂĽtzten System fĂĽhren Sie aus:
curl --silent -O -L https://keploy.io/install.sh && source install.sh
Dies lädt die Binärdatei herunter und richtet den keploy-Befehl ein. Von dort aus steuern Sie alles über zwei Befehle.
Die wichtigsten Keploy-Befehle
Es gibt zwei Befehle, die Sie am häufigsten verwenden werden. Der erste zeichnet auf:
keploy record -c "CMD_TO_RUN_APP"
Sie übergeben den genauen Befehl, der Ihre Anwendung startet, über -c. Keploy startet Ihre App, überwacht den Datenverkehr, während Sie sie nutzen, und speichert die erfassten Testfälle und Mocks.
Der zweite spielt wieder ab:
keploy test -c "CMD_TO_RUN_APP" --delay 10
Das Flag --delay 10 weist Keploy an, zehn Sekunden zu warten, bevor es die aufgezeichneten Anfragen abfeuert. Dies gibt einem langsameren Dienst genügend Zeit, um vollständig zu starten, bevor die Wiedergabe beginnt. Wenn Ihre App länger zum Starten benötigt, erhöhen Sie die Zahl; wenn sie schnell startet, können Sie sie verringern.
Eine typische erste Sitzung sieht so aus:
# 1. Aufzeichnen, während Sie Ihre API ansteuern
keploy record -c "node server.js"
# 2. Die erfassten Fälle wiedergeben und auf Abweichungen prüfen
keploy test -c "node server.js" --delay 10
Das ist der ganze Ablauf. Einmal gegen einen als gut bekannten Build aufzeichnen, dann bei jeder Änderung keploy test in der CI ausführen.
UnterstĂĽtzte Sprachen, Protokolle und Datenspeicher
Da die Erfassung auf der Netzwerkschicht erfolgt, deckt Keploy eine breite Oberfläche ab:
| Kategorie | UnterstĂĽtzt |
|---|---|
| Sprachen | Go, Java, Node.js, Python, Rust, C#, C/C++, TypeScript und mehr |
| Protokolle | HTTP/REST, gRPC, GraphQL, Kafka, RabbitMQ |
| Datenspeicher | PostgreSQL, MySQL, MongoDB, Redis |
Die Breite ist eine direkte Konsequenz des eBPF-Designs. Keploy liest Netzwerkkommunikation, daher benötigt eine neue Sprache oder ein neues Framework kein neues Plugin, solange es eines dieser Protokolle spricht.
Keploy in CI ausfĂĽhren
Beide Befehle sind für die Automatisierung konzipiert. In einer Pipeline committen Sie die aufgezeichneten Testfälle und Mocks zusammen mit Ihrem Code und führen dann keploy test -c "..." als Schritt aus. Da die Mocks reale Abhängigkeiten ersetzen, benötigt die Wiedergabe keine Live-Datenbank oder einen nachgelagerten Dienst im CI-Runner, was den Job schnell und deterministisch hält. Eine fehlgeschlagene Wiedergabe lässt den Build fehlschlagen, genau wie ein Unit-Test.
Ehrliche Einschränkungen, die zu berücksichtigen sind
Keploy ist stark in dem, was es tut, aber es ist nicht fĂĽr jede Situation geeignet. Eine faire Bewertung berĂĽcksichtigt die Kompromisse:
- Es tendiert zu Linux und erhöhten Berechtigungen. eBPF ist eine Linux-Kernel-Funktion, und die Erfassung auf dieser Ebene erfordert in der Regel erhöhte Berechtigungen. Dies prägt, wo und wie Sie es ausführen können.
- Generierte Tests benötigen Kuratierung. Tests, die aus realem Traffic oder KI-Generierung erstellt wurden, sind ein Ausgangspunkt, keine fertige Suite. Sie müssen sie immer noch überprüfen, Rauschen entfernen und entscheiden, welche erfassten Verhaltensweisen tatsächlich vertraglich durchgesetzt werden sollten.
- Es ist ein Test- und Testgenerierungstool, keine vollständige API-Lifecycle-Plattform. Keploy konzentriert sich auf das Erfassen, Generieren und Wiedergeben von Tests. Es ist nicht darauf ausgelegt, API-Design, Dokumentation, Mock-Server-Veröffentlichung für Verbraucher oder Teamzusammenarbeit rund um eine API-Spezifikation zu handhaben.
Nichts davon sind Nachteile für Keploy. Es sind die natürlichen Grenzen seiner Kategorie. Sie zu kennen, hilft Ihnen zu entscheiden, ob es Ihr Problem löst oder nur einen Teil davon.
Wo Apidog als Alternative fĂĽr gezieltes Testen passt
Wenn Ihr Bedarf über „beobachteten Datenverkehr in Regressionstests umwandeln“ hinausgeht, lohnt es sich, eine Full-Lifecycle-Plattform in Betracht zu ziehen. Apidog ist eine All-in-One-API-Plattform, die Design, Debugging, Mocking, Dokumentation und Tests an einem Ort abdeckt. Der Unterschied in der Philosophie ist entscheidend, da Apidog und Keploy in unterschiedlichen Kategorien angesiedelt sind.

Keploy erfasst und spielt reales Laufzeitverhalten, einschließlich Abhängigkeits-Mocks, ohne Code wieder ab. Apidog geht den entgegengesetzten Weg: Sie entwerfen und erstellen wartbare Testszenarien und führen diese dann vom Terminal und der CI mit der Apidog CLI aus. Die CLI führt Ihre erstellten Sammlungen mit datengetriebenem Testen über CSV oder JSON, Umgebungsumschaltung und CLI-, HTML- und JSON-Berichten aus. Apidog bietet auch KI-Testfallgenerierung aus Ihrem API-Schema und Endpunkten, die innerhalb der App erstellt werden, wo sich die beiden Tools überschneiden.
Um die Abgrenzung klar zu formulieren: Apidog erfasst keinen Live-Traffic über eBPF und generiert keine Tests automatisch, indem es Produktionsaufrufe plus Abhängigkeits-Mocks aufzeichnet. Diese Fähigkeit, von realem Traffic aufzuzeichnen, ist tatsächlich Keploys Stärke. Die ehrliche Einschätzung ist, dass Sie je nach Aufgabe wählen. Greifen Sie zu Keploy, wenn Sie Laufzeiterfassung und -wiedergabe ohne Code wünschen. Greifen Sie zu Apidog, wenn Sie entworfene, wartbare Testsuiten innerhalb einer Plattform wünschen, die auch den Rest des API-Lebenszyklus abdeckt. Für einen tieferen Vergleich, siehe Apidog vs. Keploy, und wenn Sie sich für einen Wechsel entschieden haben, behandelt der Migrations-Walkthrough die Übertragung Ihrer Tests.
Wenn Sie wartbare, erstellte API-Tests suchen, können Sie Apidog herunterladen und mit dem Leitfaden zum Testen einer API mit Apidog beginnen.
Häufig gestellte Fragen
Ist Keploy kostenlos und Open Source? Ja. Keploy ist Open Source unter der Apache-2.0-Lizenz, und der Code befindet sich auf GitHub. Sie können es selbst hosten.
Erfordert Keploy eine Änderung meines Anwendungscodes? Nein. Der Aufzeichnungs- und Wiedergabe-Workflow erfasst den Datenverkehr auf der eBPF-Netzwerkschicht, sodass kein SDK hinzugefügt und keine Codeänderungen vorgenommen werden müssen. Das ist auch der Grund, warum es in vielen Sprachen funktioniert.
Was bewirkt das --delay-Flag in keploy test? Es legt fest, wie viele Sekunden Keploy wartet, bevor es aufgezeichnete Anfragen sendet, um Ihrer App Zeit zum Starten zu geben. --delay 10 wartet zehn Sekunden; erhöhen Sie dies für langsam startende Dienste.
Kann Keploy meine Datenbank während der Tests mocken? Ja. Wenn es eine Interaktion aufzeichnet, erfasst es auch die Abhängigkeitsaufrufe (wie Datenbankabfragen) und erstellt Mocks dafür, sodass Wiedergaben ohne eine Live-Datenbank ausgeführt werden.
Ist Keploy ein Ersatz fĂĽr ein API-Design- und Dokumentationstool? Nein. Keploy ist ein Test- und Testgenerierungstool. FĂĽr API-Design, Dokumentation, Mocking fĂĽr Konsumenten und Zusammenarbeit neben dem Testen ist eine Full-Lifecycle-Plattform wie Apidog besser geeignet.
Die Kurzfassung
Keploy ist ein Open-Source-Tool, das reales API-Verhalten in Tests umwandelt. Seine Aufzeichnungs- und Wiedergabe-Engine verwendet eBPF, um Anfragen, Antworten und Abhängigkeitsaufrufe auf der Netzwerkschicht ohne Codeänderungen zu erfassen und sie dann als deterministische Regressionstests wiederzugeben. Seine KI-Testgenerierung erstellt Suiten aus einer Spezifikation oder einem Endpunkt. Es lässt sich schnell einführen und ist sprachunabhängig, mit den Kompromissen eines Linux-zentrierten Erfassungsmodells, Tests, die überprüft werden müssen, und einem auf Tests beschränkten Umfang. Wenn Sie erstellte, wartbare Testsuiten innerhalb einer vollständigen API-Plattform wünschen, ist Apidog die Alternative, mit der Sie es vergleichen sollten.
