From 2ae4a7301f27af617cfca78b527068b7fb0a378c Mon Sep 17 00:00:00 2001 From: slayerjain Date: Wed, 23 Sep 2026 18:27:23 +0530 Subject: [PATCH] docs: one Keploy across the site - no editions, accurate native macOS/Windows, eBPF on Linux Follow-up to #916, which fixed the install pages; this covers the rest of the current docs. - No edition names in user-facing text: CI/CD pages no longer demand an "Enterprise binary ... not the open-source" one (they install keploy.io/install.sh and sign in with KEPLOY_API_KEY); "Keploy Enterprise" as a product, "OSS" chips, "Start OSS Quickstart" and the Enterprise install reminder are gone. Plan availability is stated with the plan names (Free, Teams, Scale, Enterprise); ProductTier chips that said "Open Source" now list every plan, and "Team" is "Teams". - eBPF is the Linux mechanism, not how Keploy works everywhere: macOS and Windows intercept in user space. The intro/concept pages, the home page meta, the site schema and the llms.txt / llms-full.txt text (what AI assistants read) say so, and no longer claim Windows needs WSL2. - Quickstarts: the local-run sections are classified by what the app talks to - native on Linux, macOS (Apple Silicon) and Windows (x86-64) when that is HTTP/HTTPS, MySQL or MongoDB (with the macOS launcher and Windows cmd.exe caveats where the commands need them), Linux/WSL or Docker otherwise. - Fixed along the way: `keploy enterprise record` (no such command), GitHub release tarballs and keploy.io/ent/install.sh offered for install, the time-freezing page treating WSL as native, kernel 5.15 in llms text (the CLI requires 5.10), broken container names and sudo in Docker commands, dead quickstart anchors, and an Apache-2.0 license claim about the binary users install. Signed-off-by: slayerjain --- content/llms-full-root.txt | 78 +++++++++++-------- content/llms-root.txt | 14 ++-- docusaurus.config.js | 4 +- src/components/Community.js | 4 +- src/components/EnterpriseInstallReminder.js | 8 +- src/components/ProductTier.js | 65 +++++++++++----- src/components/QuickStartList.js | 6 +- src/components/QuickStartTabs.js | 18 +++-- src/components/SDKs.js | 2 +- src/pages/index.js | 2 +- src/schema/siteEntities.js | 9 +-- versioned_docs/version-4.0.0/ci-cd/github.md | 26 ++++--- versioned_docs/version-4.0.0/ci-cd/gitlab.md | 14 ++-- versioned_docs/version-4.0.0/ci-cd/jenkins.md | 25 +++--- .../reference/glossary/component-testing.md | 2 +- .../reference/glossary/reliability-testing.md | 2 +- .../reference/glossary/white-box-testing.md | 2 +- .../concepts/what-are-keploy-features.md | 4 +- .../concepts/what-is-a-keploy-ebpf.md | 6 +- .../version-4.0.0/concepts/what-is-keploy.md | 5 +- .../keploy-cloud/cloud-replay.md | 4 +- .../keploy-cloud/deduplication.md | 2 +- .../keploy-cloud/gitops-argocd.md | 6 +- .../version-4.0.0/keploy-cloud/gitops-flux.md | 6 +- .../keploy-cloud/installation.md | 38 ++++----- .../keploy-cloud/keploy-console.md | 4 +- .../keploy-cloud/kubernetes-local-setup.md | 8 +- .../version-4.0.0/keploy-cloud/kubernetes.md | 8 +- .../keploy-cloud/new-application.md | 2 +- .../keploy-cloud/smart-set-agent.md | 2 +- .../keploy-cloud/static-deduplication.md | 8 +- .../keploy-cloud/testgeneration.md | 2 +- .../keploy-cloud/time-freezing.md | 18 +++-- .../keploy-explained/debugger-guide.md | 2 +- .../keploy-explained/how-keploy-works.md | 10 +-- .../integration-testing-faq.md | 4 +- .../keploy-explained/introduction.md | 2 +- .../keploy-explained/why-keploy.md | 2 +- .../quickstart/csharp-dotnet-postgres.md | 8 +- .../quickstart/express-postgresql-prisma.md | 12 +-- .../version-4.0.0/quickstart/flask-redis.md | 2 +- .../quickstart/go-fasthttp-postgres.md | 6 +- .../version-4.0.0/quickstart/go-gin-redis.md | 4 +- .../version-4.0.0/quickstart/go-mux-mysql.md | 16 ++-- .../version-4.0.0/quickstart/go-mux-sql.md | 8 +- .../quickstart/java-spring-boot-mongo.md | 10 ++- .../java-spring-boot-openhospital.md | 8 +- .../quickstart/java-spring-boot-xml.md | 8 +- .../quickstart/java-spring-postgres.md | 8 +- .../quickstart/nextjs-postgres.md | 6 +- .../quickstart/node-express-mongoose.md | 10 ++- .../version-4.0.0/quickstart/node-jwt-sql.md | 16 ++-- .../quickstart/python-django-sql.md | 8 +- .../quickstart/python-fastapi-sql.md | 8 +- .../quickstart/python-fastapi-twilio.md | 16 ++-- .../quickstart/python-flask-mongo.md | 10 ++- .../quickstart/python-microservices.md | 4 +- .../quickstart/rust-wrap-mongo.md | 4 +- .../quickstart/sample-rust-crud-mongo.md | 4 +- .../version-4.0.0/quickstart/sample-ts.md | 14 ++-- .../version-4.0.0/quickstart/samples-bunjs.md | 8 +- .../version-4.0.0/quickstart/samples-echo.md | 8 +- .../quickstart/samples-express-mongoose.md | 8 +- .../quickstart/samples-go-gin-mongo.md | 14 ++-- .../quickstart/samples-go-sse-svelte.md | 10 ++- .../version-4.0.0/quickstart/samples-java.md | 8 +- .../quickstart/samples-node-mongo.md | 12 ++- .../version-4.0.0/quickstart/samples-rust.md | 4 +- .../version-4.0.0/quickstart/sanic-mongo.md | 6 +- .../running-keploy/agent-test-generation.md | 9 +-- .../api-testing-chrome-extension.md | 2 +- .../running-keploy/api-testing-cicd.md | 4 +- .../running-keploy/cli-commands.md | 2 +- .../running-keploy/configuration-file.md | 2 +- .../running-keploy/custom-mocks.md | 2 +- .../running-keploy/docker-tls.md | 2 +- .../generate-api-tests-using-ai.md | 2 +- .../running-keploy/k8s-proxy-api.md | 8 +- .../k8s-proxy-daemonset-architecture.md | 20 +++-- .../running-keploy/keploy-karaf.md | 2 +- .../running-keploy/keploy-templatize.md | 2 +- .../running-keploy/mock-quickstart.md | 22 ++++-- .../running-keploy/mock-your-tests.md | 18 ++++- .../running-keploy/public-api.md | 2 +- .../running-keploy/rename-testcases.md | 2 +- .../running-keploy/risk-profile-analysis.md | 2 +- .../run-ai-generated-api-tests.md | 2 +- .../running-keploy/share-tests.md | 2 +- .../server/linux/installation.md | 35 ++------- .../server/sdk-installation/go.md | 2 +- .../server/sdk-installation/java.md | 6 +- .../server/sdk-installation/javascript.md | 2 +- .../server/sdk-installation/python.md | 2 +- .../version-4.0.0-sidebars.json | 2 +- 94 files changed, 486 insertions(+), 362 deletions(-) diff --git a/content/llms-full-root.txt b/content/llms-full-root.txt index 499461f985..cfba4cb52b 100644 --- a/content/llms-full-root.txt +++ b/content/llms-full-root.txt @@ -4,9 +4,11 @@ For the short summary version, see: /docs/llms.txt ## About Keploy -Keploy (founded 2021, headquartered in Bengaluru, India) is a CNCF Landscape project and open-source testing platform. Current GitHub star and VS Code extension install counts are available on its GitHub repository (https://github.com/keploy/keploy) and VS Code Marketplace (https://marketplace.visualstudio.com/items?itemName=Keploy.keployio) pages. It uses eBPF (extended Berkeley Packet Filter) kernel hooks to capture real API traffic at the Linux socket level and replay it as auto-generated tests with dependency mocks and stubs. No code instrumentation, language-specific SDKs, or application restarts are required. +Keploy (founded 2021, headquartered in Bengaluru, India) is a CNCF Landscape project and API testing platform. Current GitHub star and VS Code extension install counts are available on its GitHub repository (https://github.com/keploy/keploy) and VS Code Marketplace (https://marketplace.visualstudio.com/items?itemName=Keploy.keployio) pages. It captures real API traffic at the socket level — with eBPF (extended Berkeley Packet Filter) kernel hooks on Linux, and natively in user space on macOS and Windows — and replays it as auto-generated tests with dependency mocks and stubs. No code instrumentation, language-specific SDKs, or application restarts are required. -Keploy handles non-deterministic data (timestamps, UUIDs, JWT tokens, session IDs) via time-freezing and AI-powered noise detection, eliminating flaky tests. The platform is licensed under Apache 2.0. +Keploy handles non-deterministic data (timestamps, UUIDs, JWT tokens, session IDs) via time-freezing and AI-powered noise detection, eliminating flaky tests. Keploy is developed in the open at https://github.com/keploy/keploy. + +There is one product to install: `keploy`. Recording and replaying tests need a free Keploy account, and your plan (Free, Teams, Scale or Enterprise) decides which additional features are available. For plan details, see https://keploy.io/pricing. ### Recognition and Awards - API World 2023 Award: Best in API Infrastructure @@ -19,7 +21,7 @@ Keploy handles non-deterministic data (timestamps, UUIDs, JWT tokens, session ID ### Company and Community - Website: https://keploy.io -- GitHub: https://github.com/keploy/keploy (Apache 2.0) +- GitHub: https://github.com/keploy/keploy - Cloud Platform: https://app.keploy.io - Documentation: https://keploy.io/docs - Blog: https://keploy.io/blog @@ -34,8 +36,8 @@ Keploy handles non-deterministic data (timestamps, UUIDs, JWT tokens, session ID Keploy offers three core products: -### 1. Integration Testing (Open Source) -Record-replay engine using eBPF to capture API calls and generate test suites with deterministic replay. The open-source core captures HTTP/HTTPS, gRPC, WebSocket, and GraphQL traffic at the kernel level and automatically creates replayable test cases with mocked dependencies (databases, external APIs, message queues). Tests are stored as YAML files in the project directory. +### 1. Integration Testing (Record and Replay) +Record-replay engine that captures API calls at the network layer and generates test suites with deterministic replay. It captures HTTP/HTTPS, gRPC, WebSocket, and GraphQL traffic and automatically creates replayable test cases with mocked dependencies (databases, external APIs, message queues). Tests are stored as YAML files in the project directory. ### 2. Test Agent (AI Unit Test Generation) AI-powered unit test generation from PR diffs and source code. The Test Agent analyzes code semantics using LLMs (Gemini 2.5 Pro, GPT-4) and generates unit tests that are validated by actually running them against the codebase. Only tests that build, pass, and increase coverage are kept. Available via VS Code extension, JetBrains plugins, CLI, and GitHub PR Agent. Currently supports Go with Java and JavaScript coming soon. @@ -47,11 +49,13 @@ Generate API tests from OpenAPI specs, Postman collections, cURL commands, or re ## Technical Architecture -### eBPF-Based Traffic Capture -Keploy uses eBPF (extended Berkeley Packet Filter), a Linux kernel technology that allows programs to run safely within the kernel without modifying kernel source code or loading kernel modules. Keploy attaches eBPF probes to network socket syscalls to intercept all inbound and outbound network traffic at near-zero overhead. +### Network-Layer Traffic Capture +Keploy intercepts your application's inbound and outbound network traffic at the socket level, so it needs no code changes. How it intercepts depends on the operating system: +- **Linux**: eBPF (extended Berkeley Packet Filter), a Linux kernel technology that allows programs to run safely within the kernel without modifying kernel source code or loading kernel modules. Keploy attaches eBPF probes to network socket syscalls to intercept all inbound and outbound network traffic at near-zero overhead. +- **macOS (Apple Silicon) and Windows (x86-64)**: natively in user space — no eBPF, no VM, no Docker, and no sudo or Administrator. Key architectural components: -- **eBPF Hooks**: Attached to socket-level syscalls (connect, accept, read, write, close) to capture all network I/O +- **Interception layer**: eBPF hooks on socket-level syscalls (connect, accept, read, write, close) on Linux, or user-space interception on macOS and Windows, to capture all network I/O - **Network Proxy**: Transparent proxy that records request-response pairs and dependency interactions - **Test Generator**: Converts captured traffic into replayable YAML test cases with assertions - **Mock Generator**: Creates dependency mocks from recorded external service interactions @@ -60,7 +64,7 @@ Key architectural components: ### How Record Mode Works 1. Keploy starts alongside your application using `keploy record -c ""` -2. eBPF probes intercept all incoming API requests and outgoing dependency calls +2. Keploy intercepts all incoming API requests and outgoing dependency calls (with eBPF probes on Linux, in user space on macOS and Windows) 3. Request-response pairs are recorded along with all dependency interactions (database queries, external API calls, message queue operations) 4. Test cases are generated as YAML files in the `keploy-tests/` directory 5. Mock files for dependencies are generated in the `keploy-tests/mocks/` directory @@ -87,29 +91,35 @@ Key architectural components: - HTTP/HTTPS: External API call mocking - Redis: Command-level mocking +Natively on macOS and Windows, Keploy understands HTTP/HTTPS, MySQL and MongoDB calls; calls to other services (PostgreSQL, Redis, Kafka, gRPC, SQS, …) are captured only as raw bytes and usually don't replay. For those, run Keploy with Docker (or on Linux or WSL). + --- ## Installation +You install one product, `keploy`; on Linux and macOS the same install script installs it. Full guide: https://keploy.io/docs/server/installation/ + ### Linux (Any Distribution) ``` curl --silent -O -L https://keploy.io/install.sh && source install.sh -keploy version +keploy --version ``` ### macOS Runs natively on Apple Silicon (arm64) only — install via the same script or `brew install keploy/tap/keploy`; no Docker needed (userspace interception, no root). Both refuse to install on an Intel Mac: there, run Keploy inside a Lima VM (https://keploy.io/docs/installation/macos-installation/#option-2-install-keploy-with-lima). The Docker Desktop/Colima route still runs the native CLI on the host, so it is also Apple Silicon only. +On macOS, start the app itself rather than through a launcher (`npm start`, `mvn`, `nodemon`, wrapper scripts and pyenv shims lose Keploy); use a virtualenv, Homebrew or uv Python rather than `/usr/bin/python3`, the JDK's own `java` (`"${JAVA_HOME:-$(/usr/libexec/java_home)}/bin/java"`) rather than `/usr/bin/java`, and a built Go binary rather than `go run`. Guide: https://keploy.io/docs/installation/macos-installation/ + ### Windows -Requires WSL2 (Windows Subsystem for Linux). Install within the WSL2 environment using the Linux installation method. +Runs natively on x86-64 Windows: install `keploy.exe` and run it from an ordinary PowerShell — no WSL, no Docker and no Administrator (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). On Windows on ARM, run Keploy inside WSL (https://keploy.io/docs/installation/windows-installation/). ### Docker -Keploy can run as a Docker container alongside your application using Docker Compose or standalone Docker commands. +Keploy can run as a Docker container alongside your application using Docker Compose or standalone Docker commands. The Docker route works on Linux, Apple Silicon macOS and x86-64 Windows, and is the one to use on macOS or Windows when your app depends on services Keploy doesn't understand natively there (PostgreSQL, Redis, Kafka, gRPC, …). ### Platform Requirements -- Linux: Kernel version 5.15+ recommended for eBPF support -- macOS: Apple Silicon (arm64) for the native CLI; Intel Macs run Keploy in a Lima VM (Linux build inside the VM) -- Windows: WSL2 with a compatible Linux kernel +- Linux: Kernel 5.10 or later (eBPF) +- macOS: Apple Silicon (arm64) runs Keploy natively; Intel Macs run Keploy in a Lima VM +- Windows: x86-64 runs Keploy natively; Windows on ARM runs Keploy in WSL --- @@ -178,7 +188,7 @@ Options: - `--freezeTime`: Enable time freezing for JWT/timestamp handling - `--dedup`: Enable test deduplication - `--disableMockUpload`: Disable uploading mocks to cloud storage -- `--skipCoverage`: Skip coverage measurement +- `--skip-coverage`: Skip coverage measurement ### keploy config --generate Generates a default keploy.yaml configuration file. @@ -187,12 +197,12 @@ keploy config --generate --path "./config-dir/" ``` ### keploy console -Opens the Keploy web console for visualizing and editing test cases (Enterprise feature). +Opens the Keploy web console for visualizing and editing test cases (available on the Enterprise plan). ``` keploy console ``` -### keploy version +### keploy --version Displays the installed Keploy version. --- @@ -250,7 +260,7 @@ Key configuration fields: ## Keploy Cloud Features -Keploy Cloud (app.keploy.io) provides managed enterprise features on top of the open-source core: +Keploy Cloud (app.keploy.io) provides the features below; which ones you can use depends on your plan: ### Keploy Console Web-based UI for visualizing test cases, test reports, and managing test suites. Enables team-wide visibility into test results with operations including: @@ -262,7 +272,7 @@ Web-based UI for visualizing test cases, test reports, and managing test suites. - Normalize test reports ### Time Freezing -Enterprise feature that freezes or rolls back system time during test execution to the time when the test case was recorded. Solves the problem of time-sensitive objects like JWT tokens expiring during test replay. Enabled with the `--freezeTime` flag. +Available on the Enterprise plan. Freezes or rolls back system time during test execution to the time when the test case was recorded. Solves the problem of time-sensitive objects like JWT tokens expiring during test replay. Enabled with the `--freezeTime` flag on Linux (including WSL) and with Docker; not supported when Keploy runs natively on macOS or Windows. ### Test Deduplication Detects and removes redundant test cases that cover the same code paths. Uses coverage analysis to determine which tests add unique value and which can be removed. Enabled with the `--dedup` flag. @@ -274,7 +284,7 @@ Cloud-based mock storage that uploads mock files to cloud storage instead of com AI-powered feature that automatically fixes failing test cases when API responses change. Analyzes the diff between expected and actual responses and proposes updated assertions. Supports both individual test fixes and bulk healing across test suites. ### Agent-Based Test Generation -Enterprise feature enabling AI coding assistants (Claude Code, Cursor, Antigravity, GitHub Copilot) to generate and iterate on API tests using Keploy's test format. Includes an MCP (Model Context Protocol) endpoint for native tool access. +Available on the Enterprise plan. Enables AI coding assistants (Claude Code, Cursor, Antigravity, GitHub Copilot) to generate and iterate on API tests using Keploy's test format. Includes an MCP (Model Context Protocol) endpoint for native tool access. ### Test Run Reports Detailed test execution reports with pass/fail status, response diffs, coverage metrics, and historical trend analysis. Reports can be shared across teams via the Keploy Cloud dashboard. @@ -303,7 +313,7 @@ Validate that application behavior remains identical after framework upgrades, l - URL: https://keploy.io/docs/keploy-explained/how-keploy-works/ ### Legacy Application Testing -Test legacy monoliths and brownfield systems without any code changes. Because eBPF operates at the kernel network layer, it captures traffic from any application regardless of language, framework, or architecture. No SDK installation or code modification required. +Test legacy monoliths and brownfield systems without any code changes. Because Keploy intercepts at the network layer, it captures traffic from any application regardless of framework or architecture — any language on Linux and with Docker; natively on macOS and Windows, Go, Node.js, Python and Java apps. No SDK installation or code modification required. ### Flaky Test Elimination AI noise detection identifies and filters non-deterministic fields (timestamps, UUIDs, session tokens, random values) from test assertions. This eliminates flaky test failures without manual assertion configuration, reducing test maintenance overhead. @@ -318,8 +328,8 @@ Capture API interactions between microservices and automatically generate contra ## Technical Differentiators -### eBPF-Based Capture (No Code Changes) -Unlike tools that require SDK installation, code instrumentation, or proxy configuration, Keploy uses eBPF hooks at the Linux kernel level. This means zero application code changes, language-agnostic operation, and near-zero performance overhead. Any application that makes network calls can be tested. +### Network-Layer Capture (No Code Changes) +Unlike tools that require SDK installation, code instrumentation, or proxy configuration, Keploy intercepts traffic at the network layer — with eBPF hooks in the kernel on Linux, and in user space on macOS and Windows. This means zero application code changes, language-agnostic operation on Linux and with Docker (natively on macOS and Windows: Go, Node.js, Python and Java apps), and near-zero performance overhead. ### Time Freezing Keploy can freeze or roll back system time during test replay to match the original recording timestamp. This solves JWT token expiration, time-based cache invalidation, and timestamp-dependent business logic without workaround code. @@ -346,22 +356,22 @@ When API responses change (new fields, changed formats, updated metadata), Keplo ### General **What is Keploy?** -Keploy is an open-source, AI-powered testing agent and sandboxing platform that automatically generates test cases, dependency mocks, and production-like sandboxes from real user traffic. It uses eBPF kernel technology for system-level visibility, helping teams achieve 90% test coverage in minutes with zero code changes. +Keploy is an AI-powered testing agent and sandboxing platform that automatically generates test cases, dependency mocks, and production-like sandboxes from real user traffic. It intercepts traffic at the network layer (with eBPF on Linux, in user space on macOS and Windows), helping teams achieve 90% test coverage in minutes with zero code changes. **How is Keploy different from traditional testing tools?** -Unlike traditional testing tools that require manual test writing, Keploy automatically captures real production traffic and generates test cases using eBPF at the Linux kernel level. It eliminates the need for maintaining mocks manually, provides dependency virtualization, AI-powered noise detection for flaky test elimination, and production-like sandboxes. No code changes are required. +Unlike traditional testing tools that require manual test writing, Keploy automatically captures real production traffic at the network layer and generates test cases from it. It eliminates the need for maintaining mocks manually, provides dependency virtualization, AI-powered noise detection for flaky test elimination, and production-like sandboxes. No code changes are required. **Which programming languages does Keploy support?** -For API/integration testing (record-replay): Keploy is language-agnostic because it operates at the kernel network layer. It works with Go, Java, Python, Node.js, TypeScript, Rust, C#/.NET, and any language that makes network calls. For AI unit test generation: Go is fully supported with Java and JavaScript coming soon. +For API/integration testing (record-replay): Keploy operates at the network layer, so on Linux and with Docker it is language-agnostic; natively on macOS and Windows, record/replay is tested with Go, Node.js, Python and Java apps. It works with Go, Java, Python, Node.js, TypeScript, Rust, C#/.NET, and any language that makes network calls. For AI unit test generation: Go is fully supported with Java and JavaScript coming soon. **What is eBPF and why does Keploy use it?** -eBPF (extended Berkeley Packet Filter) is a Linux kernel technology that allows programs to run safely within the kernel. Keploy uses eBPF to intercept network packets at the socket level with near-zero overhead, capturing all API traffic and dependency calls without code changes, language-specific SDKs, or application restarts. +eBPF (extended Berkeley Packet Filter) is a Linux kernel technology that allows programs to run safely within the kernel. On Linux, Keploy uses eBPF to intercept network packets at the socket level with near-zero overhead, capturing all API traffic and dependency calls without code changes, language-specific SDKs, or application restarts. macOS and Windows have no eBPF: there Keploy intercepts natively in user space, with no VM, no Docker and no sudo or Administrator. **Is Keploy open source?** -Yes. Keploy's core platform is open-source under the Apache 2.0 license. For the current GitHub star count, see https://github.com/keploy/keploy. Advanced features (time freezing, deduplication, mock registry, self-healing, console UI) are available through the managed cloud platform at app.keploy.io. +Keploy is developed in the open at https://github.com/keploy/keploy (see the repository for the current star count), and contributions are welcome. To use Keploy, install the `keploy` binary (https://keploy.io/docs/server/installation/) and sign in with a free Keploy account. Advanced features (time freezing, deduplication, mock registry, self-healing, console UI) are available depending on your plan. **Does Keploy require code changes to integrate?** -No. Keploy can be integrated without any changes to application code. It operates at the network layer using eBPF, capturing traffic transparently. +No. Keploy can be integrated without any changes to application code. It operates at the network layer (with eBPF on Linux, in user space on macOS and Windows), capturing traffic transparently. **Is Keploy suitable for microservices architecture?** Yes. Keploy is designed for microservices-based environments. It records and replays API calls across services, making it ideal for testing distributed systems. @@ -408,7 +418,7 @@ Gemini 2.5 Pro (Google), GPT-4 family (OpenAI), and other specialized models. Ta Install Keploy with a one-line command, run your application in Record mode to capture real traffic, then switch to Test mode to replay generated tests with automatic dependency mocking. Visit https://keploy.io/docs for language-specific quickstart guides. **Is Keploy free to use?** -Yes. The open-source core is free under Apache 2.0. The cloud platform offers Free, Devs, Team, and Enterprise tiers. For current pricing and plan details, see https://keploy.io/pricing. +Yes. Recording and replaying tests needs only a free Keploy account. Keploy's plans are Free, Teams, Scale and Enterprise, and your plan decides which additional features are available. For current pricing and plan details, see https://keploy.io/pricing. --- @@ -419,7 +429,7 @@ Postman requires manual API test creation, script writing, and mock server setup - URL: https://keploy.io/compare/postman ### Keploy vs Katalon -Katalon uses UI-based recording and scripting for test automation. Keploy uses eBPF kernel-level traffic capture, requiring no UI interaction or script writing. Katalon is broader (web, mobile, desktop testing); Keploy is focused on backend API and integration testing with automatic mock generation. +Katalon uses UI-based recording and scripting for test automation. Keploy captures traffic at the network layer, requiring no UI interaction or script writing. Katalon is broader (web, mobile, desktop testing); Keploy is focused on backend API and integration testing with automatic mock generation. - URL: https://keploy.io/compare/katalon ### Keploy vs Testcontainers @@ -435,7 +445,7 @@ Pact uses consumer-driven contracts requiring both consumer and provider teams t - URL: https://keploy.io/compare/pact ### Keploy vs Tricentis -Tricentis is an enterprise test automation suite with broad coverage (UI, API, performance, SAP). Keploy is open-source and focused on API/integration testing with eBPF-based automatic test generation. Tricentis requires significant licensing investment; Keploy's core is free. +Tricentis is an enterprise test automation suite with broad coverage (UI, API, performance, SAP). Keploy is focused on API/integration testing with automatic test generation from captured traffic. Tricentis requires significant licensing investment; Keploy has a Free plan. - URL: https://keploy.io/compare/tricentis ### Keploy vs Cypress @@ -443,7 +453,7 @@ Cypress is a frontend end-to-end testing framework focused on browser-based test - URL: https://keploy.io/compare/cypress ### Keploy vs Diffblue -Diffblue generates Java unit tests using AI. Keploy is multi-language and generates both unit tests (via Test Agent) and integration tests (via eBPF record-replay). Diffblue is Java-only; Keploy supports Go, Java, Python, Node.js, and more. +Diffblue generates Java unit tests using AI. Keploy is multi-language and generates both unit tests (via Test Agent) and integration tests (via record-replay). Diffblue is Java-only; Keploy supports Go, Java, Python, Node.js, and more. - URL: https://keploy.io/compare/diffblue ### Full Comparison Hub diff --git a/content/llms-root.txt b/content/llms-root.txt index 84db8ad263..2e78fb427f 100644 --- a/content/llms-root.txt +++ b/content/llms-root.txt @@ -2,7 +2,7 @@ For comprehensive details, see: /docs/llms-full.txt ## About Keploy -Keploy (founded 2021) is a CNCF Landscape project and open-source testing platform with a growing open-source community and widely used VS Code extension. It uses eBPF kernel hooks to capture real API traffic and replay it as auto-generated tests with dependency mocks and stubs — no code instrumentation required. Keploy handles non-deterministic data (timestamps, IDs) via time-freezing and AI noise detection, eliminating flaky tests. +Keploy (founded 2021) is a CNCF Landscape project and API testing platform with a growing open-source community and widely used VS Code extension. It captures real API traffic at the network layer (with eBPF on Linux, in user space on macOS and Windows) and replays it as auto-generated tests with dependency mocks and stubs — no code instrumentation required. Keploy handles non-deterministic data (timestamps, IDs) via time-freezing and AI noise detection, eliminating flaky tests. There is one product to install, `keploy`; recording and replaying need a free Keploy account, and your plan (Free, Teams, Scale or Enterprise) decides which additional features are available. ## Recognition & Awards - API World 2023 Award: Best in API Infrastructure @@ -11,15 +11,17 @@ Keploy (founded 2021) is a CNCF Landscape project and open-source testing platfo - Google Summer of Code Mentoring Organization ## Getting Started -- [Installation](https://keploy.io/docs/server/installation/): Install Keploy on Linux, macOS, or Docker +- [Installation](https://keploy.io/docs/server/installation/): Install Keploy natively on Linux, macOS (Apple Silicon) and Windows (x86-64), or with Docker +- [macOS Installation](https://keploy.io/docs/installation/macos-installation/): Native on Apple Silicon; Intel Macs use Lima +- [Windows Installation](https://keploy.io/docs/installation/windows-installation/): Native on x86-64 from PowerShell, no Administrator; Windows on ARM uses WSL - [Platform Requirements](https://keploy.io/docs/concepts/platform-requirements/): OS and kernel version requirements - [Quick Start](https://keploy.io/docs/quickstart/quickstart-filter/): Get up and running with your first test in minutes ## Core Concepts -- [What is Keploy?](https://keploy.io/docs/concepts/what-is-keploy/): AI-powered testing agent with eBPF-based traffic capture -- [How Keploy Works](https://keploy.io/docs/keploy-explained/how-keploy-works/): Architecture — eBPF hooks, network proxy, production behavior replay +- [What is Keploy?](https://keploy.io/docs/concepts/what-is-keploy/): AI-powered testing agent with network-layer traffic capture +- [How Keploy Works](https://keploy.io/docs/keploy-explained/how-keploy-works/): Architecture — network-layer interception (eBPF on Linux), network proxy, production behavior replay - [Keploy Features](https://keploy.io/docs/concepts/what-are-keploy-features/): Dependency virtualization, noise detection, CI/CD integration -- [eBPF-Based Testing](https://keploy.io/docs/concepts/what-is-keploy-ebpf/): Kernel-level traffic capture without code instrumentation +- [eBPF-Based Testing](https://keploy.io/docs/concepts/what-is-keploy-ebpf/): Kernel-level traffic capture on Linux without code instrumentation - [Why Keploy?](https://keploy.io/docs/keploy-explained/why-keploy/): Comparison with traditional testing approaches - [Supported Languages](https://keploy.io/docs/keploy-explained/supported-languages/): Unit-testing language support; Go supported, more languages coming soon @@ -54,7 +56,7 @@ Keploy (founded 2021) is a CNCF Landscape project and open-source testing platfo - [Production Sandbox Testing](https://keploy.io/docs/concepts/what-is-keploy/): Production-like environments without staging infrastructure ## Keploy Cloud & Integrations -- [Keploy Cloud](https://keploy.io/docs/keploy-cloud/cloud-installation/): Managed cloud platform for teams +- [Enterprise plan](https://keploy.io/docs/keploy-cloud/cloud-installation/): Getting started on the Enterprise plan — install Keploy, sign in, and the plan's features - [VS Code Extension](https://keploy.io/docs/keploy-explained/integrations-vscode/): IDE integration for test generation - [PR Agent Integration](https://keploy.io/docs/keploy-explained/integrations-pr-agent/): Automated test suggestions on pull requests diff --git a/docusaurus.config.js b/docusaurus.config.js index 6efc367234..593062366a 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -147,7 +147,7 @@ fbq('track', 'PageView');`, docsDir: `versioned_docs/version-${CURRENT_DOCS_VERSION}`, ignoreFiles: ["**/shared/**"], description: - "Technical documentation for Keploy, an open-source AI-powered testing agent and sandboxing platform that automatically generates test cases, dependency mocks, and production-like sandboxes from real user traffic using eBPF kernel technology. Keploy keeps testing aligned with AI-driven code velocity — achieving 90% test coverage in minutes with zero code changes.", + "Technical documentation for Keploy, an AI-powered testing agent and sandboxing platform that automatically generates test cases, dependency mocks, and production-like sandboxes from real user traffic, captured at the network layer (with eBPF on Linux, in user space on macOS and Windows). Keploy keeps testing aligned with AI-driven code velocity — achieving 90% test coverage in minutes with zero code changes.", rootContent: llmsRootContent, fullRootContent: llmsFullRootContent, generateLLMsTxt: true, @@ -175,7 +175,7 @@ fbq('track', 'PageView');`, { name: "description", content: - "Keploy - Open source tool that generates Regression Tests like unit tests with mocks and stubs from API calls.", + "Keploy - Tool that generates Regression Tests like unit tests with mocks and stubs from API calls.", }, { name: "keywords", diff --git a/src/components/Community.js b/src/components/Community.js index d566ded21b..7abe662f62 100644 --- a/src/components/Community.js +++ b/src/components/Community.js @@ -129,12 +129,12 @@ export const Community = () => { ))} - {/* Enterprise Demo CTA */} + {/* Demo CTA */}

