Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: change intro page keploy and it's features #211

Merged
merged 2 commits into from
Sep 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/components/QuickStart.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ 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 +65,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
68 changes: 45 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,75 @@ 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).
[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. 🔄

Keploy can safely replay writes or mutations by capturing from local or other environments and replaying without API chaining.
<img src="/img/record-api.gif?raw=true" width="80%" alt="API Tools"/>

<img src="/gif/record-replay.gif?raw=true" width="80%" alt="API Tools"/>
## 🧩 Combined Test Coverage:

[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.
#### Run Tests with Mocks Anywhere You Like

### 3. Accurate Noise Detection
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.

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

As the application serves the API, Keploy re-run that API request with the captured dependency mocks.
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! 🌍

[//]: # '<img src="/img/noise-filtration.png?raw=true" alt="Keploy noise filtration"/>'
## ♻️ 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. 🌟

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.
## 🌐 Code-less EBPF Instrumentation

### 4. Native interoperability
#### Network Layer Integration makes it Light-Weight

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.
Keploy uses EBPF like a secret sauce to make integration code-less, language agnostic, and oh-so-lightweight. 🍲

<img src="/gif/replay-tc.gif?raw=true" alt="Keploy Integration with Testing Libraries"/>
## 🔍 Accurate Noise Detection

### 5. Easy Integration Framework for new Libraries
#### Eliminates random fields for Assertion

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"/>'

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).
Keploy identifies differences in API responses, marking them as random/noisy fields. 🧐✅
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/>
Loading