Keploy creates backend API tests with built-in-mocks or stubs by recording your application network calls making your testing process not only faster than unit tests but also incredibly efficient.
Keploy acts a proxy in your application that captures and replays all network interaction served to application from any source.
Step 1 : Record Unique Network Interactions as Test Case
Once you start the application in record mode to capture API calls as test cases.
Now, when the application serves an API, all the unique network interactions are stored within Keploy server as a test-case.
Step 2 : Replay Test-Cases
Let's say you developed new application version(v2). To test locally, start the Keploy in test mode to replay all recorded API calls/test-cases previously captured in record-mode.
Now, when the application starts:
- Keploy will download all the previously recorded test-cases/API calls with a 5 sec delay(configurable application build time).
- When the application will try to talk to any dependencies like DBs, Routers, vendor services, Keploy will intercept and provide the previously recorded dependency response.
Note: You didn't need to setup test-environment here. 🙅🏻♀️
- Keploy will compare the API response to the previously captured response and a report will be generated on the Keploy console.
You can test with Keploy locally or can integrate Keploy with popular testing-frameworks and existing CI pipelines.
Note: You can generate test cases from any environment which has all the infrastructure dependencies setup. Please consider using this to generate tests from low-traffic environments first. The deduplication feature necessary for high-traffic environments is currently experimental.
Keploy is built for a wide variety of use-cases, however, to kick things off, let's dive into some key features that make Keploy stand out from the rest of the testing platforms out there.
🧩 Combined Test Coverage in CI/CD:
Run Tests with Mocks Anywhere You Like
Keploy has native integrations with your unit-testing libraries
pyTest. Keploy gives combined test-coverage and can also be integrated in existing CI
pipelines easily within
Run tests with mocks anywhere you like—locally on the CLI, in your CI pipeline, or even across a Kubernetes cluster. It's testing wherever you want it! 🌍
📽️ Works for Complex API Flows
Can easily record complex API flows and replay them as tests and stubs.
With Keploy, you can effortlessly record and replay intricate, distributed API flows as mocks and stubs. It's like having a time machine for your tests! ⏳
Keploy will record all API calls and their subsequent network traffic served by the application. You can utilize your favorite API management tools like Postman, Hoppscotch, or even Curl to generate test cases.
Keploy automatically mocks network/external dependencies for all CRUD operations with correct responses.
Once recorded, you have the flexibility to replay and simulate the same flow with mutations/write calls locally or within your CI environment without needing to connect to external services/dependencies.
No more data dumps, stubs, or mocks for dependencies like DBs, internal services, or third-party services like twilio, shopify, or stripe are required anymore. 💡
Idempotency guarantees are also not required in the application. Multiple Reads after write operations can be replicated automatically too. 🔄
♻️ Multi-Purpose Mocks
Re-Use Mocks for Testing Servers
Keploy generated dependency mocks can also be used as test case for the server. These tests can be used for use-cases like chaos testing, e2e testing, integration testing, api and regression testing. 🌟
🌐 Code-less EBPF Instrumentation
Network Layer Integration makes it Light-Weight
Keploy uses EBPF like a secret sauce to make integration code-less, language agnostic, and oh-so-lightweight. 🍲
🔍 Accurate Noise Detection
Eliminates random fields for Assertion
Keploy identifies noisy fields in the responses accurately like ( timestamps, random values) to ensure high quality tests.
As the application serves the API, Keploy re-run that API request with the captured dependency mocks.
Keploy identifies differences in API responses, marking them as random/noisy fields. 🧐✅