Skip to content

Commit

Permalink
docs: change intro page keploy and it's features
Browse files Browse the repository at this point in the history
Signed-off-by: Neha Gupta <[email protected]>
  • Loading branch information
nehagup committed Sep 19, 2023
1 parent d7b377f commit 8947bdd
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 46 deletions.
13 changes: 6 additions & 7 deletions src/components/QuickStart.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,13 @@ export const QuickStart = () => {
What is Keploy? 🤔
</h2>
<p className="max-w-4xl text-l">
Keploy is your open-source, developer-centric E2E testing tool. It makes
regression testing easy and productive for engineering teams. Plus, it's
free and highly extensible.🛠️
Keploy is your open-source, developer-centric backend testing tool. It makes
backend testing easy and productive for engineering teams. Plus, it's
easy-to-use, powerful and extensible..🛠️
</p>
<p className="max-w-4xl text-l mt-4">
Keploy creates test cases and generates data mocks/stubs by recording
API calls and DB queries, significantly speeding up releases and
enhancing reliability. 📈
Keploy creates test cases and data mocks/stubs from user-traffic by recording
API calls and DB queries, significantly speeding up releases and enhancing reliability. 📈
</p>

<h2 className="mt-8 text-2xl md:text-3xl font-semibold tracking-wide">
Expand Down Expand Up @@ -65,7 +64,7 @@ export const QuickStart = () => {
<p className="text-lg font-semibold">MacOS</p>
</Link>
</div>
<p className=" text-l mt-6">
<p className=" text-l mt-6 text-gray-500">
⚠️ Please note that Keploy v2 is currently in development, with the best
experience on Linux. Docker support is experimental and may have some
limitations for certain use cases.
Expand Down
70 changes: 47 additions & 23 deletions versioned_docs/version-2.0.0/concepts/what-are-keploy-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,53 +5,77 @@ sidebar_label: Keploy Features
description: Keploy platform automatically mocks application dependencies and safely replay writes. It does accurate noise detection and statistical de-duplication.
tags:
- explanation
- keploy features
- features
- record replay test
- mock mutations
keywords:
- test cases
- data dumps
- keploy features
- features
- record replay test
- mock mutations
---

### 1. Convert API calls from anywhere to Test-Case
To kick things off, let's dive into the fundamentals:

Keploy captures all the API calls and subsequent network traffic served by the application. You can use any existing API management tools like [Postman](https://www.postman.com/), [Hoppscotch](https://hoppscotch.io/), [Curl](https://curl.se/) to generate test-case.
## 📽️ Record-Replay Complex API Flows

<img src="/img/record-api.gif?raw=true" width="80%" alt="API Tools"/>
#### Turn API Calls into Test-Cases and Mocks

With Keploy, you can effortlessly record and replay intricate, distributed API flows as mocks and stubs. It's like having a time machine for your tests! ⏳

### 2. Automatically mock Mutations
Keploy will record all API calls and their subsequent network traffic served by the application. You can utilize your favorite API management tools like [Postman](https://www.postman.com/), [Hoppscotch](https://hoppscotch.io/), or even [Curl](https://curl.se/) to generate test cases.

Keploy automatically [mocks](/concepts/general-glossary.md#1-api-data-mocking) network/external dependencies for **all CRUD operations** with correct responses.

Data dumps, stubs or mocks for dependencies like DBs, internal services, or third party services like twilio, shopify or stripe are **not required**.
<img src="/gif/record-replay.gif?raw=true" width="80%" alt="API Tools"/>


Once recorded, you have the flexibility to replay and simulate the same flow with mutations/write calls locally or within your CI environment without needing to connect to external services/dependencies.

No more data dumps, stubs, or mocks for dependencies like DBs, internal services, or third-party services like twilio, shopify, or stripe are required anymore. 💡

<img src="/img/mock-dependencies.png?raw=true" width="50%" alt="Mock Application Dependencies"/>

Please check list of currently supported dependencies in [Go, Java and Node](https://keploy.io/#integrations).

Keploy can safely replay writes or mutations by capturing from local or other environments and replaying without API chaining.
[Idempotency](/concepts/general-glossary.md#2-idempotency) guarantees are also **not required** in the application. Multiple Reads after write operations can be replicated automatically too. 🔄

<img src="/gif/record-replay.gif?raw=true" width="80%" alt="API Tools"/>

[Idempotency](/concepts/general-glossary.md#2-idempotency) guarantees are also **not required** in the application. Multiple Reads after write operations can be replicated automatically too.
<img src="/img/record-api.gif?raw=true" width="80%" alt="API Tools"/>

### 3. Accurate Noise Detection
## 🧩 Combined Test Coverage:

Keploy identifies [noisy fields](/concepts/general-glossary.md#3-noisy-field) in the responses accurately like (timestamps, random values) to ensure high quality tests.
#### Run Tests with Mocks Anywhere You Like

As the application serves the API, Keploy re-run that API request with the captured dependency mocks.
Keploy has [native integrations](/concepts/general-glossary.md#4-interoperability) with your unit-testing libraries like `go-test`, `jUnit`, `jest`, `pyTest`.
Keploy gives combined test-coverage and can also be integrated in
existing CI pipelines easily within `go-test`, `jUnit`, `jest`, `pyTest` workflows.

[//]: # '<img src="/img/noise-filtration.png?raw=true" alt="Keploy noise filtration"/>'
<img src="/gif/replay-tc.gif?raw=true" alt="Keploy Integration with Testing Libraries" width="80%"/>

Run tests with mocks anywhere you like—**locally on the CLI**, in your **CI pipeline**, or even across a **Kubernetes cluster**. It's testing wherever you want it! 🌍

## ♻️ Multi-Purpose Mocks
#### Re-Use Mocks for Testing Servers

Keploy generated dependency mocks can also be used as test case for the server. These tests can be used for use-cases like chaos testing, e2e testing, integration testing, api and regression testing. 🌟

## 🌐 Code-less EBPF Instrumentation
#### Network Layer Integration makes it Light-Weight

Keploy then compares if the responses of the API requests disagree with each other.
If any of the fields of the API responses are different they are marked as random/non-deterministic fields.
Keploy uses EBPF like a secret sauce to make integration code-less, language agnostic, and oh-so-lightweight. 🍲

### 4. Native interoperability

Keploy has [native integrations](/concepts/general-glossary.md#4-interoperability) with popular testing libraries like `go-test`, `jUnit`, `jest`.
Code coverage will be reported with existing and Keploy recorded test cases and can also be integrated in
existing CI pipelines easily.
## 🔍 Accurate Noise Detection
#### Eliminates random fields for Assertion

<img src="/gif/replay-tc.gif?raw=true" alt="Keploy Integration with Testing Libraries"/>
Keploy identifies [noisy fields](/concepts/general-glossary.md#3-noisy-field) in the responses accurately like (timestamps, random values) to ensure high quality tests.

As the application serves the API, Keploy re-run that API request with the captured dependency mocks.

[//]: # '<img src="/img/noise-filtration.png?raw=true" alt="Keploy noise filtration"/>'

### 5. Easy Integration Framework for new Libraries
Keploy identifies differences in API responses, marking them as random/noisy fields. 🧐✅

Keploy has Instrumentation/Integration framework to easily add the new libraries/drivers within ~100 lines of code.
Please check-out the [contribution guide](/docs/devtools/sdk-contrib-guide).
28 changes: 15 additions & 13 deletions versioned_docs/version-2.0.0/concepts/what-is-keploy.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
---
id: what-is-keploy
title: What is Keploy?
sidebar_label: What is Keploy?
description: Keploy is e2e testing toolkit for developers that generates tests from API calls.
sidebar_label: Introduction to Keploy
description: Keploy is open source backend testing toolkit that creates tests and mocks faster than unit tests, from user-traffic.
tags:
- explanation
- introduction
- features
- what is keploy
keywords:
- Junit
- PyTest
- GoTest
- Jest
- Backend Testing
- Open Source
- API Tests
- AI Generated Tests
---

Keploy is functional testing toolkit for developers.
It **generates E2E tests for APIs (KTests)** along with **mocks or stubs(KMocks)** by
recording real API calls.
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.

KTests can be imported as mocks for consumers and vice-versa.

![Test Case Generation](/gif/record-tc.gif)

Merge KTests with unit testing libraries(like Go-Test, JUnit..) to **track combined test-coverage**.

KMocks can also be referenced in existing tests or use anywhere (including any testing framework).
KMocks can also be used as tests for the server.
<img src="/gif/record-tc.gif" alt="Test Case Generator" width="80%" height="150" />
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
---
id: introduction
title: Introduction to Keploy
title: "What is Keploy?"
sidebar_label: Introduction
---

import WhatIsKeploy from '../concepts/what-is-keploy.md'

<WhatIsKeploy/>

## Keploy Features

import WhatAreKeployFeatures from '../concepts/what-are-keploy-features.md'

<WhatAreKeployFeatures/>

0 comments on commit 8947bdd

Please sign in to comment.