- Want to see a demo of Keploy Enterprise? + Want to see a demo of Keploy?

Share your use-case, workflow—and we'll help with any resources diff --git a/src/components/EnterpriseInstallReminder.js b/src/components/EnterpriseInstallReminder.js index 1723d3adbe..18ce6bb402 100644 --- a/src/components/EnterpriseInstallReminder.js +++ b/src/components/EnterpriseInstallReminder.js @@ -21,14 +21,14 @@ export default function EnterpriseInstallReminder() { return (

- Don’t have Keploy Enterprise installed yet? + Don’t have Keploy installed yet?

- Before running this sample, make sure Keploy Enterprise version is - installed on your system. + Before running this sample, make sure Keploy is installed on your system + and you’re signed in to your Keploy account (keploy login).

- * + * Usage (tiers are Keploy plans): + * + * + * */ +const freeChip = { + label: "Free", + color: "#059669", + bg: "rgba(16, 185, 129, 0.1)", +}; + const chipStyles = { - // Tier chips - 'open source': { label: 'OSS', color: '#059669', bg: 'rgba(16, 185, 129, 0.1)' }, - 'oss': { label: 'OSS', color: '#059669', bg: 'rgba(16, 185, 129, 0.1)' }, - 'enterprise': { label: 'Enterprise', color: '#7c3aed', bg: 'rgba(139, 92, 246, 0.1)' }, - 'cloud': { label: 'Cloud', color: '#2563eb', bg: 'rgba(59, 130, 246, 0.1)' }, + // Plan chips + free: freeChip, + teams: {label: "Teams", color: "#0891b2", bg: "rgba(6, 182, 212, 0.1)"}, + scale: {label: "Scale", color: "#4f46e5", bg: "rgba(99, 102, 241, 0.1)"}, + enterprise: { + label: "Enterprise", + color: "#7c3aed", + bg: "rgba(139, 92, 246, 0.1)", + }, + // Legacy tier names still render as the Free plan chip + "open source": freeChip, + oss: freeChip, + cloud: {label: "Cloud", color: "#2563eb", bg: "rgba(59, 130, 246, 0.1)"}, // Offering chips - simplified labels - 'self-hosted': { label: 'Self-Hosted', color: '#6b7280', bg: 'rgba(107, 114, 128, 0.08)' }, - 'dedicated': { label: 'Dedicated', color: '#6b7280', bg: 'rgba(107, 114, 128, 0.08)' }, - 'local': { label: 'Local', color: '#6b7280', bg: 'rgba(107, 114, 128, 0.08)' }, + "self-hosted": { + label: "Self-Hosted", + color: "#6b7280", + bg: "rgba(107, 114, 128, 0.08)", + }, + dedicated: { + label: "Dedicated", + color: "#6b7280", + bg: "rgba(107, 114, 128, 0.08)", + }, + local: {label: "Local", color: "#6b7280", bg: "rgba(107, 114, 128, 0.08)"}, }; -const ProductTier = ({ tiers, offerings }) => { +const ProductTier = ({tiers, offerings}) => { // Parse tiers and offerings into arrays const tierList = tiers - ? (Array.isArray(tiers) ? tiers : tiers.split(',').map(t => t.trim())) + ? Array.isArray(tiers) + ? tiers + : tiers.split(",").map((t) => t.trim()) : []; - // Skip offerings that are confusing for OSS (like "Self-Hosted, Dedicated") - // Only show offerings if explicitly needed - const offeringList = offerings && !tierList.some(t => t.toLowerCase().includes('open source')) - ? (Array.isArray(offerings) ? offerings : offerings.split(',').map(o => o.trim())) + const offeringList = offerings + ? Array.isArray(offerings) + ? offerings + : offerings.split(",").map((o) => o.trim()) : []; const allChips = [...tierList, ...offeringList]; @@ -44,14 +69,14 @@ const ProductTier = ({ tiers, offerings }) => { const key = chip.toLowerCase().trim(); const style = chipStyles[key] || { label: chip.trim(), - color: '#6b7280', - bg: 'rgba(107, 114, 128, 0.08)' + color: "#6b7280", + bg: "rgba(107, 114, 128, 0.08)", }; return ( {style.label} diff --git a/src/components/QuickStartList.js b/src/components/QuickStartList.js index 17f9e6e03c..2ca67dbcbf 100644 --- a/src/components/QuickStartList.js +++ b/src/components/QuickStartList.js @@ -138,7 +138,7 @@ const quickstarts = [ server: "Docker", description: "A sample URL Shortener app to demonstrate Keploy integration capabilities using Mux and MySQL.", - link: "/docs/quickstart/samples-mysql/#using-docker-compose-", + link: "/docs/quickstart/samples-mysql/#using-docker-", }, { title: "Mux + Mysql", @@ -156,7 +156,7 @@ const quickstarts = [ server: "Docker", description: "A sample CRUD application to demonstrate how seamlessly Keploy integrates with FastHttp and Postgres.", - link: "/docs/quickstart/samples-fasthttp/#using-docker-compose-", + link: "/docs/quickstart/samples-fasthttp/", }, */ @@ -234,7 +234,7 @@ const quickstarts = [ language: "Python", server: "Docker", description: "A Python Flask app connected to MongoDB running locally.", - link: "/docs/quickstart/samples-flask/#using-docker-compose", + link: "/docs/quickstart/samples-flask/#how-to-run-the-sample-application-using-docker-compose-", }, { title: "Flask + MongoDB", diff --git a/src/components/QuickStartTabs.js b/src/components/QuickStartTabs.js index d408f10691..cd068fabcb 100644 --- a/src/components/QuickStartTabs.js +++ b/src/components/QuickStartTabs.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, {useState} from "react"; import Link from "@docusaurus/Link"; import useBaseUrl from "@docusaurus/useBaseUrl"; import { @@ -47,8 +47,8 @@ export const QuickStartTabs = () => { primary: true, }, }, - oss: { - id: "oss", + record: { + id: "record", label: "Record/Replay Quickstart", time: "10 min", icon: FaVideo, @@ -72,14 +72,13 @@ export const QuickStartTabs = () => { }, ], cta: { - label: "Start OSS Quickstart", + label: "Start Record/Replay Quickstart", link: "/docs/quickstart/quickstart-filter/", primary: false, }, }, }; - return (
{/* Section Header */} @@ -145,7 +144,7 @@ export const QuickStartTabs = () => { {/* Steps */}
{tab.steps.map((step, index) => { - return ( + return (
{ {/* CTA Button */} e.stopPropagation()} className={`inline-flex w-full items-center justify-center gap-2 rounded-xl px-5 py-2.5 text-sm font-semibold transition-all duration-200 hover:no-underline ${ tab.id === "ai" @@ -203,4 +206,3 @@ export const QuickStartTabs = () => { }; export default QuickStartTabs; - diff --git a/src/components/SDKs.js b/src/components/SDKs.js index b6e685418a..16c7deffd5 100644 --- a/src/components/SDKs.js +++ b/src/components/SDKs.js @@ -7,7 +7,7 @@ export const SDKs = () => {

Supported OS

- Find eBPF tutorials and dependency mock references in the language of + Find Keploy tutorials and dependency mock references in the language of your choice.

diff --git a/src/pages/index.js b/src/pages/index.js index b18808ce79..ec0a438e16 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -43,7 +43,7 @@ export default function Home() { const docsHomeTitle = "Keploy Documentation — Install, Capture & Replay API Tests"; const docsHomeDescription = - "Install Keploy in 5 minutes, capture real API traffic with eBPF, and replay it as deterministic tests in CI. Quickstarts, SDK references, and integration guides."; + "Install Keploy in 5 minutes, capture real API traffic, and replay it as deterministic tests in CI. Quickstarts, SDK references, and integration guides."; // CollectionPage, not Article: this page is an index of the docs, with no // single author, publication date or headline. DocItem already suppresses // Article on /docs/ for exactly that reason, so emitting one here left the diff --git a/src/schema/siteEntities.js b/src/schema/siteEntities.js index 68e88b97fc..0f9006cfc5 100644 --- a/src/schema/siteEntities.js +++ b/src/schema/siteEntities.js @@ -99,21 +99,20 @@ const softwareApplicationNode = { "@id": SOFTWARE_APPLICATION_ID, name: "Keploy", description: - "Keploy is an open-source, AI-powered testing agent and sandboxing platform that automatically generates test cases, dependency mocks, and production-like sandboxes from real user traffic using eBPF. It helps developers achieve 90% test coverage in minutes with zero code changes. Native support is available on Linux; macOS and Windows require a Linux environment such as Lima, WSL, or Docker.", + "Keploy is an AI-powered testing agent and sandboxing platform that automatically generates test cases, dependency mocks, and production-like sandboxes from real user traffic, captured at the network layer. It helps developers achieve 90% test coverage in minutes with zero code changes. It runs natively on Linux (using eBPF), on macOS with Apple Silicon and on x86-64 Windows (in user space, with no VM or Docker).", applicationCategory: "DeveloperTool", applicationSubCategory: "Test Automation", - operatingSystem: "Linux", - license: "https://www.apache.org/licenses/LICENSE-2.0", + operatingSystem: "Linux, macOS, Windows", softwareHelp: DOCS_URL, codeRepository: "https://github.com/keploy/keploy", - downloadUrl: "https://github.com/keploy/keploy/releases", + downloadUrl: `${DOCS_URL}server/installation/`, isAccessibleForFree: true, url: SITE_URL, featureList: [ "Automatic test case generation from real user traffic", "Production-like sandbox environments from captured traffic", "AI-powered dependency virtualization and mock generation", - "Record and replay testing with eBPF kernel capture", + "Record and replay testing with network-layer traffic capture (eBPF on Linux, user space on macOS and Windows)", "AI noise detection for flaky test elimination", "Legacy application testing without code changes", "Migration regression testing against production baselines", diff --git a/versioned_docs/version-4.0.0/ci-cd/github.md b/versioned_docs/version-4.0.0/ci-cd/github.md index 839007ebc6..eb9352882c 100644 --- a/versioned_docs/version-4.0.0/ci-cd/github.md +++ b/versioned_docs/version-4.0.0/ci-cd/github.md @@ -23,8 +23,8 @@ totalTime="PT10M" tools={["GitHub Actions", "Keploy CLI"]} steps={[ {name: "Check out the commit", text: "Add actions/checkout to your workflow so the job runs against the code under test."}, -{name: "Install Keploy", text: "Download the Keploy binary from the latest GitHub release and move it to /usr/local/bin on the runner."}, -{name: "Run the tests", text: "Add a step that runs keploy test -c \"\" to replay the recorded suites."}, +{name: "Install Keploy", text: "Install Keploy on the runner with the keploy.io/install.sh script."}, +{name: "Run the tests", text: "Add a step that runs keploy test -c \"\" to replay the recorded suites, with KEPLOY_API_KEY set from a repository secret so Keploy can sign in."}, {name: "Run cloud replay (optional)", text: "Authenticate with a Keploy API token and trigger cloud replay from the pipeline for hosted test sets."}, ]} visible={false} @@ -32,7 +32,7 @@ visible={false} import ProductTier from '@site/src/components/ProductTier'; - + Keploy can be integrated with GitHub by two methods:- @@ -50,12 +50,15 @@ GitHub scripts are the easiest way to integrate Keploy with GitHub. We will be u uses: actions/checkout@v2 - name: Keploy Tests id: keploy-run-test + env: + KEPLOY_API_KEY: ${{ secrets.KEPLOY_API_KEY }} run: | - curl --silent --location "https://github.com/keploy/keploy/releases/latest/download/keploy_linux_amd64.tar.gz" | tar xz --overwrite -C /tmp - sudo mkdir -p /usr/local/bin && sudo mv /tmp/keploy /usr/local/bin/keploy + curl --silent -O -L https://keploy.io/install.sh && source install.sh ... ``` +`keploy test` needs a Keploy account (a free one is enough). In CI, Keploy signs in with the API key in the `KEPLOY_API_KEY` environment variable, so add your key as a repository secret named `KEPLOY_API_KEY` (**Settings → Secrets and variables → Actions**) — the `env:` block above passes it to the step. + ### Example with Scripts While using [express-mongoose](https://github.com/keploy/samples-typescript/tree/main/express-mongoose) sample-application with keploy test in GitHub CI, the workflow would like:- @@ -70,9 +73,10 @@ While using [express-mongoose](https://github.com/keploy/samples-typescript/tree - name: Keploy Tests id: keploy-run-test + env: + KEPLOY_API_KEY: ${{ secrets.KEPLOY_API_KEY }} run: | - curl --silent --location "https://github.com/keploy/keploy/releases/latest/download/keploy_linux_amd64.tar.gz" | tar xz --overwrite -C /tmp - sudo mkdir -p /usr/local/bin && sudo mv /tmp/keploy /usr/local/bin/keploy + curl --silent -O -L https://keploy.io/install.sh && source install.sh # Install application dependencies npm install @@ -246,7 +250,7 @@ The CLI reads the `KEPLOY_API_KEY` environment variable automatically — no bro - **Locally:** `export KEPLOY_API_KEY=""` before running the command. - **In CI:** store the key as a secret in your CI system so it gets injected as an environment variable at runtime. Never hard-code it in your pipeline file. -> Cloud replay requires the Enterprise binary. Install it with `curl --silent -O -L https://keploy.io/ent/install.sh && source install.sh` — not the open-source `keploy.io/install.sh`. +> Install Keploy with `curl --silent -O -L https://keploy.io/install.sh && source install.sh`. With `KEPLOY_API_KEY` set, Keploy signs in with your key. ### Steps @@ -254,7 +258,7 @@ The CLI reads the `KEPLOY_API_KEY` environment variable automatically — no bro - GitHub Actions: go to **Settings → Secrets and variables → Actions → New repository secret**, name it `KEPLOY_API_KEY`. - GitLab CI: go to **Settings → CI/CD → Variables**, add it as a masked variable. - Jenkins: add a **Secret text** credential via **Manage Jenkins → Credentials**. -2. **Install** the Enterprise Keploy binary on the runner. +2. **Install** Keploy on the runner. 3. **Run** `keploy cloud replay` with your application and cluster details. ### Example: GitHub Actions @@ -272,9 +276,9 @@ jobs: env: KEPLOY_API_KEY: ${{ secrets.KEPLOY_API_KEY }} steps: - - name: Install Keploy Enterprise + - name: Install Keploy run: | - curl --silent -O -L https://keploy.io/ent/install.sh && source install.sh + curl --silent -O -L https://keploy.io/install.sh && source install.sh - name: Cloud replay run: | diff --git a/versioned_docs/version-4.0.0/ci-cd/gitlab.md b/versioned_docs/version-4.0.0/ci-cd/gitlab.md index 7dec0ff98b..bfbf0b3998 100644 --- a/versioned_docs/version-4.0.0/ci-cd/gitlab.md +++ b/versioned_docs/version-4.0.0/ci-cd/gitlab.md @@ -25,14 +25,14 @@ steps={[ {name: "Define a test job", text: "Add a keploy-test-job in the test stage using an ubuntu:22.04 image."}, {name: "Install dependencies", text: "In before_script install curl, python3, git and kernel headers, then clone your application repo."}, {name: "Install Keploy", text: "Download the Keploy binary and place it on the PATH inside the job."}, -{name: "Run the tests", text: "Run keploy test -c \"\" to replay the recorded suites."}, +{name: "Run the tests", text: "Run keploy test -c \"\" to replay the recorded suites, with KEPLOY_API_KEY set as a masked CI/CD variable so Keploy can sign in."}, ]} visible={false} /> import ProductTier from '@site/src/components/ProductTier'; - + Keploy can integrated with GitLab CI to streamline your testing process and ensure continuous testing as part of your CI/CD pipeline. @@ -80,11 +80,13 @@ script: In your `.gitlab-ci.yml file`, in last step we have `keploy test` command to run your keploy generated test suite, this sets up Keploy to replay the interactions it has generated and perform CI Testing. +`keploy test` needs a Keploy account (a free one is enough). In CI, Keploy signs in with the API key in the `KEPLOY_API_KEY` environment variable, so add your key as a masked variable under **Settings → CI/CD → Variables** — GitLab injects it into every job. + ### 📝 Note Did you notice some weird stuff in the pipeline? Like `kmod`, `linux-headers`, `/sys/kernel/debug` -Don’t worry — these are just there because **Keploy uses eBPF** (a cool Linux feature) to trace your app’s behavior. +Don’t worry — these are just there because **on Linux, Keploy uses eBPF** (a cool Linux feature) to trace your app’s behavior. So we install `kmod`, `linux-headers-generic`, and `bpfcc-tools` to make that tracing possible. @@ -181,10 +183,10 @@ In GitLab CI, go to **Settings → CI/CD → Variables**, add `KEPLOY_API_KEY` a ### Steps 1. Add `KEPLOY_API_KEY` as a masked CI/CD variable (**Settings → CI/CD → Variables**). -2. Install the Enterprise Keploy binary on the runner. +2. Install Keploy on the runner. 3. Run `keploy cloud replay` with your application and cluster details. -> Cloud replay requires the Enterprise binary. Install it with `curl --silent -O -L https://keploy.io/ent/install.sh && source install.sh` — not the open-source `keploy.io/install.sh`. +> Install Keploy with `curl --silent -O -L https://keploy.io/install.sh && source install.sh`. With `KEPLOY_API_KEY` set, Keploy signs in with your key. ### Example: GitLab CI @@ -195,7 +197,7 @@ keploy-cloud-replay: # KEPLOY_API_KEY is injected automatically from the masked CI/CD variable script: - apt-get update -qq && apt-get install -y -qq curl sudo - - curl --silent -O -L https://keploy.io/ent/install.sh && source install.sh + - curl --silent -O -L https://keploy.io/install.sh && source install.sh - | keploy cloud replay \ --app "." \ diff --git a/versioned_docs/version-4.0.0/ci-cd/jenkins.md b/versioned_docs/version-4.0.0/ci-cd/jenkins.md index d7c8928426..3565d02439 100644 --- a/versioned_docs/version-4.0.0/ci-cd/jenkins.md +++ b/versioned_docs/version-4.0.0/ci-cd/jenkins.md @@ -24,20 +24,21 @@ tools={["Jenkins", "Keploy CLI"]} steps={[ {name: "Grant passwordless sudo", text: "Give the jenkins user NOPASSWD sudo so Keploy can attach its eBPF probes."}, {name: "Install Keploy", text: "Add an Install Keploy stage that downloads the binary onto the Jenkins agent."}, -{name: "Run the tests", text: "Add a stage that runs keploy test -c \"\" to replay the recorded suites."}, +{name: "Run the tests", text: "Add a stage that runs keploy test -c \"\" to replay the recorded suites, with KEPLOY_API_KEY bound from a Jenkins credential so Keploy can sign in."}, ]} visible={false} /> import ProductTier from '@site/src/components/ProductTier'; - + Keploy can integrated with Jenkins to ensure continuous testing as part of your CI/CD pipeline. ## Prerequisites - Jenkins installed and running +- A Keploy account (a free one is enough) and its API key, saved as a **Secret text** credential with ID `keploy-api-key` (**Manage Jenkins → Credentials**). In CI, Keploy signs in with the key in `KEPLOY_API_KEY`. - Sudo access with `"NOPASSWORD"` via `jenkins ALL=(ALL) NOPASSWD: ALL`. Open terminal and run`sudo visudo` command to open the sudoers file and add the below line at the end of the file. @@ -108,10 +109,12 @@ pipeline { } stage('Run Keploy Tests') { steps { - sh ''' - cd gin-mongo - sudo -E keploy test -c "go run main.go handler.go" --disableANSI - ''' + withCredentials([string(credentialsId: 'keploy-api-key', variable: 'KEPLOY_API_KEY')]) { + sh ''' + cd gin-mongo + sudo -E keploy test -c "go run main.go handler.go" --disableANSI + ''' + } } } } @@ -123,7 +126,7 @@ pipeline { Did you notice some weird stuff in the pipeline? Like `kmod`, `linux-headers`, `/sys/kernel/debug` -Don’t worry — these are just there because **Keploy uses eBPF** (a cool Linux feature) to trace your app’s behavior. +Don’t worry — these are just there because **on Linux, Keploy uses eBPF** (a cool Linux feature) to trace your app’s behavior. So we install `kmod`, `linux-headers-generic`, and `bpfcc-tools` to make that tracing possible. @@ -205,10 +208,10 @@ In Jenkins, go to **Manage Jenkins → Credentials**, add a **Secret text** cred ### Steps 1. Add `KEPLOY_API_KEY` as a **Secret text** credential in Jenkins (**Manage Jenkins → Credentials**). -2. Install the Enterprise Keploy binary on the agent. +2. Install Keploy on the agent. 3. Run `keploy cloud replay` with your application and cluster details. -> Cloud replay requires the Enterprise binary. Install it with `curl --silent -O -L https://keploy.io/ent/install.sh && source install.sh` — not the open-source `keploy.io/install.sh`. +> Install Keploy with the same script as above: `curl --silent -O -L https://keploy.io/install.sh && bash install.sh`. With `KEPLOY_API_KEY` set, Keploy signs in with your key. ### Example: Jenkins Declarative Pipeline @@ -216,10 +219,10 @@ In Jenkins, go to **Manage Jenkins → Credentials**, add a **Secret text** cred pipeline { agent any stages { - stage('Install Keploy Enterprise') { + stage('Install Keploy') { steps { sh ''' - curl --silent -O -L https://keploy.io/ent/install.sh && . install.sh + curl --silent -O -L https://keploy.io/install.sh && bash install.sh ''' } } diff --git a/versioned_docs/version-4.0.0/concepts/reference/glossary/component-testing.md b/versioned_docs/version-4.0.0/concepts/reference/glossary/component-testing.md index 1baa583eff..941ebca0d6 100644 --- a/versioned_docs/version-4.0.0/concepts/reference/glossary/component-testing.md +++ b/versioned_docs/version-4.0.0/concepts/reference/glossary/component-testing.md @@ -208,7 +208,7 @@ When testing a single component, it often depends on other parts of your system ## How does Keploy help you test your components? -Keploy is an open-source testing tool that helps automate and simplify component testing by turning real user interactions into useful, repeatable tests. Here are some of the ways it assists in component testing: +Keploy is a testing tool that helps automate and simplify component testing by turning real user interactions into useful, repeatable tests. Here are some of the ways it assists in component testing: 1. **Creates tests from real traffic** 2. **Creates mocks and stubs for dependencies** diff --git a/versioned_docs/version-4.0.0/concepts/reference/glossary/reliability-testing.md b/versioned_docs/version-4.0.0/concepts/reference/glossary/reliability-testing.md index 1ba15ff02a..d7935d28fd 100644 --- a/versioned_docs/version-4.0.0/concepts/reference/glossary/reliability-testing.md +++ b/versioned_docs/version-4.0.0/concepts/reference/glossary/reliability-testing.md @@ -55,7 +55,7 @@ Automation plays a crucial role in modern reliability testing. Automated test su ## Keploy: Transforming API Reliability Testing -Keploy represents a significant advancement in API reliability testing through its innovative approach to test generation and execution. This open-source testing platform automatically generates comprehensive test cases by capturing real API interactions, eliminating the traditional burden of manual test creation. +Keploy represents a significant advancement in API reliability testing through its innovative approach to test generation and execution. This testing platform automatically generates comprehensive test cases by capturing real API interactions, eliminating the traditional burden of manual test creation. The platform's core strength lies in its ability to record actual API calls during development or staging environments, then replay these interactions to validate system behavior. This approach ensures that test scenarios reflect real-world usage patterns rather than theoretical test cases that might miss critical edge cases. diff --git a/versioned_docs/version-4.0.0/concepts/reference/glossary/white-box-testing.md b/versioned_docs/version-4.0.0/concepts/reference/glossary/white-box-testing.md index 529796dcb5..12a0761feb 100644 --- a/versioned_docs/version-4.0.0/concepts/reference/glossary/white-box-testing.md +++ b/versioned_docs/version-4.0.0/concepts/reference/glossary/white-box-testing.md @@ -103,7 +103,7 @@ As code evolves, test cases must be updated, requiring ongoing coordination with Firstly, install [Keploy](https://keploy.io/), a testing tool that helps you automate the testing process. Here’s how you can perform white box testing with Keploy: -- **Instrument Your Code:** Use Keploy’s instrumentation to capture interactions and internal processes. Keploy works at a kernel and network level, capturing data flows, API calls, and other internal interactions without modifying your application code. +- **Instrument Your Code:** Use Keploy’s instrumentation to capture interactions and internal processes. Keploy works at the network level, capturing data flows, API calls, and other internal interactions without modifying your application code. - **Record Test Scenarios:** Run your application and perform different operations. Keploy will record these interactions and generate test cases based on the internal workings of your application. diff --git a/versioned_docs/version-4.0.0/concepts/what-are-keploy-features.md b/versioned_docs/version-4.0.0/concepts/what-are-keploy-features.md index 99ba050a79..6d824d64ec 100644 --- a/versioned_docs/version-4.0.0/concepts/what-are-keploy-features.md +++ b/versioned_docs/version-4.0.0/concepts/what-are-keploy-features.md @@ -82,11 +82,11 @@ Multiple Reads after write operations can be replicated automatically too. 🔄 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 +## 🌐 Code-less 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. 🍲 +Keploy's secret sauce is intercepting traffic at the network layer — with eBPF on Linux, and in user space on macOS and Windows — which makes integration code-less and oh-so-lightweight. 🍲 On Linux, and with Docker, it's language agnostic; natively on macOS and Windows it covers Go, Node.js, Python and Java apps. ## 🔍 Accurate Noise Detection diff --git a/versioned_docs/version-4.0.0/concepts/what-is-a-keploy-ebpf.md b/versioned_docs/version-4.0.0/concepts/what-is-a-keploy-ebpf.md index 4e5b38944b..c1e8412d9e 100644 --- a/versioned_docs/version-4.0.0/concepts/what-is-a-keploy-ebpf.md +++ b/versioned_docs/version-4.0.0/concepts/what-is-a-keploy-ebpf.md @@ -2,7 +2,7 @@ id: what-is-keploy-ebpf title: What is Keploy eBPF sidebar_label: Keploy eBPF -description: eBPF (Extended Berkeley Packet Filter) is a Linux kernel technology that Keploy uses to capture socket-level network I/O via kernel hooks with near-zero overhead — enabling production behavior replay, dependency virtualization, legacy application testing, and infrastructure mocking without code changes. +description: eBPF (Extended Berkeley Packet Filter) is a Linux kernel technology that Keploy uses on Linux to capture socket-level network I/O via kernel hooks with near-zero overhead — enabling production behavior replay, dependency virtualization, legacy application testing, and infrastructure mocking without code changes. tags: - explanation - ebpf @@ -17,7 +17,9 @@ keywords: - kernel-level traffic capture --- -eBPF (Extended Berkeley Packet Filter) is a Linux kernel technology that Keploy uses to intercept network packets at the socket level with near-zero overhead. By injecting eBPF hooks, Keploy captures all incoming API requests and outgoing dependency calls — database queries, external API calls, and message queue interactions — without modifying application code or requiring language-specific SDK installation. This kernel-level capture enables production behavior replay, dependency virtualization, legacy application testing for systems never designed for testability, and infrastructure mocking that replaces heavy staging environments with production-like sandboxes. +eBPF (Extended Berkeley Packet Filter) is a Linux kernel technology that Keploy uses on Linux to intercept network packets at the socket level with near-zero overhead. By injecting eBPF hooks, Keploy captures all incoming API requests and outgoing dependency calls — database queries, external API calls, and message queue interactions — without modifying application code or requiring language-specific SDK installation. This kernel-level capture enables production behavior replay, dependency virtualization, legacy application testing for systems never designed for testability, and infrastructure mocking that replaces heavy staging environments with production-like sandboxes. + +macOS and Windows have no eBPF, so there Keploy runs natively and intercepts in user space instead (its Docker route still uses eBPF, inside Docker's Linux VM) — see [Installing Keploy](/docs/server/installation/). A Keploy eBPF is a language-agnostic library that offers APIs to do the following: diff --git a/versioned_docs/version-4.0.0/concepts/what-is-keploy.md b/versioned_docs/version-4.0.0/concepts/what-is-keploy.md index e9fe35c602..62b45a5aa4 100644 --- a/versioned_docs/version-4.0.0/concepts/what-is-keploy.md +++ b/versioned_docs/version-4.0.0/concepts/what-is-keploy.md @@ -2,7 +2,7 @@ id: what-is-keploy title: What is Keploy? sidebar_label: Introduction to Keploy -description: Keploy is an open-source, AI-powered testing agent and sandboxing platform that uses eBPF to automatically generate test cases, dependency mocks, and production-like sandboxes from real user traffic — requiring zero code changes. It keeps testing aligned with AI-driven code velocity. +description: Keploy is an AI-powered testing agent and sandboxing platform that captures real user traffic at the network layer to automatically generate test cases, dependency mocks, and production-like sandboxes — requiring zero code changes. It keeps testing aligned with AI-driven code velocity. tags: - explanation - introduction @@ -26,12 +26,11 @@ keywords: - GoTest - Jest - Backend Testing - - Open Source - API Tests - AI Generated Tests --- -Keploy is an open-source, AI-powered testing agent and sandboxing platform that uses eBPF to automatically generate test cases, dependency mocks, and production-like sandboxes from real user traffic. It records live API calls at the Linux kernel socket layer (syscall-level network I/O) and replays them as deterministic tests — requiring zero code changes, working with any programming language or framework, and scaling test coverage with AI-driven code velocity. Keploy enables production behavior replay, dependency virtualization for databases and external APIs, legacy application testing without code changes, and migration regression testing against production baselines. +Keploy is an AI-powered testing agent and sandboxing platform that automatically generates test cases, dependency mocks, and production-like sandboxes from real user traffic. It records live API calls at the socket level — with eBPF in the kernel on Linux, and in user space on macOS and Windows — and replays them as deterministic tests, requiring zero code changes and scaling test coverage with AI-driven code velocity. On Linux, and with Docker, it works with any programming language or framework; natively on macOS and Windows it covers Go, Node.js, Python and Java apps — see [Installing Keploy](/docs/server/installation/) for what each platform supports. Keploy enables production behavior replay, dependency virtualization for databases and external APIs, legacy application testing without code changes, and migration regression testing against production baselines. 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. diff --git a/versioned_docs/version-4.0.0/keploy-cloud/cloud-replay.md b/versioned_docs/version-4.0.0/keploy-cloud/cloud-replay.md index d064f8f1ea..99da19606b 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/cloud-replay.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/cloud-replay.md @@ -260,7 +260,7 @@ keploy cloud replay --app prod.orders --branch-name "$(git rev-parse --abbrev-re | `--image` | from deployment manifest | Application docker image (with tag) to replay against. Falls back to the image in the K8s deployment manifest when omitted. | | `--envs` | — | Add or override environment variables for the replay session, e.g. `--envs "GEN_AI=true,DB_URL=postgres://localhost:5432"`. | | `--freezeTime` | `true` | Freeze time during the replay run so time-sensitive responses match. Cloud replay enables this by default. | -| `--channel-binding-shim` | from record config | Enable the eBPF channel-binding shim: on replay it downgrades libpq `channel_binding=require`→`disable` so SCRAM-SHA-256-PLUS apps replay against trust-mode mocks. Requires the enterprise cbshim agent image. Mirrors `keploy.yml` `record.channelBindingShim`. | +| `--channel-binding-shim` | from record config | Enable the eBPF channel-binding shim: on replay it downgrades libpq `channel_binding=require`→`disable` so SCRAM-SHA-256-PLUS apps replay against trust-mode mocks. Needs a Keploy agent image that has cbshim. Mirrors `keploy.yml` `record.channelBindingShim`. | | `--dedup` | `false` | Deduplicate the replay run. | | `--generate-compose-file` | `false` | Write the generated docker-compose YAML to disk (`docker-compose-keploy.yaml`) instead of passing it in-memory via stdin. Useful for debugging the generated compose. | @@ -328,7 +328,7 @@ Local (non-`--trigger`) self-hosted replay boots the app **and** the Keploy eBPF | `failed to get test sets: unexpected status code: 400` | Empty `clusterName` sent to the proxy | Pass `--cluster ` (the app's registered cluster) | | `app . not found for the cluster ` | `--cluster` doesn't match the app's recorded cluster | Use the exact `KEPLOY_CLUSTER_NAME` the app was recorded under | | `blob not found` / `…/mocks.bin not found` | The mock blob isn't in the proxy's object store (e.g. the store was reset after recording) | Re-record the test set; keep the metadata DB and object store lifecycles in sync | -| `sysctl: executable file not found in $PATH` | The privileged (sudo) re-exec stripped `/usr/sbin`/`/sbin` from `PATH` | Handled by the CLI automatically; on older builds `export PATH="$PATH:/usr/sbin:/sbin"` | +| `sysctl: executable file not found in $PATH` | The privileged (sudo) re-exec stripped `/usr/sbin`/`/sbin` from `PATH` | Handled by the CLI automatically; on older versions `export PATH="$PATH:/usr/sbin:/sbin"` | | `pull access denied for ` | The app image lives only in the cluster, not the local docker daemon | Load it locally, pass `--image `, or use `--trigger` (in-cluster) | | `manifest for keploy/enterprise:v not found` | The eBPF agent image tag derived from the CLI version isn't published (a dev build resolves to `v-dev`) | Use a release binary, or make that tag resolvable to the local docker daemon | | `connection reset by peer` → `ACTUAL STATUS 0` on the first test | The app wasn't listening yet when the first request fired | Raise `--delay` (e.g. `--delay 20`) for slow-starting apps (JVM, etc.) | diff --git a/versioned_docs/version-4.0.0/keploy-cloud/deduplication.md b/versioned_docs/version-4.0.0/keploy-cloud/deduplication.md index 840bfb0bf8..2bd5850412 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/deduplication.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/deduplication.md @@ -2,7 +2,7 @@ id: deduplication title: Dynamic Deduplication sidebar_label: Dynamic Deduplication -description: "Use Keploy Enterprise dynamic deduplication to identify redundant test cases and save time and resources." +description: "Use Keploy dynamic deduplication to identify redundant test cases and save time and resources." tags: - explanation - feature guide diff --git a/versioned_docs/version-4.0.0/keploy-cloud/gitops-argocd.md b/versioned_docs/version-4.0.0/keploy-cloud/gitops-argocd.md index 61365fcbd5..f189c4be0d 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/gitops-argocd.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/gitops-argocd.md @@ -6,13 +6,11 @@ description: "Deploy Keploy k8s-proxy with ArgoCD GitOps on Kubernetes — Helm tags: - explanation - feature guide - - keploy enterprise - kubernetes - argocd - gitops - contour keywords: - - keploy enterprise - kubernetes - argocd - gitops @@ -41,7 +39,7 @@ Ensure you have the following before you begin: 1. **A running Kubernetes cluster** (Kind, EKS, GKE, AKS) 2. **ArgoCD** installed on the cluster 3. **kubectl** and **Helm** installed -4. **Keploy Enterprise account** (with an access key) +4. **Keploy account on the Enterprise plan** (with an access key) --- @@ -328,4 +326,4 @@ Your existing application code, manifests, and ArgoCD Applications remain **comp - [Deploy Keploy with Flux CD](/docs/keploy-cloud/gitops-flux/) — the same deployment with Flux GitOps. - [Kubernetes Setup](/docs/keploy-cloud/kubernetes/) — prerequisite cluster and k8s-proxy setup. - [Kubernetes Local Setup (Kind)](/docs/keploy-cloud/kubernetes-local-setup/) — spin up a local Kind cluster. -- [Keploy Enterprise Installation](/docs/keploy-cloud/cloud-installation/) — install the Enterprise agent. +- [Install Keploy](/docs/server/installation/) — install Keploy and sign in. diff --git a/versioned_docs/version-4.0.0/keploy-cloud/gitops-flux.md b/versioned_docs/version-4.0.0/keploy-cloud/gitops-flux.md index 40ff6f2aee..f4b1c18892 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/gitops-flux.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/gitops-flux.md @@ -6,13 +6,11 @@ description: "Deploy Keploy k8s-proxy with Flux CD GitOps on Kubernetes — Helm tags: - explanation - feature guide - - keploy enterprise - kubernetes - flux - gitops - contour keywords: - - keploy enterprise - kubernetes - flux - gitops @@ -42,7 +40,7 @@ Ensure you have the following before you begin: 2. **Flux CLI** installed ([installation guide](https://fluxcd.io/flux/installation/)) 3. **kubectl** and **Helm** installed 4. **A Git repository** (GitHub, GitLab, Bitbucket) for Flux to watch -5. **Keploy Enterprise account** (with an access key) +5. **Keploy account on the Enterprise plan** (with an access key) 6. **Contour** deployed ([see step 2 in the ArgoCD guide](/docs/keploy-cloud/gitops-argocd#2-deploy-contour-ingress-controller)) --- @@ -266,4 +264,4 @@ Your existing application manifests and Flux configurations remain **completely - [Deploy Keploy with ArgoCD](/docs/keploy-cloud/gitops-argocd/) — the same deployment with ArgoCD GitOps. - [Kubernetes Setup](/docs/keploy-cloud/kubernetes/) — prerequisite cluster and k8s-proxy setup. - [Kubernetes Local Setup (Kind)](/docs/keploy-cloud/kubernetes-local-setup/) — spin up a local Kind cluster. -- [Keploy Enterprise Installation](/docs/keploy-cloud/cloud-installation/) — install the Enterprise agent. +- [Install Keploy](/docs/server/installation/) — install Keploy and sign in. diff --git a/versioned_docs/version-4.0.0/keploy-cloud/installation.md b/versioned_docs/version-4.0.0/keploy-cloud/installation.md index d9d918b911..48d2fb9ba8 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/installation.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/installation.md @@ -1,15 +1,13 @@ --- id: cloud-installation -title: Keploy Enterprise Installation -sidebar_label: Enterprise -description: "Install Keploy Enterprise — onboarding guide, feature overview, and steps to integrate enterprise API testing into your workflow." +title: Get Started on the Enterprise Plan +sidebar_label: Enterprise Plan +description: "Install Keploy and sign in — onboarding guide, an overview of the Enterprise plan features, and steps to integrate API testing into your workflow." tags: - explanation - feature guide - - keploy enterprise - installation keywords: - - keploy enterprise - installation - API key --- @@ -18,28 +16,28 @@ import ProductTier from '@site/src/components/ProductTier'; -This guide provides a complete overview of **Keploy Enterprise**, including onboarding instructions, key features, and steps to get started. It is designed to help teams quickly adopt Keploy Enterprise and integrate it into their development and testing workflows. +This guide covers installing **Keploy**, the key features available on the Enterprise plan, and steps to get started. It is designed to help teams quickly adopt Keploy and integrate it into their development and testing workflows. -### Requesting a Keploy Enterprise Account +### Requesting the Enterprise Plan -To get access to Keploy Enterprise, you’ll first need an enterprise account. +To use the features on this page, your Keploy account needs to be on the Enterprise plan. -#### Note: You can request one by reaching out to us [here](https://calendar.app.google/cXVaj6hbMUjvmrnt9). +#### Note: You can request it by reaching out to us [here](https://calendar.app.google/cXVaj6hbMUjvmrnt9). --- -### Getting Started with Keploy Enterprise +### Getting Started -Once your enterprise account is set up, you can begin exploring and using the core features of Keploy Enterprise. Below are some of the key capabilities that help teams achieve reliable, scalable, and production-grade API testing. +Once your account is on the Enterprise plan, you can begin exploring and using these features of Keploy. Below are some of the key capabilities that help teams achieve reliable, scalable, and production-grade API testing. - **Time Freezing** ❄️ - Keploy Enterprise allows you to freeze or roll back time during every test run to the exact moment when the test case was recorded. This ensures that time-sensitive data does not expire or change, making test executions consistent and highly reliable. + Keploy allows you to freeze or roll back time during every test run to the exact moment when the test case was recorded. This ensures that time-sensitive data does not expire or change, making test executions consistent and highly reliable. - **AI-Driven Test Generation** 🧠 - Keploy Enterprise automatically identifies edge cases in your APIs and generates test cases to uncover additional execution paths. This helps improve overall code coverage and detect issues that are often missed in manual testing. + Keploy automatically identifies edge cases in your APIs and generates test cases to uncover additional execution paths. This helps improve overall code coverage and detect issues that are often missed in manual testing. - **Test Deduplication** 📊 - Keploy Enterprise intelligently detects and removes duplicate or redundant test cases. This is especially useful when recording scenarios from live environments, allowing teams to retain only meaningful and unique test coverage. + Keploy intelligently detects and removes duplicate or redundant test cases. This is especially useful when recording scenarios from live environments, allowing teams to retain only meaningful and unique test coverage. - **Keploy Console** 📈 The Keploy Console provides a seamless experience for visualizing bugs, analyzing test results, and sharing reports across teams. It enables better collaboration and faster feedback cycles. @@ -50,19 +48,21 @@ Once your enterprise account is set up, you can begin exploring and using the co - **Mock Registry** 📂 The Mock Registry is designed to manage large mock files by storing them in cloud storage instead of committing them to Git repositories. This helps keep repositories lightweight while ensuring efficient mock management at scale. -To begin using Keploy Enterprise, you need to install the **Keploy Enterprise Agent** and authenticate using your API key. +To begin, install **Keploy** and sign in with your Keploy account. --- ## Installation 🛠️ -Follow the steps below to install and validate the Keploy Enterprise Agent: +On Linux or macOS, install Keploy with: ```bash -curl --silent -O -L https://keploy.io/ent/install.sh && source install.sh +curl --silent -O -L https://keploy.io/install.sh && source install.sh ``` -When recording API calls using the Enterprise Agent, you will be prompted to provide your **API key**. +On Windows (x86-64), run `keploy.exe` natively from PowerShell — no Administrator needed. See [Run Keploy natively on Windows](/docs/installation/windows-installation/#option-1-run-keploy-natively). For platform details, see the [Linux](/docs/installation/linux-installation/), [macOS](/docs/installation/macos-installation/) and [Windows](/docs/installation/windows-installation/) installation guides. + +The first time you run `keploy record` or `keploy test`, Keploy signs you in: it opens your browser at [app.keploy.io](https://app.keploy.io). Where no browser is available, run with `--manual-login` and paste your **API key** when prompted; in CI, set the `KEPLOY_API_KEY` environment variable instead. An API key typically looks like this: @@ -70,7 +70,7 @@ An API key typically looks like this: b1dNl.... ``` -Once the API key is successfully validated, the Keploy Enterprise Agent will begin recording API calls. +Once you are signed in, Keploy begins recording API calls. ## Related diff --git a/versioned_docs/version-4.0.0/keploy-cloud/keploy-console.md b/versioned_docs/version-4.0.0/keploy-cloud/keploy-console.md index 3d14baec92..f67bcde5f5 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/keploy-console.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/keploy-console.md @@ -20,7 +20,7 @@ import ProductTier from '@site/src/components/ProductTier'; ### Pre-requisite 📝 -Ensure you have [installed keploy enterprise](/docs/keploy-cloud/cloud-installation/#installation-%EF%B8%8F). +Ensure you have [installed Keploy](/docs/server/installation/). ### Run Tests Locally ⌛️ @@ -83,7 +83,7 @@ Similarly, if the test case result is the new expected response, we can normalis ## Related -- [Keploy Enterprise Installation](/docs/keploy-cloud/cloud-installation/) — prerequisite before starting the console. +- [Install Keploy](/docs/server/installation/) — prerequisite before starting the console. - [Keploy Cloud Application Settings Guide](/docs/keploy-cloud/application-settings/) — add an application to the console. - [Mock Registry](/docs/keploy-cloud/mock-registry/) — manage mocks used during test runs. - [Time Freezing](/docs/keploy-cloud/time-freezing/) — stabilize time-sensitive test results. diff --git a/versioned_docs/version-4.0.0/keploy-cloud/kubernetes-local-setup.md b/versioned_docs/version-4.0.0/keploy-cloud/kubernetes-local-setup.md index f5bf50f0a2..7735d6eb2d 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/kubernetes-local-setup.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/kubernetes-local-setup.md @@ -2,15 +2,13 @@ id: kubernetes-local-setup title: Kubernetes Local Setup (Kind) sidebar_label: Kubernetes Local Setup -description: "Set up a local Kind Kubernetes cluster with Keploy Enterprise — live record and replay API traffic for Pods via NodePort." +description: "Set up a local Kind Kubernetes cluster with Keploy — live record and replay API traffic for Pods via NodePort." tags: - explanation - feature guide - - keploy enterprise - kubernetes - kind keywords: - - keploy enterprise - kubernetes - kind - local cluster @@ -33,7 +31,7 @@ This guide walks you through creating a local **Kind** Kubernetes cluster and co Ensure you have the following before you begin: -1. **Keploy Enterprise account** (with an access key) +1. **Keploy account on the Enterprise plan** (with an access key) 2. **kubectl** configured to access your Kubernetes cluster 3. **Helm** installed 4. **Kind** installed @@ -243,4 +241,4 @@ kube-system coredns-7d764666f9-r82lr 1/1 R - [Kubernetes Setup](/docs/keploy-cloud/kubernetes/) — full cluster setup including ingress and GitOps. - [Deploy Keploy with ArgoCD](/docs/keploy-cloud/gitops-argocd/) — deploy the k8s-proxy declaratively with ArgoCD. - [Deploy Keploy with Flux CD](/docs/keploy-cloud/gitops-flux/) — deploy the k8s-proxy declaratively with Flux. -- [Keploy Enterprise Installation](/docs/keploy-cloud/cloud-installation/) — install the Enterprise agent. +- [Install Keploy](/docs/server/installation/) — install Keploy and sign in. diff --git a/versioned_docs/version-4.0.0/keploy-cloud/kubernetes.md b/versioned_docs/version-4.0.0/keploy-cloud/kubernetes.md index 03ed8d9568..28e41bafe4 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/kubernetes.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/kubernetes.md @@ -2,11 +2,10 @@ id: kubernetes title: Kubernetes Setup sidebar_label: Kubernetes -description: "Set up Keploy Enterprise on Kubernetes — create a Kind cluster and connect it to Keploy for live traffic recording and replay." +description: "Set up Keploy on Kubernetes — create a Kind cluster and connect it to Keploy for live traffic recording and replay." tags: - explanation - feature guide - - keploy enterprise - kubernetes - kind - argocd @@ -14,7 +13,6 @@ tags: - gitops - contour keywords: - - keploy enterprise - kubernetes - kind - argocd @@ -47,7 +45,7 @@ This guide walks you through creating a local **Kind** Kubernetes cluster and co Ensure you have the following before you begin: -1. **Keploy Enterprise account** (with an access key) +1. **Keploy account on the Enterprise plan** (with an access key) 2. **kubectl** configured to access your Kubernetes cluster 3. **Helm** installed 4. **Kind** installed @@ -657,5 +655,5 @@ curl -sk https://:30080/healthz ## Related - [Kubernetes Local Setup (Kind)](/docs/keploy-cloud/kubernetes-local-setup/) — spin up a local Kind cluster. -- [Keploy Enterprise Installation](/docs/keploy-cloud/cloud-installation/) — install the Enterprise agent. +- [Install Keploy](/docs/server/installation/) — install Keploy and sign in. - [Deploy Keploy with ArgoCD](/docs/keploy-cloud/gitops-argocd/) — GitOps deployment on the cluster. diff --git a/versioned_docs/version-4.0.0/keploy-cloud/new-application.md b/versioned_docs/version-4.0.0/keploy-cloud/new-application.md index 1c79a97f2a..70803f0cbe 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/new-application.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/new-application.md @@ -52,5 +52,5 @@ If you have any questions or need assistance, our support team is here to help. ## Related - [Keploy Console](/docs/keploy-cloud/keploy-console/) — where applications are managed. -- [Keploy Enterprise Installation](/docs/keploy-cloud/cloud-installation/) — install before adding an app. +- [Install Keploy](/docs/server/installation/) — install before adding an app. - [Auto Test Generation](/docs/keploy-cloud/auto-test-generation/) — generate tests for the new app. diff --git a/versioned_docs/version-4.0.0/keploy-cloud/smart-set-agent.md b/versioned_docs/version-4.0.0/keploy-cloud/smart-set-agent.md index caead9b192..2a26e46950 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/smart-set-agent.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/smart-set-agent.md @@ -37,7 +37,7 @@ The agent always stops at a **verified branch** and reports back. Merging to `ma ## Before you start -- Keploy Enterprise with smart test sets enabled on the app (`EnableSmartTestSet=true`), and the app already [recording in your cluster](/docs/quickstart/k8s-proxy). +- Keploy on the Enterprise plan, with smart test sets enabled on the app (`EnableSmartTestSet=true`), and the app already [recording in your cluster](/docs/quickstart/k8s-proxy). - A **Keploy PAT** — Dashboard → Settings → API Keys. Copy the `kep_...` value (shown only once). - A **Skills-aware editor**: Cursor (cursor-agent CLI / Cursor IDE), Claude Code, Windsurf, Antigravity, or any agent that loads `.../skills//SKILL.md` on demand. Older `.cursorrules` / `.windsurfrules` always-on rules files work too but bill the full skill on every editor interaction — Skills are the modern, on-demand path and what this page recommends. - **Run the agent from inside the app's git repository.** The skill inspects your `git` commit message and `git diff` to decide whether a failing case is an **intentional contract change** (update the test data) or a **regression** (fix the code). Outside a repo it can't tell them apart and will conservatively treat the change as a regression and refuse to edit the test. diff --git a/versioned_docs/version-4.0.0/keploy-cloud/static-deduplication.md b/versioned_docs/version-4.0.0/keploy-cloud/static-deduplication.md index e474707cf3..90056c5592 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/static-deduplication.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/static-deduplication.md @@ -6,7 +6,6 @@ description: Drop schema-identical live traffic at record time so only distinct tags: - deduplication - recording - - enterprise - schema - live recording keywords: @@ -15,7 +14,6 @@ keywords: - schema deduplication - custom dedup fields - recording dedup - - keploy enterprise - dedup stats - openapi enum - schema enum generation @@ -54,12 +52,12 @@ The first occurrence of a signature is recorded. Every later occurrence is silen Enable static dedup when you start a recording. Pick the flow that matches how you run Keploy. -### Keploy enterprise CLI +### Keploy CLI Add `--static-dedup` to `keploy record`: ```bash -keploy enterprise record -c "docker compose up" --containerName orders-api --static-dedup +keploy record -c "docker compose up" --containerName orders-api --static-dedup ``` The agent reports it is active in the startup logs and begins filtering on the first captured request. @@ -134,7 +132,7 @@ Field-path rules: You can also pass the same JSON via the CLI: ```bash -keploy enterprise record --static-dedup \ +keploy record --static-dedup \ --custom-dedup-fields='[{"method":"GET","path":"/products/{id}","statusCode":200,"fields":["response.product_id"]}]' \ -c "docker compose up" ``` diff --git a/versioned_docs/version-4.0.0/keploy-cloud/testgeneration.md b/versioned_docs/version-4.0.0/keploy-cloud/testgeneration.md index bf4d28a01a..e58d6311ac 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/testgeneration.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/testgeneration.md @@ -2,7 +2,7 @@ id: auto-test-generation title: Auto Test Generation sidebar_label: Test Generation -description: "Automatically generate API test cases with Keploy Enterprise using your OpenAPI schema file — no manual scripting required." +description: "Automatically generate API test cases with Keploy using your OpenAPI schema file — no manual scripting required." tags: - Auto Test Generation - OpenAPI diff --git a/versioned_docs/version-4.0.0/keploy-cloud/time-freezing.md b/versioned_docs/version-4.0.0/keploy-cloud/time-freezing.md index 106227d8cc..f0fd65436d 100644 --- a/versioned_docs/version-4.0.0/keploy-cloud/time-freezing.md +++ b/versioned_docs/version-4.0.0/keploy-cloud/time-freezing.md @@ -31,9 +31,9 @@ This allows developers to ensure time-sensitive objects don’t expire or change ## Usage 🛠️ -### Running on Linux or Windows(WSL) 🐧💻 +### Running natively on Linux (or WSL) 🐧 -For native Linux, Windows(WSL) environments, simply **add the `--freezeTime` flag** when running your tests, like so: +When Keploy runs natively on Linux — including inside WSL on Windows — simply **add the `--freezeTime` flag** when running your tests, like so: ```bash keploy test -c "" --freezeTime @@ -41,6 +41,12 @@ keploy test -c "" --freezeTime Voila! Your tests will now run with time freezing enabled. +### Running natively on macOS or Windows 🍎💻 + +Time freezing isn't supported when Keploy runs natively on macOS or Windows (outside WSL): even with `--freezeTime`, the application runs on the real clock. + +To freeze time on these platforms, run your application with Docker as described in [Running on Docker](#running-on-docker-) below, or run Keploy on Linux: in [WSL](/docs/installation/windows-installation/#option-2-install-keploy-with-wsl) on Windows, or in a [Lima](/docs/installation/macos-installation/#option-2-install-keploy-with-lima) VM on macOS. + ### Running on Docker 🐳 For Docker-based applications, you'll need to make a few adjustments to your Dockerfile to utilize this feature: @@ -96,10 +102,10 @@ RUN go build -tags=faketime 3. Only Add `faketime` tag to your build script during **Test MODE** 4. Re-Build your Docker image. -5. Now **add the `--freeze-time` flag** when running your tests with Keploy, like so: +5. Now **add the `--freezeTime` flag** when running your tests with Keploy, like so: ```bash -keploy test -c "" --freeze-time +keploy test -c "" --freezeTime ``` Voila! Your tests will now run with time freezing enabled. @@ -135,10 +141,10 @@ ENV LD_PRELOAD=/lib/keploy/freeze_time_arm64.so ``` 3. Re-Build your Docker image. -4. Now **add the `--freeze-time` flag** when running your tests with Keploy, like so: +4. Now **add the `--freezeTime` flag** when running your tests with Keploy, like so: ```bash -keploy test -c "" --freeze-time +keploy test -c "" --freezeTime ``` Voila! Your tests will now run with time freezing enabled. diff --git a/versioned_docs/version-4.0.0/keploy-explained/debugger-guide.md b/versioned_docs/version-4.0.0/keploy-explained/debugger-guide.md index 00f90abe36..4a98eab4b4 100644 --- a/versioned_docs/version-4.0.0/keploy-explained/debugger-guide.md +++ b/versioned_docs/version-4.0.0/keploy-explained/debugger-guide.md @@ -89,7 +89,7 @@ echo %PATH% Let's take a closer look at some important key-value pairs in our JSON file: - The `"name"` parameter can be anything, but for convenience, consider using the keploy command name (e.g., `Record` and `Test`). -- The `args` parameter represents the entire keploy command to run your application. For example, in [Gin + Mongo](https://keploy.io/docs/quickstart/samples-gin/), on Linux, it's `record -c "go run main.go handler.go"`, and for MacOS, it's `record -c "docker compose up" --containerName "ginMongoApp"`. +- The `args` parameter represents the entire keploy command to run your application. For example, in [Gin + Mongo](https://keploy.io/docs/quickstart/samples-gin/), on Linux, it's `record -c "go run main.go handler.go"`. Keploy run from the [keploy/keploy](https://github.com/keploy/keploy) source intercepts with eBPF, which is Linux-only, so when you debug it on macOS or Windows, run the app in Docker instead: `record -c "docker compose up" --container-name "ginMongoApp"`. This applies only to debugging Keploy from source — Keploy installed from keploy.io records apps natively on macOS and Windows (see [Installing Keploy](/docs/server/installation/)). You can either add more objects in the "configurations" array or modify the "args" property within a single object to add more commands. diff --git a/versioned_docs/version-4.0.0/keploy-explained/how-keploy-works.md b/versioned_docs/version-4.0.0/keploy-explained/how-keploy-works.md index 056b31bdbe..9fa0073dd4 100644 --- a/versioned_docs/version-4.0.0/keploy-explained/how-keploy-works.md +++ b/versioned_docs/version-4.0.0/keploy-explained/how-keploy-works.md @@ -2,7 +2,7 @@ id: how-keploy-works title: How Keploy Works? sidebar_label: Architecture -description: Keploy uses eBPF hooks in the Linux kernel to capture real user traffic in Record mode and replay it in production-like sandboxed environments in Test mode — enabling production behavior replay, dependency virtualization, and continuous validation with automatic regression detection. +description: Keploy captures real user traffic at the network layer in Record mode (with eBPF on Linux, in user space on macOS and Windows) and replays it in production-like sandboxed environments in Test mode — enabling production behavior replay, dependency virtualization, and continuous validation with automatic regression detection. tags: - explanation - replay-test-case @@ -20,7 +20,7 @@ keywords: - legacy application testing --- -Keploy generates tests by using eBPF hooks in the Linux kernel to capture socket-level application traffic. In Record mode, it captures every incoming HTTP request and outgoing dependency call — database queries, API calls, message queue interactions — saving them as YAML test cases. In Test mode, it replays those requests in a sandboxed environment that closely mimics production, with all dependencies automatically virtualized and responses compared to detect regressions. This production behavior replay enables continuous validation, migration regression testing, and legacy application testing without code changes. +Keploy generates tests by capturing application traffic at the socket level — with eBPF hooks in the kernel on Linux, and in user space on macOS and Windows. In Record mode, it captures every incoming HTTP request and outgoing dependency call — database queries, API calls, message queue interactions — saving them as YAML test cases. In Test mode, it replays those requests in a sandboxed environment that closely mimics production, with all dependencies automatically virtualized and responses compared to detect regressions. This production behavior replay enables continuous validation, migration regression testing, and legacy application testing without code changes. ## 🌟 Keploy V2 Architecture 🌟 @@ -34,7 +34,7 @@ Keploy generates tests by using eBPF hooks in the Linux kernel to capture socket ## 🏗 High-level architecture -Keploy uses eBPF to instrument applications without code changes. Key components include: +Keploy instruments applications without code changes. On Linux it does this with eBPF; macOS and Windows have no eBPF, so there Keploy hooks the application in user space instead, and the proxy and API server below work the same way. Key components include: - **eBPF hooks loader** - **Network Proxy** @@ -44,7 +44,7 @@ Keploy uses eBPF to instrument applications without code changes. Key components ### 🪝 eBPF hooks loader -The eBPF hooks loader handles the Ingress and Egress Interceptor logic. +The eBPF hooks loader handles the Ingress and Egress Interceptor logic on Linux. On macOS and Windows, Keploy's user-space hooks fill the same role. - **Ingress Interceptor:** Captures incoming HTTP calls and stores them in YAML format. It intercepts system calls related to incoming HTTP request connections. - **Egress Interceptor:** Forwards TCP and certain UDP connections to the proxy for interception. Applications are unaware of this transparent process. @@ -65,7 +65,7 @@ The API server manages commands for start/stop and resource management (e.g., te Consider an application server serving HTTP APIs for clients like web/mobile apps, postman, or curl, and depending on a database and another API. -- **Record Mode:** Keploy injects eBPF hooks to capture incoming HTTP traffic and redirects outgoing TCP/UDP traffic to its proxy server. The proxy server captures packets asynchronously and saves them in YAML files. +- **Record Mode:** Keploy hooks the application (with eBPF on Linux, in user space on macOS and Windows) to capture incoming HTTP traffic and redirect outgoing traffic to its proxy server. The proxy server captures packets asynchronously and saves them in YAML files. - **Test Mode:** Keploy reads the YAML files for test cases and stubs/mocks. It starts the application, sends recorded HTTP test cases, and mocks responses for outgoing calls. This ensures no side effects due to non-idempotency. Hope this helps you out, if you still have any questions, reach out to us . diff --git a/versioned_docs/version-4.0.0/keploy-explained/integration-testing-faq.md b/versioned_docs/version-4.0.0/keploy-explained/integration-testing-faq.md index 7d57e7043e..6f9145a05c 100644 --- a/versioned_docs/version-4.0.0/keploy-explained/integration-testing-faq.md +++ b/versioned_docs/version-4.0.0/keploy-explained/integration-testing-faq.md @@ -14,7 +14,7 @@ Frequently asked questions about Keploy’s integration testing platform. ### 1. What is Keploy? -Keploy is an open-source testing platform designed to automatically generate test cases from existing API traffic. It allows users to record, replay, and compare API interactions, making it easier to write and maintain test suites. +Keploy is a testing platform designed to automatically generate test cases from existing API traffic. It allows users to record, replay, and compare API interactions, making it easier to write and maintain test suites. ### 2. How does Keploy work? @@ -57,7 +57,7 @@ Yes, Keploy can mock database responses during test replay. This helps isolate t ### 11. Is Keploy free to use? -Yes, Keploy is open-source and free to use under the Apache 2.0 license. You can also contribute to its development on GitHub. +Yes. Keploy is free to use with a free Keploy account; free-tier runs are subject to a usage allowance, and paid plans add more features — see [pricing](https://keploy.io/pricing). The project is developed in the open on [GitHub](https://github.com/keploy/keploy), where you can also contribute. ### 12. Can I customize Keploy's behavior for specific APIs? diff --git a/versioned_docs/version-4.0.0/keploy-explained/introduction.md b/versioned_docs/version-4.0.0/keploy-explained/introduction.md index a3ccd72d79..d8ca32b2b3 100644 --- a/versioned_docs/version-4.0.0/keploy-explained/introduction.md +++ b/versioned_docs/version-4.0.0/keploy-explained/introduction.md @@ -2,7 +2,7 @@ id: introduction title: "What is Keploy?" sidebar_label: Introduction -description: "Introduction to Keploy — an open-source, eBPF-based testing platform that auto-generates tests from real API traffic." +description: "Introduction to Keploy — a testing platform that auto-generates tests from real API traffic, captured at the network layer with zero code changes." --- import WhatIsKeploy from '../concepts/what-is-keploy.md' diff --git a/versioned_docs/version-4.0.0/keploy-explained/why-keploy.md b/versioned_docs/version-4.0.0/keploy-explained/why-keploy.md index af20e70621..8b9611dae1 100644 --- a/versioned_docs/version-4.0.0/keploy-explained/why-keploy.md +++ b/versioned_docs/version-4.0.0/keploy-explained/why-keploy.md @@ -17,7 +17,7 @@ tags: | **Test Scripting** | Manual test script creation. | Record user traffic as tests scripts. | Automatic user traffic recording as test scripts. | | **Mocking Dependencies** | Manual mock/stub writing. | Setup test environments for dependencies. | Automatic mocking of dependencies CRUD operations. | | **Test Coverage** | Coverage reliant on script quality. | Coverage based on recorded traffic. | Line coverage derived from code quality. | -| **Code-Less Integration** | Requires scripting for integration. | Relies on traffic replication pipelines and mock scripts. | Uses EBPF for no-code, language-agnostic integration. | +| **Code-Less Integration** | Requires scripting for integration. | Relies on traffic replication pipelines and mock scripts. | No-code integration by capturing traffic at the network layer. | | **Noise Detection** | Manual noise and data noise identification. | Limited capability to filter noisy parameters. | Accurate noise detection, flagging random/noisy fields. | | **Ease of Use** | Moderate learning curve for scripting. | Difficulty in recording interactions and test environment management. | User-friendly with quick adoption. | | **CI/CD Integration** | Integration via unit test libraries in CI/CD pipelines. | Limited CI/CD integration, specific environments required. | Easy integration using unit test libraries in CI/CD. | diff --git a/versioned_docs/version-4.0.0/quickstart/csharp-dotnet-postgres.md b/versioned_docs/version-4.0.0/quickstart/csharp-dotnet-postgres.md index f84aa68b4e..6b3c0eef86 100644 --- a/versioned_docs/version-4.0.0/quickstart/csharp-dotnet-postgres.md +++ b/versioned_docs/version-4.0.0/quickstart/csharp-dotnet-postgres.md @@ -31,7 +31,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh; on macOS, install it in a Lima VM. Natively on macOS and Windows, Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -56,12 +56,14 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t import ProductTier from '@site/src/components/ProductTier'; - + import InstallReminder from '@site/src/components/InstallReminder'; 🪄 Dive into the world of User Authentication apps and see how seamlessly Keploy integrates with .Net and Postgres. Buckle up, it's gonna be a fun ride! 🎢 +This section runs on Linux or WSL. On macOS, run it inside a [Lima VM](/docs/installation/macos-installation/#option-2-install-keploy-with-lima) — natively on macOS and Windows, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Clone a sample user authentication app 🧪 @@ -77,7 +79,7 @@ git clone https://github.com/keploy/samples-csharp.git && cd samples-csharp docker-compose up ``` -We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (Redis) chill on Docker. Ready? Let's get the party started!🎉 +We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (Postgres) chill on Docker. Ready? Let's get the party started!🎉 ### 📼 Roll the Tape - Recording Time! diff --git a/versioned_docs/version-4.0.0/quickstart/express-postgresql-prisma.md b/versioned_docs/version-4.0.0/quickstart/express-postgresql-prisma.md index 92c9a78909..816f4fcac2 100644 --- a/versioned_docs/version-4.0.0/quickstart/express-postgresql-prisma.md +++ b/versioned_docs/version-4.0.0/quickstart/express-postgresql-prisma.md @@ -30,7 +30,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker Compose steps, since natively there Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -57,10 +57,12 @@ import ProductTier from '@site/src/components/ProductTier'; ## Running App Locally on Linux/WSL - + A sample Task Management application and see how seamlessly Keploy integrates with Express, PostgreSQL and Prisma ORM. Buckle up, it's gonna be a fun ride! +This section runs on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker Compose steps](#running-app-using-docker-compose-) instead — natively there, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Prerequisites @@ -218,7 +220,7 @@ keploy test -c "npm start" ## Running App using Docker Compose 🐳 - + A sample Task Management application and see how seamlessly Keploy integrates with Express, PostgreSQL and Prisma ORM. Buckle up, it's gonna be a fun ride! @@ -259,7 +261,7 @@ Fire up the application and mongoDB instance with Keploy. Keep an eye on the two --container-name: The container name in the docker-compose.yml for traffic interception. ```bash -keploy record -c "docker compose up" --container-name "express-postgresql-prisma-app" --build-delay 50 +keploy record -c "docker compose up" --container-name "express-postgresql-prisma-app-1" --build-delay 50 ``` **🔥 Challenge time!** Generate some test cases. How? Just make some API calls. Postman, Hoppscotch or even curl - take your pick! @@ -409,7 +411,7 @@ curl -X 'DELETE' \ ### Test the Application using Keploy ```bash -keploy test -c "docker compose up" --container-name "nodeMongoApp" --build-delay 50 --delay 10 +keploy test -c "docker compose up" --container-name "express-postgresql-prisma-app-1" --build-delay 50 --delay 10 ``` > The **--delay** flag? Oh, that's just giving your app a little breather (in seconds) before the test cases come knocking. diff --git a/versioned_docs/version-4.0.0/quickstart/flask-redis.md b/versioned_docs/version-4.0.0/quickstart/flask-redis.md index 8f4951bf50..5a4b2d87f2 100644 --- a/versioned_docs/version-4.0.0/quickstart/flask-redis.md +++ b/versioned_docs/version-4.0.0/quickstart/flask-redis.md @@ -33,7 +33,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). This sample runs under Docker Compose.", }, { name: "Clone the sample app", diff --git a/versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md b/versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md index c2f94998cd..52c4da0ec8 100644 --- a/versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md +++ b/versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md @@ -31,7 +31,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh; on macOS, install it in a Lima VM. Natively on macOS and Windows, Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -56,12 +56,14 @@ import InstallReminder from '@site/src/components/InstallReminder'; import SectionDivider from '@site/src/components/SectionDivider'; import ProductTier from '@site/src/components/ProductTier'; - + # Running App Locally on Linux/WSL 🐧 This guide walks you through generating tests and DB mocks for a sample CRUD app built with FastHttp and Postgres using Keploy. +This section runs on Linux or WSL. On macOS, run it inside a [Lima VM](/docs/installation/macos-installation/#option-2-install-keploy-with-lima) — natively on macOS and Windows, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Clone the sample CRUD application 🧪 diff --git a/versioned_docs/version-4.0.0/quickstart/go-gin-redis.md b/versioned_docs/version-4.0.0/quickstart/go-gin-redis.md index 9433640d17..f533b2d5bd 100644 --- a/versioned_docs/version-4.0.0/quickstart/go-gin-redis.md +++ b/versioned_docs/version-4.0.0/quickstart/go-gin-redis.md @@ -31,7 +31,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker steps, since natively there Keploy captures Redis calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -272,6 +272,8 @@ Happy coding! ✨👩‍💻👨‍💻✨ A sample user authentication app to test Keploy integration capabilities using Gin and Redis. +This section runs on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker steps](#using-docker-compose-) instead — natively there, Keploy captures Redis calls only as raw bytes, which usually don't replay. + ### Clone a sample user authentication app 🧪 diff --git a/versioned_docs/version-4.0.0/quickstart/go-mux-mysql.md b/versioned_docs/version-4.0.0/quickstart/go-mux-mysql.md index d294631018..9af50c52ed 100644 --- a/versioned_docs/version-4.0.0/quickstart/go-mux-mysql.md +++ b/versioned_docs/version-4.0.0/quickstart/go-mux-mysql.md @@ -32,7 +32,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -59,7 +59,7 @@ import ProductTier from '@site/src/components/ProductTier'; # Using Docker 🐳 - + A sample url shortener app to test Keploy integration capabilities using Mux and MySQL. @@ -88,7 +88,7 @@ Build the Docker image of our application: docker build -t url-short . ``` -Once we have our Docker image ready, this command will start recording API calls using eBPF: +Once we have our Docker image ready, this command will start recording API calls: ```shell keploy record -c "docker run -p 8080:8080 --name urlshort --rm --network keploy-network url-short:latest" @@ -157,12 +157,14 @@ Happy coding! ✨👩‍💻👨‍💻✨ --- -# Running App Locally on Linux/WSL 🐧 +# Running App Locally 💻 {#running-app-locally-on-linuxwsl-} - + A Sample url shortener app to test Keploy integration capabilities using [Mux](https://github.com/gorilla/mux) and MySql. +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + ### Clone a sample URL shortener app 🧪 @@ -188,12 +190,16 @@ export ConnectionString="root:my-secret-pw@tcp(localhost:3306)/mysql" go build -o main ``` +On Windows (PowerShell), set the variable with `$env:ConnectionString="root:my-secret-pw@tcp(localhost:3306)/mysql"`, build with `go build -o main.exe`, and use `.\main.exe` in place of `./main` below. + ### Capture the Testcases ```zsh sudo -E PATH=$PATH keploy record -c "./main" ``` +`sudo -E PATH=$PATH` is needed on Linux (and WSL) only — on macOS and Windows, run `keploy record` here, and `keploy test` below, without it. + Sample Keploy record header ### Generate testcases diff --git a/versioned_docs/version-4.0.0/quickstart/go-mux-sql.md b/versioned_docs/version-4.0.0/quickstart/go-mux-sql.md index ff58e182ec..d316ade4c2 100644 --- a/versioned_docs/version-4.0.0/quickstart/go-mux-sql.md +++ b/versioned_docs/version-4.0.0/quickstart/go-mux-sql.md @@ -32,7 +32,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker Compose steps, since natively there Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -59,7 +59,7 @@ import SectionDivider from '@site/src/components/SectionDivider'; # Using Docker Compose 🐳 - + A sample product catalog app to test Keploy integration capabilities using Mux and Postgres @@ -246,10 +246,12 @@ Happy coding! ✨👩‍💻👨‍💻✨ # Running App Locally on Linux/WSL 🐧 - + A Sample url shortener app to test Keploy integration capabilities using Mux and PostgreSQL +This section runs on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker Compose steps](#using-docker-compose-) instead — natively there, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Clone a sample Product Catalog App 🧪 diff --git a/versioned_docs/version-4.0.0/quickstart/java-spring-boot-mongo.md b/versioned_docs/version-4.0.0/quickstart/java-spring-boot-mongo.md index f465dba6f1..ec9ebe781d 100644 --- a/versioned_docs/version-4.0.0/quickstart/java-spring-boot-mongo.md +++ b/versioned_docs/version-4.0.0/quickstart/java-spring-boot-mongo.md @@ -36,7 +36,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -99,7 +99,9 @@ mvn wrapper:wrapper ## Run Application -We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (mongoDB) chill on Docker. Ready? Let's get the party started!🎉 +We'll be running our sample application right on your machine, but just to make things a tad more thrilling, we'll have the database (mongoDB) chill on Docker. Ready? Let's get the party started!🎉 + +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). ### 📼 Roll the Tape - Recording Time! @@ -109,6 +111,10 @@ Ready, set, record! Here's how: keploy record -c "./mvnw spring-boot:run" ``` +On macOS, Keploy is dropped by the `./mvnw` launcher — run the jar that `./mvnw clean install` built with your JDK's own `java` instead, here and in `keploy test` below: `keploy record -c "${JAVA_HOME:-$(/usr/libexec/java_home)}/bin/java -jar target/PotionsAPI-0.0.1-SNAPSHOT.jar"` ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). + +On Windows, Keploy starts your app through `cmd.exe`, which cannot run `./mvnw` — run the jar that `mvnw.cmd clean install` built, here and in `keploy test` below: `keploy record -c "java -jar target/PotionsAPI-0.0.1-SNAPSHOT.jar"`. + Alright, magician! With the app alive and kicking, let's weave some test cases. The spell? Making some API calls! Postman, Hoppscotch, or the classic curl - pick your wand. ### Generate testcases diff --git a/versioned_docs/version-4.0.0/quickstart/java-spring-boot-openhospital.md b/versioned_docs/version-4.0.0/quickstart/java-spring-boot-openhospital.md index 081ff3641c..858f758570 100644 --- a/versioned_docs/version-4.0.0/quickstart/java-spring-boot-openhospital.md +++ b/versioned_docs/version-4.0.0/quickstart/java-spring-boot-openhospital.md @@ -39,7 +39,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -62,7 +62,7 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t import ProductTier from '@site/src/components/ProductTier'; - + This is a openhospital app where you can record testcases and mocks by interacting with the UI, and then test them using Keploy. @@ -100,6 +100,8 @@ Now it's time to start the Backend using Keploy cli: # Instructions For Starting Using Binary +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). On Windows, Java separates classpath entries with `;`, so use `-cp "target/openhospital-api-0.1.0.jar;rsc/;static/"` in the `keploy record` and `keploy test` commands below. + Prerequisites For Binary: 1. Node 20.11.0 LTS @@ -112,6 +114,8 @@ Prerequisites For Binary: keploy record -c "java -cp "target/openhospital-api-0.1.0.jar:rsc/:static/" org.springframework.boot.loader.launch.JarLauncher" ``` +On macOS, use your JDK's own `java` rather than Apple's `/usr/bin/java`, which records nothing — here and in `keploy test` below, replace `java` with `${JAVA_HOME:-$(/usr/libexec/java_home)}/bin/java` ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). + Sample Keploy Record Java ## Start the frontend diff --git a/versioned_docs/version-4.0.0/quickstart/java-spring-boot-xml.md b/versioned_docs/version-4.0.0/quickstart/java-spring-boot-xml.md index 1b97674d7d..71dd4e719a 100644 --- a/versioned_docs/version-4.0.0/quickstart/java-spring-boot-xml.md +++ b/versioned_docs/version-4.0.0/quickstart/java-spring-boot-xml.md @@ -35,7 +35,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -58,7 +58,7 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t import ProductTier from '@site/src/components/ProductTier'; - + Explore creating REST APIs with XML responses using Spring-Boot. Discover the ease of integrating XML serialization through JAXB. Let's dive right in! @@ -74,6 +74,8 @@ import InstallReminder from '@site/src/components/InstallReminder'; ## Get Started! 🎬 +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + ### Clone and Build the Application ```bash @@ -96,6 +98,8 @@ mvn spring-boot:run keploy record -c "java -jar target/XML-0.0.1-SNAPSHOT.jar" ``` +On macOS, use your JDK's own `java` rather than Apple's `/usr/bin/java`, which records nothing — here and in `keploy test` below: `keploy record -c "${JAVA_HOME:-$(/usr/libexec/java_home)}/bin/java -jar target/XML-0.0.1-SNAPSHOT.jar"` ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). + Then, invoke the API using `curl` or your favorite API testing tool. ## API Endpoints 📡 diff --git a/versioned_docs/version-4.0.0/quickstart/java-spring-postgres.md b/versioned_docs/version-4.0.0/quickstart/java-spring-postgres.md index ddde06e2e7..200a37e65f 100644 --- a/versioned_docs/version-4.0.0/quickstart/java-spring-postgres.md +++ b/versioned_docs/version-4.0.0/quickstart/java-spring-postgres.md @@ -37,7 +37,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker steps, since natively there Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -62,10 +62,12 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t import ProductTier from '@site/src/components/ProductTier'; - + This is a petclinic app where you can record testcases and mocks by interacting with the UI, and then test them using Keploy. +This section runs the backend on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker steps](#instructions-for-starting-using-docker) instead — natively there, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + import Link from '@docusaurus/Link' import InstallReminder from '@site/src/components/InstallReminder'; import SectionDivider from '@site/src/components/SectionDivider'; @@ -153,7 +155,7 @@ keploy test -c "java -jar target/spring-petclinic-rest-3.0.2.jar" --delay 20 ## Instructions For Starting Using Docker - + This is a petclinic app where you can record testcases and mocks by interacting with the UI, and then test them using Keploy. diff --git a/versioned_docs/version-4.0.0/quickstart/nextjs-postgres.md b/versioned_docs/version-4.0.0/quickstart/nextjs-postgres.md index ff57f65c57..c3233c5519 100644 --- a/versioned_docs/version-4.0.0/quickstart/nextjs-postgres.md +++ b/versioned_docs/version-4.0.0/quickstart/nextjs-postgres.md @@ -25,7 +25,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh; on macOS, install it in a Lima VM. Natively on macOS and Windows, Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -48,10 +48,12 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t ## Running App Locally on Linux/WSL 🐧 - + This is a sample app to test Keploy integration capabilities using NextJS and Postgres with Drizzle ORM. Buckle up, it's gonna be a fun ride! 🎢 +This section runs on Linux or WSL. On macOS, run it inside a [Lima VM](/docs/installation/macos-installation/#option-2-install-keploy-with-lima) — natively on macOS and Windows, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + import Link from '@docusaurus/Link' import InstallReminder from '@site/src/components/InstallReminder'; import ProductTier from '@site/src/components/ProductTier'; diff --git a/versioned_docs/version-4.0.0/quickstart/node-express-mongoose.md b/versioned_docs/version-4.0.0/quickstart/node-express-mongoose.md index a85b4e8ae7..6ce4d579d8 100644 --- a/versioned_docs/version-4.0.0/quickstart/node-express-mongoose.md +++ b/versioned_docs/version-4.0.0/quickstart/node-express-mongoose.md @@ -29,7 +29,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -146,10 +146,12 @@ Happy coding! ✨👩‍💻👨‍💻✨ -## Running App Locally on Linux/WSL 🐧 +## Running App Locally 💻 {#running-app-locally-on-linuxwsl-} A simple sample CRUD application and see how seamlessly Keploy integrates with Express and MongoDB. Buckle up, it's gonna be a fun ride! 🎢 +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + ### Get Started! 🎬 @@ -163,7 +165,7 @@ git clone https://github.com/keploy/samples-typescript && cd samples-typescript/ npm install ``` -We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (mongoDB) chill on Docker. Ready? Let's get the party started!🎉 +We'll be running our sample application right on your machine, but just to make things a tad more thrilling, we'll have the database (mongoDB) chill on Docker. Ready? Let's get the party started!🎉 If you are using WSL on windows then use below to start wsl in the user's home directory: @@ -195,6 +197,8 @@ Ready, set, record! Here's how: sudo -E env PATH=$PATH keploy record -c 'node src/app.js' ``` +`sudo -E env PATH=$PATH` is needed on Linux (and WSL) only — on macOS and Windows, run `keploy record -c 'node src/app.js'` here, and `keploy test` below, without it. + Sample Keploy Test Result Node MongoDB Keep an eye out for the `-c `flag! It's the command charm to run the app. diff --git a/versioned_docs/version-4.0.0/quickstart/node-jwt-sql.md b/versioned_docs/version-4.0.0/quickstart/node-jwt-sql.md index 64dca412d5..8ff5faf57f 100644 --- a/versioned_docs/version-4.0.0/quickstart/node-jwt-sql.md +++ b/versioned_docs/version-4.0.0/quickstart/node-jwt-sql.md @@ -29,7 +29,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker Compose steps, since natively there Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -57,10 +57,12 @@ import ProductTier from '@site/src/components/ProductTier'; ## Running App Locally on Linux/WSL 🐧 - + A simple sample CRUD application to test using Keploy build with Node, JWT and Postgres. Buckle up, it's gonna be a fun ride! 🎢 +This section runs on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker Compose steps](#using-docker-compose-) instead — natively there, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Setup application @@ -195,7 +197,7 @@ User Content ## Running the testcases ```bash -sudo -E env PATH=$PATH keploy test -c 'npm run app.js' --delay 10 +sudo -E env PATH=$PATH keploy test -c 'node app.js' --delay 10 ``` Our testcases will fail as the token would expire and new Token will generated again when we are using testmode. To make sure that testcases do not fail, we have use [timeFreezing](https://keploy.io/docs/keploy-cloud/time-freezing/). @@ -222,7 +224,7 @@ Now, let's run the keploy in test mode again:- Sample Keploy Test Result Node JWT -But wait — one test is still failing due to the time-freezing. To try out the time-freezing feature, you can use Keploy Enterprise. +But wait — one test is still failing due to the time-freezing. [Time freezing](/docs/keploy-cloud/time-freezing/) is available on the Enterprise plan. ### Wrapping it up 🎉 @@ -234,7 +236,7 @@ Happy coding! ✨👩‍💻👨‍💻✨ ## Using Docker Compose 🐳 - + A simple sample CRUD application to test using Keploy build with Node, JWT and Postgres. Buckle up, it's gonna be a fun ride! 🎢 @@ -364,7 +366,7 @@ User Content ## Running the testcases ```bash -keploy test -c 'sudo docker compose up' --container-name "jwtSqlApp" --delay 10 +keploy test -c 'docker compose up' --container-name "jwtSqlApp" --delay 10 ``` Our testcases will fail as the token would expire and new Token will generated again when we are using testmode. To make sure that testcases do not fail, we have use [timeFreezing](https://keploy.io/docs/keploy-cloud/time-freezing/). @@ -390,7 +392,7 @@ Now, let's run the keploy in test mode again:- Sample Keploy Test Result Node JWT -But wait — one test is still failing due to the time-freezing. To try out the time-freezing feature, you can use Keploy Enterprise. +But wait — one test is still failing due to the time-freezing. [Time freezing](/docs/keploy-cloud/time-freezing/) is available on the Enterprise plan. ### Wrapping it up 🎉 diff --git a/versioned_docs/version-4.0.0/quickstart/python-django-sql.md b/versioned_docs/version-4.0.0/quickstart/python-django-sql.md index c1a98f7189..13833a2324 100644 --- a/versioned_docs/version-4.0.0/quickstart/python-django-sql.md +++ b/versioned_docs/version-4.0.0/quickstart/python-django-sql.md @@ -32,7 +32,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker Compose steps, since natively there Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -55,7 +55,7 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t ## Using Docker Compose 🐳 - + 🪄 Dive into the world of User CRUD Apps and see how seamlessly Keploy integrated with Django and PostgreSQL. Buckle up, it's gonna be a fun ride! 🎢 @@ -286,12 +286,14 @@ Happy coding! ✨👩‍💻👨‍💻✨ ## Running App Locally on Linux/WSL 🐧 - + 🪄 Dive into the world of User CRUD Apps and see how seamlessly Keploy integrated with Django and PostgreSQL. Buckle up, it's gonna be a fun ride! 🎢 We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (PostgreSQL) chill on Docker. Ready? Let's get the party started!🎉 +This section runs on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker Compose steps](#using-docker-compose-) instead — natively there, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Clone a sample user data CRUD app 🧪 diff --git a/versioned_docs/version-4.0.0/quickstart/python-fastapi-sql.md b/versioned_docs/version-4.0.0/quickstart/python-fastapi-sql.md index 11d34f3941..930b484eda 100644 --- a/versioned_docs/version-4.0.0/quickstart/python-fastapi-sql.md +++ b/versioned_docs/version-4.0.0/quickstart/python-fastapi-sql.md @@ -33,7 +33,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker Compose steps, since natively there Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -56,7 +56,7 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t ## Using Docker Compose 🐳 - + 🪄 Dive into the world of User CRUD Apps and see how seamlessly Keploy integrated with FastAPI and PostgreSQL. Buckle up, it's gonna be a fun ride! 🎢 @@ -247,10 +247,12 @@ Happy coding! ✨👩‍💻👨‍💻✨ ## Running App Locally on Linux/WSL 🐧 - + We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (PostgreSQL) chill on Docker. Ready? Let's get the party started!🎉 +This section runs on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker Compose steps](#using-docker-compose-) instead — natively there, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Clone the sample Student Data CRUD app 🧪 diff --git a/versioned_docs/version-4.0.0/quickstart/python-fastapi-twilio.md b/versioned_docs/version-4.0.0/quickstart/python-fastapi-twilio.md index 594359ef5d..d90a0c1362 100644 --- a/versioned_docs/version-4.0.0/quickstart/python-fastapi-twilio.md +++ b/versioned_docs/version-4.0.0/quickstart/python-fastapi-twilio.md @@ -35,7 +35,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -58,7 +58,7 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t ## Using Docker Compose 🐳 - + 🪄 Dive into the world of SMS Sending Apps and see how seamlessly Keploy can be integrated with FastAPI and Twilio . Buckle up, it's gonna be a fun ride! 🎢 @@ -273,12 +273,14 @@ Happy coding! ✨👩‍💻👨‍💻✨ -## Running App Locally on Linux/WSL 🐧 +## Running App Locally 💻 {#running-app-locally-on-linuxwsl-} - + 🪄 Dive into the world of SMS Sending Apps and see how seamlessly Keploy can be integrated with FastAPI and Twilio . Buckle up, it's gonna be a fun ride! 🎢 +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + ## Setup the Twilio Account 💬 @@ -301,9 +303,11 @@ git clone https://github.com/keploy/samples-python.git && cd samples-python/fast ### Lights, Camera, Record! 🎥 ```bash -keploy record -c "uvicorn application.main:app --reload" +keploy record -c "uvicorn main:app --reload" ``` +On macOS, install the requirements into a virtualenv built on a Homebrew or uv Python and use its `uvicorn` here and in the test step, e.g. `keploy record -c ".venv/bin/uvicorn main:app --reload"` — Apple's `/usr/bin/python3` and pyenv shims drop Keploy's instrumentation ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). + Keep an eye out for the `-c `flag! It's the command charm to run the app. Alright, magician! With the app alive and kicking, let's weave some test cases. The spell? Making some API calls! Postman, Hoppscotch, or the classic curl - pick your wand. @@ -464,7 +468,7 @@ Want to see if everything works as expected? Time to put things to the test 🧪 ```shell -keploy test -c "uvicorn application.main:app --reload" --delay 10 +keploy test -c "uvicorn main:app --reload" --delay 10 ``` > The `--delay` flag? Oh, that's just giving your app a little breather (in seconds) before the test cases come knocking. diff --git a/versioned_docs/version-4.0.0/quickstart/python-flask-mongo.md b/versioned_docs/version-4.0.0/quickstart/python-flask-mongo.md index 1a9133719e..a23af37b16 100644 --- a/versioned_docs/version-4.0.0/quickstart/python-flask-mongo.md +++ b/versioned_docs/version-4.0.0/quickstart/python-flask-mongo.md @@ -34,7 +34,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -131,17 +131,19 @@ Happy coding! ✨👩‍💻👨‍💻✨ -## How to Run the App Locally on Linux/WSL 🐧 +## How to Run the App Locally 💻 {#how-to-run-the-app-locally-on-linuxwsl-} 🪄 Dive into the world of Student CRUD Apps and see how seamlessly Keploy integrated with Flask and MongoDB Buckle up, it's gonna be a fun ride! 🎢 +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + ## Clone a simple Student Management API 🧪 ```bash git clone https://github.com/keploy/samples-python.git && cd samples-python/flask-mongo ``` -We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (MongoDB) chill on Docker. Ready? Let's get the party started!🎉 +We'll be running our sample application right on your machine, but just to make things a tad more thrilling, we'll have the database (MongoDB) chill on Docker. Ready? Let's get the party started!🎉 ## Install all dependencies @@ -165,6 +167,8 @@ To initiate the recording of API calls, execute this command in your terminal: keploy record -c "python3 app.py" ``` +On macOS, install the requirements into a virtualenv built on a Homebrew or uv Python and use its interpreter here and in the test step, e.g. `keploy record -c ".venv/bin/python app.py"` — Apple's `/usr/bin/python3` and pyenv shims drop Keploy's instrumentation ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). On Windows, use `python app.py` if `python3` isn't on your `PATH`. + Now, your app will start running, and you have to make some API calls to generate the test cases!! 1. **Make a POST request:** diff --git a/versioned_docs/version-4.0.0/quickstart/python-microservices.md b/versioned_docs/version-4.0.0/quickstart/python-microservices.md index 07027d5c64..ec306bcc0a 100644 --- a/versioned_docs/version-4.0.0/quickstart/python-microservices.md +++ b/versioned_docs/version-4.0.0/quickstart/python-microservices.md @@ -35,7 +35,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). This sample runs under Docker Compose.", }, { name: "Clone the sample app", @@ -1400,7 +1400,7 @@ Use the following link to install the [Chrome Extension](https://chromewebstore. Sample Keploy Record Microservices -Once done, Go to [Keploy Enterprise UI](https://app.keploy.io) to try out Keploy API Testing. Once you sign in, you’ll see a dashboard like this: +Once done, Go to the [Keploy console](https://app.keploy.io) to try out Keploy API Testing. Once you sign in, you’ll see a dashboard like this: Sample Keploy Record Microservices diff --git a/versioned_docs/version-4.0.0/quickstart/rust-wrap-mongo.md b/versioned_docs/version-4.0.0/quickstart/rust-wrap-mongo.md index 4f5ec58663..bb4e614357 100644 --- a/versioned_docs/version-4.0.0/quickstart/rust-wrap-mongo.md +++ b/versioned_docs/version-4.0.0/quickstart/rust-wrap-mongo.md @@ -25,7 +25,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh; on macOS, install it in a Lima VM (Keploy's native macOS and Windows support is tested with Go, Node.js, Python and Java apps).", }, { name: "Clone the sample app", @@ -66,6 +66,8 @@ git clone https://github.com/keploy/samples-rust && cd samples-rust/CRUD-rust-mo ## Running App Locally on Linux/WSL 🐧 +On macOS, run these steps inside a [Lima VM](/docs/installation/macos-installation/#option-2-install-keploy-with-lima) — Keploy's native macOS and Windows support is tested with Go, Node.js, Python and Java apps. + We will be using Docker compose to run Mongo on Docker container. ### Let's start the MongoDB Instance diff --git a/versioned_docs/version-4.0.0/quickstart/sample-rust-crud-mongo.md b/versioned_docs/version-4.0.0/quickstart/sample-rust-crud-mongo.md index abe87d6e5d..b6fec4a35e 100644 --- a/versioned_docs/version-4.0.0/quickstart/sample-rust-crud-mongo.md +++ b/versioned_docs/version-4.0.0/quickstart/sample-rust-crud-mongo.md @@ -28,7 +28,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh; on macOS, install it in a Lima VM, since native macOS and Windows support is tested with Go, Node.js, Python and Java apps.", }, { name: "Clone the sample app", @@ -55,6 +55,8 @@ import InstallReminder from '@site/src/components/InstallReminder'; ## Running App Locally on Linux/WSL 🐧 +This section runs on Linux or WSL. On macOS, run it inside a [Lima VM](/docs/installation/macos-installation/#option-2-install-keploy-with-lima) — Keploy's native macOS and Windows support is tested with Go, Node.js, Python and Java apps. + ## Get Started! 🎬 diff --git a/versioned_docs/version-4.0.0/quickstart/sample-ts.md b/versioned_docs/version-4.0.0/quickstart/sample-ts.md index a8d4980fa9..2aea468738 100644 --- a/versioned_docs/version-4.0.0/quickstart/sample-ts.md +++ b/versioned_docs/version-4.0.0/quickstart/sample-ts.md @@ -25,7 +25,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -46,12 +46,14 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t ]} /> -## Running Natively on Linux/WSL +## Running Natively {#running-natively-on-linuxwsl} - + This is a sample app to test Keploy integration capabilities using Typescript and Nhost Let's get started without delaying any further! 🎢 +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + import Link from '@docusaurus/Link' import InstallReminder from '@site/src/components/InstallReminder'; import SectionDivider from '@site/src/components/SectionDivider'; @@ -82,7 +84,7 @@ Steps on how to generate your HASURA_ADMIN_SECRET and GRAPHQL_ENDPOINT : 3. Go to Hasura Console and open Hasura (Make sure to save your secret key before going to the next step) 4. Get the `x-hasura-admin-secret` and `GraphQL Endpoint` and name them as `HASURA_ADMIN_SECRET` and `GRAPHQL_ENDPOINT `respectively in .env -We're about to set up our sample application right on Linux, with a twist—our GraphQL backend will be powered by Hasura through Nhost. And to add a bit of flair, we’ll handle the database management with Nhost’s cloud-based service. +We're about to set up our sample application right on your machine, with a twist—our GraphQL backend will be powered by Hasura through Nhost. And to add a bit of flair, we’ll handle the database management with Nhost’s cloud-based service. Ready to dive in? Let’s make this setup as smooth as a breeze! 🌟 @@ -100,6 +102,8 @@ sudo -E env "PATH=$PATH" keploy record -c 'ts-node src/app.ts' `-c 'ts-node src/app.ts`': Specifies the command to start your application (in this case, using ts-node to execute the TypeScript application entry point). +`sudo -E env "PATH=$PATH"` is needed on Linux (and WSL) only — on macOS and Windows, run `keploy record -c 'ts-node src/app.ts'` here, and `keploy test` below, without it. + ### Generating the test cases 1. Create User @@ -227,7 +231,7 @@ Now its time for you to experiment further with different API calls and tweak th ## Running the app using Docker - + This is a sample app to test Keploy integration capabilities using Typescript and Nhost Let's get started without delaying any further! 🎢 diff --git a/versioned_docs/version-4.0.0/quickstart/samples-bunjs.md b/versioned_docs/version-4.0.0/quickstart/samples-bunjs.md index 017a985607..db065cf480 100644 --- a/versioned_docs/version-4.0.0/quickstart/samples-bunjs.md +++ b/versioned_docs/version-4.0.0/quickstart/samples-bunjs.md @@ -33,7 +33,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh; on macOS, install it in a Lima VM, since native macOS and Windows support is tested with Go, Node.js, Python and Java apps.", }, { name: "Clone the sample app", @@ -58,6 +58,8 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t This is a sample app to test Keploy integration capabilities using Bun.js and MongoDB. +This section runs on Linux or WSL. On macOS, run it inside a [Lima VM](/docs/installation/macos-installation/#option-2-install-keploy-with-lima) — Keploy's native macOS and Windows support is tested with Go, Node.js, Python and Java apps. + import Link from '@docusaurus/Link' import InstallReminder from '@site/src/components/InstallReminder'; @@ -89,7 +91,7 @@ This command will essentailly make a fresh docker-network named as `keploy-netwo docker network create keploy-network ``` -Using the docker-compose file we will start our Postgres instance:- +Using the docker-compose file we will start our MongoDB instance:- ```bash docker-compose up -d mongo @@ -98,7 +100,7 @@ docker-compose up -d mongo Ready, set, record! Here's how: ```bash -sudo -E env PATH=$PATH Keploy record -c 'bun run supabun.ts' +sudo -E env PATH=$PATH keploy record -c 'bun run supabun.ts' ``` Keep an eye out for the `-c `flag! It's the command charm to run the app. diff --git a/versioned_docs/version-4.0.0/quickstart/samples-echo.md b/versioned_docs/version-4.0.0/quickstart/samples-echo.md index 44f7558601..07b559a7a9 100644 --- a/versioned_docs/version-4.0.0/quickstart/samples-echo.md +++ b/versioned_docs/version-4.0.0/quickstart/samples-echo.md @@ -31,7 +31,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker Compose steps, since natively there Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -59,7 +59,7 @@ import SectionDivider from '@site/src/components/SectionDivider'; import ProductTier from '@site/src/components/ProductTier'; - + A Sample url shortener app to test Keploy integration capabilities using Echo and PostgreSQL @@ -152,10 +152,12 @@ Happy coding! ✨👩‍💻👨‍💻✨ ## Running App Locally on Linux/WSL 🐧 - + A Sample url shortener app to test Keploy integration capabilities using Echo and PostgreSQL +This section runs on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker Compose steps](#using-docker-compose-) instead — natively there, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Clone a sample URL shortener app 🧪 diff --git a/versioned_docs/version-4.0.0/quickstart/samples-express-mongoose.md b/versioned_docs/version-4.0.0/quickstart/samples-express-mongoose.md index e038fc031c..5ccade91f5 100644 --- a/versioned_docs/version-4.0.0/quickstart/samples-express-mongoose.md +++ b/versioned_docs/version-4.0.0/quickstart/samples-express-mongoose.md @@ -29,7 +29,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -54,6 +54,8 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t A simple sample CRUD application and see how seamlessly Keploy integrates with Express and MongoDB Buckle up, it's gonna be a fun ride! 🎢 +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + import InstallationGuide from '../concepts/installation.md' @@ -101,6 +103,8 @@ if using wsl use this : sudo -E env PATH=$PATH keploy record -c 'npm start' ``` +`sudo` is for Linux (and WSL) only. On macOS, Keploy is dropped by the `npm start` launcher — run the app's entry point directly instead, here and in `keploy test` below: `keploy record -c "node server.js"` ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). + 🔥 Challenge time! Generate some test cases. How? Just **make some API calls**. Postman, Hoppscotch or even curl - take your pick! #### Let's generate the testcases. @@ -221,7 +225,7 @@ keploy test -c "npm start" --delay 10 If using wsl use this : ```bash -keploy -E env PATH=$PATH keploy test -c 'npm start' --delay 10 +sudo -E env PATH=$PATH keploy test -c 'npm start' --delay 10 ``` Keploy test report: diff --git a/versioned_docs/version-4.0.0/quickstart/samples-go-gin-mongo.md b/versioned_docs/version-4.0.0/quickstart/samples-go-gin-mongo.md index 9544689e52..cbd1ab5397 100644 --- a/versioned_docs/version-4.0.0/quickstart/samples-go-gin-mongo.md +++ b/versioned_docs/version-4.0.0/quickstart/samples-go-gin-mongo.md @@ -31,7 +31,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -241,9 +241,11 @@ Happy coding! ✨👩‍💻👨‍💻✨ --- -# Running App Locally on Linux/WSL 🐧 +# Running App Locally 💻 {#running-app-locally-on-linuxwsl-} -A Sample url shortener app to test Keploy integration capabilities using Echo and PostgreSQL +A sample url shortener app to test Keploy integration capabilities using Gin and MongoDB + +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). @@ -254,7 +256,7 @@ git clone https://github.com/keploy/samples-go.git && cd samples-go/gin-mongo go mod download ``` -We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (MongoDB) chill on Docker. Ready? Let's get the party started! 🎉 +We'll be running our sample application right on your machine, but just to make things a tad more thrilling, we'll have the database (MongoDB) chill on Docker. Ready? Let's get the party started! 🎉 If you are using WSL on Windows then use below to start wsl in the user's home directory: @@ -282,6 +284,8 @@ Ready, set, record! Here's how: keploy record -c "go run main.go handler.go" ``` +On macOS, prefer a built binary over `go run` — run `go build`, then use the binary here and in `keploy test` below: `keploy record -c "./test-app-url-shortener"` ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). + Keep an eye out for the `-c `flag! It's the command charm to run the app. Whether you're using `go run main.go handler.go` or the binary path like `./test-app-url-shortener`, it's your call. If you're seeing logs that resemble the ones below, you're on the right track: @@ -410,7 +414,7 @@ Want to see if everything works as expected? Time to put things to the test 🧪 ```bash -keploy test -c "docker compose up" --container-name "ginMongoApp" --delay 10 +keploy test -c "go run main.go handler.go" --delay 10 ``` > The `--delay` flag? Oh, that's just giving your app a little breather (in seconds) before the test cases come knocking. diff --git a/versioned_docs/version-4.0.0/quickstart/samples-go-sse-svelte.md b/versioned_docs/version-4.0.0/quickstart/samples-go-sse-svelte.md index 033c0efbc1..3cbff3dbe7 100644 --- a/versioned_docs/version-4.0.0/quickstart/samples-go-sse-svelte.md +++ b/versioned_docs/version-4.0.0/quickstart/samples-go-sse-svelte.md @@ -31,7 +31,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -68,6 +68,8 @@ Ways you can run this sample application. ## Installation Setup +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + #### Server ```bash @@ -80,7 +82,7 @@ go mod download Using the docker-compose file we will start our mongodb instance:- ```bash -# Start Postgres +# Start MongoDB docker-compose up mongo ``` @@ -97,9 +99,11 @@ Once we have our applicaiton binary ready, we will start the application with ke ## Capture the test cases ```bash -sudo -E keploy record "./sse-mongo" +sudo -E keploy record -c "./sse-mongo" ``` +`sudo -E` is needed on Linux (and WSL) only — on macOS and Windows, run `keploy record -c "./sse-mongo"` without it (on Windows, use `.\sse-mongo.exe` in place of `./sse-mongo`, here and in `keploy test` below). + ### Start the UI We will capture our test from the UI written in Svelte.js diff --git a/versioned_docs/version-4.0.0/quickstart/samples-java.md b/versioned_docs/version-4.0.0/quickstart/samples-java.md index 4defe77f3c..ee54d06a33 100644 --- a/versioned_docs/version-4.0.0/quickstart/samples-java.md +++ b/versioned_docs/version-4.0.0/quickstart/samples-java.md @@ -36,7 +36,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI with the install script from https://keploy.io/install.sh (on Windows x86-64, keploy.exe from PowerShell: https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). Run the app locally on Linux/WSL; on macOS, or on Windows without WSL, use the Docker steps, since natively there Keploy captures PostgreSQL calls only as raw bytes that usually don't replay.", }, { name: "Clone the sample app", @@ -61,7 +61,7 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t import ProductTier from '@site/src/components/ProductTier'; - + A sample Employee-Manager app to test Keploy integration capabilities using **SpringBoot** and **PostgreSQL**. @@ -88,6 +88,8 @@ mvn clean install -Dmaven.test.skip=true ## Instructions For Starting Using Binary +This section runs the backend on Linux or WSL. On macOS, or on Windows without WSL, use the [Docker steps](#instructions-for-starting-using-docker) instead — natively there, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay. + ### Setup the backend You need to update the postgresql properties, go to @@ -249,7 +251,7 @@ Next we move on to the instructions to start the application using docker. ## Instructions For Starting Using Docker - + A sample Employee-Manager app to test Keploy integration capabilities using SpringBoot and PostgreSQL. diff --git a/versioned_docs/version-4.0.0/quickstart/samples-node-mongo.md b/versioned_docs/version-4.0.0/quickstart/samples-node-mongo.md index 36f1511953..a15285a9e6 100644 --- a/versioned_docs/version-4.0.0/quickstart/samples-node-mongo.md +++ b/versioned_docs/version-4.0.0/quickstart/samples-node-mongo.md @@ -34,7 +34,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -59,12 +59,14 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t A sample **_CRUD_** application to see how Keploy integrates effortlessly with **_Express.js_** and **_MongoDB_**. Get ready to see the power of Keploy 🔅🔅. +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + ## Get Started! 🎬 -Clone the repository and move to crud-API folder +Clone the repository and move to express-mongodb folder ```bash -git clone https://github.com/keploy/samples-typescript && cd samples-typescript/crud-API +git clone https://github.com/keploy/samples-typescript && cd samples-typescript/express-mongodb # Install the dependencies npm install @@ -84,6 +86,8 @@ To begin recording your application's API calls, open your terminal and navigate keploy record -c "npm start" ``` +On macOS, Keploy is dropped by the `npm start` launcher — run the app's entry point directly instead, here and in `keploy test` below: `keploy record -c "node server.js"` ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). + Make API Calls using Hoppscotch, Postman or curl command. Keploy will capture those calls to generate the test-suites containing testcases and data mocks. **1. Give Product details**
@@ -219,7 +223,7 @@ curl: | Want to see it in action? Run the following command to execute your Keploy tests ```bash -keploy test -c "npm run" --delay 10 +keploy test -c "npm start" --delay 10 ``` Great job following along 🥳! Now, let's dive deeper and explore how to do Keploy integration with jest test 📌 diff --git a/versioned_docs/version-4.0.0/quickstart/samples-rust.md b/versioned_docs/version-4.0.0/quickstart/samples-rust.md index 08e3216b47..2dd6046d9e 100644 --- a/versioned_docs/version-4.0.0/quickstart/samples-rust.md +++ b/versioned_docs/version-4.0.0/quickstart/samples-rust.md @@ -27,7 +27,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh; on macOS, install it in a Lima VM, since native macOS and Windows support is tested with Go, Node.js, Python and Java apps.", }, { name: "Clone the sample app", @@ -54,6 +54,8 @@ This is a sample app to test Keploy integration capabilities using rust and Mong ## Running App Locally on Linux/WSL 🐧 +This section runs on Linux or WSL. On macOS, run it inside a [Lima VM](/docs/installation/macos-installation/#option-2-install-keploy-with-lima) — Keploy's native macOS and Windows support is tested with Go, Node.js, Python and Java apps. + ### Clone a sample Rust app 🧪 diff --git a/versioned_docs/version-4.0.0/quickstart/sanic-mongo.md b/versioned_docs/version-4.0.0/quickstart/sanic-mongo.md index b70687250e..064503b466 100644 --- a/versioned_docs/version-4.0.0/quickstart/sanic-mongo.md +++ b/versioned_docs/version-4.0.0/quickstart/sanic-mongo.md @@ -37,7 +37,7 @@ visible={false} steps={[ { name: "Install Keploy", -text: "Install the Keploy CLI on Linux/WSL using the install script from https://keploy.io/install.sh.", +text: "Install the Keploy CLI: on Linux or macOS (Apple Silicon) with the install script from https://keploy.io/install.sh, or on Windows (x86-64) as keploy.exe from PowerShell (https://keploy.io/docs/installation/windows-installation/#option-1-run-keploy-natively). The app runs natively on Linux, macOS and Windows.", }, { name: "Clone the sample app", @@ -62,6 +62,8 @@ text: "Run keploy test -c \"CMD_TO_RUN_APP\" --delay 10 to replay the recorded t This application is a simple movie management API built using Python's Sanic framework and MongoDB for data storage. It allows you to perform basic CRUD (Create, Read, Update, Delete) operations on Movie records. +This runs natively on Linux, macOS (Apple Silicon) and Windows (x86-64) — see [Installing Keploy](/docs/server/installation/). + import Link from '@docusaurus/Link' import InstallReminder from '@site/src/components/InstallReminder'; @@ -101,6 +103,8 @@ Capture the test-cases- keploy record -c "python3 server.py" ``` +On macOS, install the requirements into a virtualenv built on a Homebrew or uv Python and use its interpreter here and in the test step, e.g. `keploy record -c ".venv/bin/python server.py"` — Apple's `/usr/bin/python3` and pyenv shims drop Keploy's instrumentation ([details](/docs/installation/macos-installation/#option-1-run-keploy-natively)). On Windows, use `python server.py` if `python3` isn't on your `PATH`. + You should be able to see this in your terminal Sample Keploy record sanic mongo diff --git a/versioned_docs/version-4.0.0/running-keploy/agent-test-generation.md b/versioned_docs/version-4.0.0/running-keploy/agent-test-generation.md index d88c9ac991..603a7e36f4 100644 --- a/versioned_docs/version-4.0.0/running-keploy/agent-test-generation.md +++ b/versioned_docs/version-4.0.0/running-keploy/agent-test-generation.md @@ -2,7 +2,7 @@ id: agent-test-generation title: Agent-Based API Test Generation sidebar_label: AI Agent Testing -description: Generate API tests using AI coding agents like Claude Code, Cursor, and Antigravity with Keploy Enterprise +description: Generate API tests using AI coding agents like Claude Code, Cursor, and Antigravity with Keploy tags: - AI Agent - Test Generation @@ -15,7 +15,6 @@ keywords: - Claude Code - Cursor - Antigravity - - Keploy Enterprise - API testing - coverage feedback loop --- @@ -26,12 +25,12 @@ import ProductTier from '@site/src/components/ProductTier'; ## Overview -Keploy Enterprise supports agent-based test generation, allowing AI coding assistants (Claude Code, Cursor, Antigravity, GitHub Copilot) to generate and iterate on API tests directly in your IDE. +Keploy supports agent-based test generation (available on the Enterprise plan), allowing AI coding assistants (Claude Code, Cursor, Antigravity, GitHub Copilot) to generate and iterate on API tests directly in your IDE. Instead of switching to a separate web UI, the agent: 1. **Generates test YAML** using the Keploy test format -2. **Runs tests** via Keploy Enterprise with structured JSON output +2. **Runs tests** via the `keploy` CLI with structured JSON output 3. **Reads coverage gaps** from the output and generates targeted tests 4. **Syncs results** to the Keploy platform for team-wide visibility @@ -39,7 +38,7 @@ The Keploy platform automatically builds and refines the API schema over time fr ## Prerequisites -- Keploy Enterprise installed ([installation guide](/docs/keploy-cloud/cloud-installation/)) +- Keploy installed ([installation guide](/docs/server/installation/)) and a Keploy account on the Enterprise plan - A running API server to test against - An OpenAPI spec (optional; the platform generates schema coverage over time) diff --git a/versioned_docs/version-4.0.0/running-keploy/api-testing-chrome-extension.md b/versioned_docs/version-4.0.0/running-keploy/api-testing-chrome-extension.md index 6aff2bfc77..e08b53d50e 100644 --- a/versioned_docs/version-4.0.0/running-keploy/api-testing-chrome-extension.md +++ b/versioned_docs/version-4.0.0/running-keploy/api-testing-chrome-extension.md @@ -7,7 +7,7 @@ description: Learn how to install, record, export, and auto-generate Keploy test import ProductTier from '@site/src/components/ProductTier'; - + Keploy Record Test case diff --git a/versioned_docs/version-4.0.0/running-keploy/api-testing-cicd.md b/versioned_docs/version-4.0.0/running-keploy/api-testing-cicd.md index 4c39abc14c..8cca0f0dea 100644 --- a/versioned_docs/version-4.0.0/running-keploy/api-testing-cicd.md +++ b/versioned_docs/version-4.0.0/running-keploy/api-testing-cicd.md @@ -19,7 +19,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + Keploy makes it super simple to run API tests during your CI/CD pipeline on GitHub. Here’s a step-by-step guide to help you set it up in just a few minutes! @@ -46,7 +46,7 @@ Add the following steps to your `.github/workflows/ci.yml` file: ```yaml - name: Install Keploy CLI run: | - curl --silent -L https://keploy.io/ent/install.sh | bash + curl --silent -O -L https://keploy.io/install.sh && source install.sh ``` ### Run Keploy API Tests diff --git a/versioned_docs/version-4.0.0/running-keploy/cli-commands.md b/versioned_docs/version-4.0.0/running-keploy/cli-commands.md index a193a2a336..83d347a7d5 100755 --- a/versioned_docs/version-4.0.0/running-keploy/cli-commands.md +++ b/versioned_docs/version-4.0.0/running-keploy/cli-commands.md @@ -13,7 +13,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + ### Usage diff --git a/versioned_docs/version-4.0.0/running-keploy/configuration-file.md b/versioned_docs/version-4.0.0/running-keploy/configuration-file.md index 0196e17780..5af0e69972 100644 --- a/versioned_docs/version-4.0.0/running-keploy/configuration-file.md +++ b/versioned_docs/version-4.0.0/running-keploy/configuration-file.md @@ -11,7 +11,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + ## Introduction diff --git a/versioned_docs/version-4.0.0/running-keploy/custom-mocks.md b/versioned_docs/version-4.0.0/running-keploy/custom-mocks.md index 81f02ba428..e68a90697d 100644 --- a/versioned_docs/version-4.0.0/running-keploy/custom-mocks.md +++ b/versioned_docs/version-4.0.0/running-keploy/custom-mocks.md @@ -17,7 +17,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + If you can't run a dependency service and want to mock it, keploy supports adding manually written mocks. diff --git a/versioned_docs/version-4.0.0/running-keploy/docker-tls.md b/versioned_docs/version-4.0.0/running-keploy/docker-tls.md index f36f0a203f..e967a0bba5 100644 --- a/versioned_docs/version-4.0.0/running-keploy/docker-tls.md +++ b/versioned_docs/version-4.0.0/running-keploy/docker-tls.md @@ -15,7 +15,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + ### Recording Testcases and Data Mocks Docker logo diff --git a/versioned_docs/version-4.0.0/running-keploy/generate-api-tests-using-ai.md b/versioned_docs/version-4.0.0/running-keploy/generate-api-tests-using-ai.md index fc18477d07..59c82b33b8 100644 --- a/versioned_docs/version-4.0.0/running-keploy/generate-api-tests-using-ai.md +++ b/versioned_docs/version-4.0.0/running-keploy/generate-api-tests-using-ai.md @@ -7,7 +7,7 @@ description: Learn how to use Keploy’s API Test Generator to generate high-qua import ProductTier from '@site/src/components/ProductTier'; - + This guide will help you generate automated API tests using Keploy's AI-based test engine by providing structured inputs like OpenAPI specs, curl commands, Postman collections, or live endpoints. diff --git a/versioned_docs/version-4.0.0/running-keploy/k8s-proxy-api.md b/versioned_docs/version-4.0.0/running-keploy/k8s-proxy-api.md index 04a5e87aec..25f069d50a 100644 --- a/versioned_docs/version-4.0.0/running-keploy/k8s-proxy-api.md +++ b/versioned_docs/version-4.0.0/running-keploy/k8s-proxy-api.md @@ -2,19 +2,17 @@ id: k8s-proxy-api title: Kubernetes Proxy REST API sidebar_label: Kubernetes Proxy REST API -description: Use the Keploy Kubernetes Proxy REST API to trigger recordings, manage recording and auto-replay configs, stream session status, run replays, and drive the enterprise recording flow programmatically from CI/CD, internal tooling, or AI agents. +description: Use the Keploy Kubernetes Proxy REST API to trigger recordings, manage recording and auto-replay configs, stream session status, run replays, and drive the recording flow programmatically from CI/CD, internal tooling, or AI agents. tags: - kubernetes - k8s proxy - REST API - recording - automation - - enterprise - CI/CD keywords: - k8s proxy - kubernetes proxy - - keploy enterprise - recording API - live recording - auto replay @@ -48,9 +46,9 @@ The same `/record/start`, `/record/stop`, `/test/start`, `/deployments`, and rep --- -## Why the Kubernetes Proxy instead of Keploy Enterprise directly? +## Why the Kubernetes Proxy instead of running Keploy directly? -Running the Keploy enterprise CLI inside a Pod works, but it is a per-app, per-node model: each Deployment you want to record needs its own sidecar plumbing, image rebuild, or pod restart. The Kubernetes Proxy is a single in-cluster control plane that turns _record-and-replay_ into a few API calls, and layers on top of that a set of capabilities you do not get when you run the agent on its own. The benefits below are the reason teams pick the proxy over wiring the CLI in by hand. +Running the `keploy` CLI inside a Pod works, but it is a per-app, per-node model: each Deployment you want to record needs its own sidecar plumbing, image rebuild, or pod restart. The Kubernetes Proxy is a single in-cluster control plane that turns _record-and-replay_ into a few API calls, and layers on top of that a set of capabilities you do not get when you run the agent on its own. The benefits below are the reason teams pick the proxy over wiring the CLI in by hand. ### 1. Auto-replay diff --git a/versioned_docs/version-4.0.0/running-keploy/k8s-proxy-daemonset-architecture.md b/versioned_docs/version-4.0.0/running-keploy/k8s-proxy-daemonset-architecture.md index d8aa0ce3d0..fa1e9843c8 100644 --- a/versioned_docs/version-4.0.0/running-keploy/k8s-proxy-daemonset-architecture.md +++ b/versioned_docs/version-4.0.0/running-keploy/k8s-proxy-daemonset-architecture.md @@ -9,7 +9,6 @@ tags: - daemonset - architecture - auto-replay - - enterprise keywords: - keploy daemonset - eBPF capture @@ -78,7 +77,7 @@ The pieces: 1. **k8s-proxy Deployment.** Same single-replica controller you already run for Sidecar mode. It owns the REST API the Console calls (`/record/start`, `/record/stop`, `/test/start`, etc.), persists captured artifacts to MinIO + MongoDB, and dispatches auto-replay (see Part 2). 2. **`recordingsessions.keploy.io` CRD.** A small Custom Resource the proxy creates at `/record/start`. Each CR is named after the target Deployment and carries a `podSelector`, the list of containers to trace, and the desired mock format. The CRD is the authoritative coordination object between the control plane (k8s-proxy) and the data plane (DaemonSet). Status flows back as a `perNode` array on the CR's `status` subresource. -3. **`keploy-daemonset` DaemonSet.** One Pod per node, running the same enterprise binary you ship for Sidecar mode but in agent-only mode. Each Pod loads its eBPF programs, watches the RecordingSession CR via controller-runtime, and is responsible for capturing traffic from the application Pods that landed on its node. +3. **`keploy-daemonset` DaemonSet.** One Pod per node, running the same `keploy` binary you ship for Sidecar mode but in agent-only mode. Each Pod loads its eBPF programs, watches the RecordingSession CR via controller-runtime, and is responsible for capturing traffic from the application Pods that landed on its node. A `replaysessions.keploy.io` CRD ships alongside RecordingSession but is not used by any current replay environment—it exists so the controller-runtime scheme registers cleanly when a future in-cluster served-replay path is wired up. @@ -124,16 +123,15 @@ keploy-replay-runner ─poll──▶ k8s-proxy /replay-jobs/poll │ │ receives a job: │ { record_id, test_set_ids[], image, env, app_port, ... } + │ downloads test cases + mocks from k8s-proxy via HTTP + │ and stages them on local disk ▼ - docker run (the application container) - docker run keploy/enterprise (the keploy agent, on the same - user-defined Docker network) - │ - │ keploy enterprise replay … --record-id= - │ downloads mocks + test cases from k8s-proxy via HTTP - │ runs the replayer + keploy test --cmd-type docker -c "docker run … " … + │ starts the application container and the keploy + │ agent on the same user-defined Docker network, + │ runs the replayer and writes the reports ▼ - docker rm + both containers removed after the run │ │ POST /replay-jobs/{jobID}/complete ▼ @@ -158,7 +156,7 @@ env: | `--platform-url` | `KEPLOY_PLATFORM_URL` | k8s-proxy's externally reachable URL (the same `ingressUrl` the Console uses). | | `--shared-token` | `KEPLOY_SHARED_TOKEN` | Bearer token. Read from the k8s-proxy `-shared-token` Secret. | | `--runner-id` | `KEPLOY_RUNNER_ID` | Stable identifier for this runner; used for heartbeat + job assignment. | -| `--keploy-bin` | `KEPLOY_BIN` | Path to the `keploy enterprise` binary that drives the replay. | +| `--keploy-bin` | `KEPLOY_BIN` | Path to the `keploy` binary that drives the replay. | | `--work-dir` | `KEPLOY_WORK_DIR` | Scratch directory for downloaded mocks and reports. | | `--cluster-name` | `KEPLOY_CLUSTER_NAME` | Optional. When set, the runner only picks up jobs scoped to this cluster. | diff --git a/versioned_docs/version-4.0.0/running-keploy/keploy-karaf.md b/versioned_docs/version-4.0.0/running-keploy/keploy-karaf.md index 725a068021..a1da46779e 100644 --- a/versioned_docs/version-4.0.0/running-keploy/keploy-karaf.md +++ b/versioned_docs/version-4.0.0/running-keploy/keploy-karaf.md @@ -28,7 +28,7 @@ keywords: Use Keploy's one-click installation to download and install the latest Keploy binary: ```bash -curl --silent -O -L https://keploy.io/ent/install.sh && source install.sh +curl --silent -O -L https://keploy.io/install.sh && source install.sh ``` ### Download Required JARs diff --git a/versioned_docs/version-4.0.0/running-keploy/keploy-templatize.md b/versioned_docs/version-4.0.0/running-keploy/keploy-templatize.md index be6e8cafca..41c754896c 100644 --- a/versioned_docs/version-4.0.0/running-keploy/keploy-templatize.md +++ b/versioned_docs/version-4.0.0/running-keploy/keploy-templatize.md @@ -14,7 +14,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + Sometimes keploy test and keploy rerecord fail because there are fields which are noisy but they are used in requests so when their values change, the subsequent requests also fail. diff --git a/versioned_docs/version-4.0.0/running-keploy/mock-quickstart.md b/versioned_docs/version-4.0.0/running-keploy/mock-quickstart.md index 664ba9f38e..2eab7c96bb 100644 --- a/versioned_docs/version-4.0.0/running-keploy/mock-quickstart.md +++ b/versioned_docs/version-4.0.0/running-keploy/mock-quickstart.md @@ -32,10 +32,15 @@ command shows the **real output** you should see — nothing is faked. - **Linux** (root, for eBPF), **Windows x86-64**, or **macOS (Apple Silicon)**. Windows and macOS intercept in userspace, so neither needs Administrator or - `sudo`. Running your tests through a docker command (shown at the end) works - on every platform. -- Python 3. (`go test` / `npm test` work identically — only the test command - changes.) + `sudo`. On an Intel Mac, use + [Lima](/docs/installation/macos-installation/#option-2-install-keploy-with-lima); + on Windows on ARM, use WSL. Running your tests through a docker command + ([shown at the end](#running-your-tests-in-docker)) works on all three. +- Python 3. On macOS, use a Homebrew or uv Python (or a virtualenv built on + one), not Apple's `/usr/bin/python3`, which macOS won't let Keploy instrument. + (`go test` / `npm test` work identically — only the test command changes. On + macOS, start the test runner itself rather than through `npm test`; see + [running natively on macOS](/docs/installation/macos-installation/#option-1-run-keploy-natively).) ## Step 1 — the sample app @@ -226,9 +231,14 @@ replay: echo $? # -> 1 ``` -## macOS +## Running your tests in Docker -Run your tests through a container and point Keploy at that command: +The sample's dependency is plain HTTP, so every step above runs natively on +Linux, Windows x86-64 and macOS (Apple Silicon). Natively on macOS and Windows, +Keploy understands HTTP/HTTPS, MySQL and MongoDB calls; calls to other services +— PostgreSQL, Redis, Kafka, gRPC and the like — are captured only as raw bytes +and usually don't replay. If your tests depend on one of those, run them through +a container and point Keploy at that command: ```bash keploy mock record -c "docker compose run --rm tests" diff --git a/versioned_docs/version-4.0.0/running-keploy/mock-your-tests.md b/versioned_docs/version-4.0.0/running-keploy/mock-your-tests.md index 1a87037c89..8e44839427 100644 --- a/versioned_docs/version-4.0.0/running-keploy/mock-your-tests.md +++ b/versioned_docs/version-4.0.0/running-keploy/mock-your-tests.md @@ -170,6 +170,17 @@ test.afterEach(({}, testInfo) => post("/agent/scope/end", testInfo.title)); | **Windows** (x86-64) | Native — same command. Userspace interception, so no Administrator. | | **macOS** (Apple Silicon) | Native — same command. Userspace interception, so no `sudo`. Running your tests in a container, e.g. `-c "docker compose run tests"`, also works. | +Natively on macOS and Windows, Keploy understands HTTP/HTTPS, MySQL and MongoDB +calls; calls to other services — PostgreSQL, Redis, Kafka, gRPC and the like — +are captured only as raw bytes and usually don't replay. If your tests depend on +one of those, run them in a container (as above) or on Linux/WSL. On macOS, also +start the test runner itself rather than through a launcher such as `npm test` or +a wrapper script, and use a Homebrew or uv Python (or a virtualenv built on one), +not Apple's `/usr/bin/python3` — see +[running natively on macOS](/docs/installation/macos-installation/#option-1-run-keploy-natively). +On an Intel Mac, use [Lima](/docs/installation/macos-installation/#option-2-install-keploy-with-lima); +on Windows on ARM, use WSL. + ## Refresh in CI Because re-recording overwrites the set in place and the runner's exit code is @@ -182,6 +193,7 @@ keploy sanitize # scrub secrets before committing git add keploy/ && git commit -m "chore: refresh mocks" || echo "no changes" ``` -On Keploy Cloud / Enterprise, `keploy mock` is **registry-first**: the set is -uploaded after record and downloaded before replay automatically. Pass `--local` -to keep everything on disk (the open-source behaviour). +By default `keploy mock` is **registry-first**: the set is uploaded to Keploy +after record and downloaded before replay automatically (registry use depends on +your plan). Pass `--local` to keep everything on disk — the `--local` loop is +also the one that runs without signing in. diff --git a/versioned_docs/version-4.0.0/running-keploy/public-api.md b/versioned_docs/version-4.0.0/running-keploy/public-api.md index cab37b5484..f70aed6b66 100644 --- a/versioned_docs/version-4.0.0/running-keploy/public-api.md +++ b/versioned_docs/version-4.0.0/running-keploy/public-api.md @@ -23,7 +23,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + The Keploy Public API gives you programmatic access to everything you can do in the [Keploy Console](https://app.keploy.io)—create apps, generate and run test suites, track jobs, and manage API keys. It is designed for CI/CD pipelines, custom automation scripts, and AI agents. diff --git a/versioned_docs/version-4.0.0/running-keploy/rename-testcases.md b/versioned_docs/version-4.0.0/running-keploy/rename-testcases.md index af5711709e..e21b319d06 100644 --- a/versioned_docs/version-4.0.0/running-keploy/rename-testcases.md +++ b/versioned_docs/version-4.0.0/running-keploy/rename-testcases.md @@ -15,7 +15,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + ## Rename Test-Cases diff --git a/versioned_docs/version-4.0.0/running-keploy/risk-profile-analysis.md b/versioned_docs/version-4.0.0/running-keploy/risk-profile-analysis.md index f608ea3c41..f2ffa04746 100644 --- a/versioned_docs/version-4.0.0/running-keploy/risk-profile-analysis.md +++ b/versioned_docs/version-4.0.0/running-keploy/risk-profile-analysis.md @@ -20,7 +20,7 @@ keywords: import ProductTier from '@site/src/components/ProductTier'; - + When API contracts change, tests are expected to fail. However, not all failures are equal. A minor, backward-compatible change (like adding a new optional field) is very different from a major, breaking change (like removing a field or changing a data type). diff --git a/versioned_docs/version-4.0.0/running-keploy/run-ai-generated-api-tests.md b/versioned_docs/version-4.0.0/running-keploy/run-ai-generated-api-tests.md index c2938fb2e2..e5d98e245f 100644 --- a/versioned_docs/version-4.0.0/running-keploy/run-ai-generated-api-tests.md +++ b/versioned_docs/version-4.0.0/running-keploy/run-ai-generated-api-tests.md @@ -7,7 +7,7 @@ description: Discover how to execute Keploy’s AI-generated API test suites—l import ProductTier from '@site/src/components/ProductTier'; - + Once you’ve finished curating a suite , it’s time to hit **Run** and see how your API behaves against the latest contract. diff --git a/versioned_docs/version-4.0.0/running-keploy/share-tests.md b/versioned_docs/version-4.0.0/running-keploy/share-tests.md index fd969c77f1..85794e3e60 100644 --- a/versioned_docs/version-4.0.0/running-keploy/share-tests.md +++ b/versioned_docs/version-4.0.0/running-keploy/share-tests.md @@ -7,7 +7,7 @@ description: Learn how to share Keploy API test suites and run reports with team import ProductTier from '@site/src/components/ProductTier'; - + Keploy makes it easy to share any test suite so others can review results or run the tests in their own environments—without copying JSON or clunky exports. diff --git a/versioned_docs/version-4.0.0/server/linux/installation.md b/versioned_docs/version-4.0.0/server/linux/installation.md index 1c20a6b1a6..d3825f48b4 100644 --- a/versioned_docs/version-4.0.0/server/linux/installation.md +++ b/versioned_docs/version-4.0.0/server/linux/installation.md @@ -26,21 +26,20 @@ import HowTo from '@site/src/components/HowTo'; -Keploy can be installed in two ways: +Install Keploy with the [one-click install](#one-click-install-keploy), then use it in one of two ways: -1. [One-Click Install](#one-click-install-keploy). -2. [Manual Install](#manual-install) +1. [Natively in Linux](#linux-native). +2. Through [Using Docker](#using-docker). ## One click install Keploy. @@ -48,34 +47,10 @@ Keploy can be installed in two ways: curl --silent -O -L https://keploy.io/install.sh && source install.sh ``` -## Manual Install - -There are two ways to use Keploy eBPF in linux, you can use either use: - -1. [Natively in Linux](#linux-native). -2. Through [Using Docker](#using-docker). +The installer works on both x86-64 and ARM Linux. ## Linux Native -### Download the Keploy Binary - -```shell -curl --silent --location "https://github.com/keploy/keploy/releases/latest/download/keploy_linux_amd64.tar.gz" | tar xz -C /tmp - -sudo mkdir -p /usr/local/bin && sudo mv /tmp/keploy /usr/local/bin && keploy -``` - -
- ARM Architecture - -```shell -curl --silent --location "https://github.com/keploy/keploy/releases/latest/download/keploy_linux_arm64.tar.gz" | tar xz -C /tmp - -sudo mkdir -p /usr/local/bin && sudo mv /tmp/keploy /usr/local/bin && keploy -``` - -
- #### Run the Record Mode Run this command on your terminal to start the recording of API calls:- diff --git a/versioned_docs/version-4.0.0/server/sdk-installation/go.md b/versioned_docs/version-4.0.0/server/sdk-installation/go.md index f28a56b005..916b907abd 100644 --- a/versioned_docs/version-4.0.0/server/sdk-installation/go.md +++ b/versioned_docs/version-4.0.0/server/sdk-installation/go.md @@ -36,7 +36,7 @@ visible={false} import ProductTier from '@site/src/components/ProductTier'; - + ## 🛠️ Language Specific Requirements diff --git a/versioned_docs/version-4.0.0/server/sdk-installation/java.md b/versioned_docs/version-4.0.0/server/sdk-installation/java.md index 2fdc251afe..9ff74100f5 100644 --- a/versioned_docs/version-4.0.0/server/sdk-installation/java.md +++ b/versioned_docs/version-4.0.0/server/sdk-installation/java.md @@ -2,7 +2,7 @@ id: java title: Java Agent for Dynamic Deduplication sidebar_label: Java -description: "Configure the Keploy Java agent for Enterprise dynamic deduplication with in-process JaCoCo coverage." +description: "Configure the Keploy Java agent for dynamic deduplication with in-process JaCoCo coverage." tags: - java - coverage @@ -35,7 +35,7 @@ import ProductTier from '@site/src/components/ProductTier'; -The Keploy Java SDK is used as a Java agent for Enterprise dynamic deduplication during replay/test mode. It collects per-testcase Java coverage and sends it to Keploy Enterprise so duplicate testcases can be identified. +The Keploy Java SDK is used as a Java agent for dynamic deduplication (available on the Enterprise plan) during replay/test mode. It collects per-testcase Java coverage and sends it to Keploy so duplicate testcases can be identified. The Java agent does not record API traffic or mock dependencies. Record your Keploy tests separately, commit the generated test fixtures when you use them in CI, and run Java dedup during `keploy test --dedup`. @@ -46,7 +46,7 @@ Because the SDK is a Java agent, it is framework-agnostic. It can be attached to - Java 8, 17, or 21 - `io.keploy:keploy-sdk` `2.0.6` (or newer with Java-agent support) - JaCoCo runtime agent (tested with `0.8.12`) -- Keploy Enterprise with dynamic deduplication enabled +- Keploy, signed in to an account on the Enterprise plan, with dynamic deduplication enabled ## Copy the Keploy SDK and JaCoCo Agents diff --git a/versioned_docs/version-4.0.0/server/sdk-installation/javascript.md b/versioned_docs/version-4.0.0/server/sdk-installation/javascript.md index 8149b7f27d..914fbdb06b 100644 --- a/versioned_docs/version-4.0.0/server/sdk-installation/javascript.md +++ b/versioned_docs/version-4.0.0/server/sdk-installation/javascript.md @@ -39,7 +39,7 @@ visible={false} import ProductTier from '@site/src/components/ProductTier'; - + ## 🛠️ Language Specific Requirements diff --git a/versioned_docs/version-4.0.0/server/sdk-installation/python.md b/versioned_docs/version-4.0.0/server/sdk-installation/python.md index 21e16de857..90818a2490 100644 --- a/versioned_docs/version-4.0.0/server/sdk-installation/python.md +++ b/versioned_docs/version-4.0.0/server/sdk-installation/python.md @@ -34,7 +34,7 @@ visible={false} import ProductTier from '@site/src/components/ProductTier'; - + | Programming Language | Prerequisites | | :------------------: | :------------------------------------------------------------------------ | diff --git a/versioned_sidebars/version-4.0.0-sidebars.json b/versioned_sidebars/version-4.0.0-sidebars.json index c33c2e3b41..31569c7be9 100644 --- a/versioned_sidebars/version-4.0.0-sidebars.json +++ b/versioned_sidebars/version-4.0.0-sidebars.json @@ -32,7 +32,7 @@ }, { "type": "doc", - "label": "Enterprise", + "label": "Enterprise Plan", "id": "keploy-cloud/cloud-installation" }, {