Giter Site home page Giter Site logo

aerowisca / keploy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from keploy/keploy

0.0 0.0 0.0 63.16 MB

Testing for Developers. Toolkit that creates test-cases and data mocks from API calls, DB queries, etc.

Home Page: https://keploy.io

License: Apache License 2.0

Go 98.48% Dockerfile 0.17% Shell 1.36%

keploy's Introduction

keploy logo

⚡️ Backend tests faster than unit tests, from user traffic ⚡️

🌟 The must-have tool for developers in the AI-Gen era 🌟


🎤 Introducing Keploy 🐰

Keploy is a developer-centric backend testing tool. It makes backend tests with built-in-mocks, faster than unit tests, from user traffic, making it easy to use, powerful, and extensible. 🛠

Ready for the magic? Here are Keploy's core features:

  • ♻️ Combined Test Coverage: Merge your Keploy Tests with your fave testing libraries(JUnit, go-test, py-test, jest) to see a combined test coverage.

  • 🤖 EBPF Instrumentation: Keploy uses EBPF like a secret sauce to make integration code-less, language-agnostic, and oh-so-lightweight.

Convert API calls to test cases

  • 🌐 CI/CD Integration: 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: Use 'em in existing tests, as server tests, or just to impress your friends!

  • 📽️ Record-Replay Complex Flows: Keploy can record and replay complex, distributed API flows as mocks and stubs. It's like having a time machine for your tests—saving you tons of time!

Record Replay Testing

🐰 Fun fact: Keploy uses itself for testing! Check out our swanky coverage badge: Coverage Status  

🌐 Language Support

From Go's gopher 🐹 to Python's snake 🐍, we support:

Go Java NodeJS Python Rust C#

🎩 How's the Magic Happen?

Our magical 🧙‍♂️ Keploy proxy captures and replays ALL(CRUD operations, including non-idempotent APIs) of your app's network interactions.

Take a journey to How Keploy Works? to discover the tricks behind the curtain!

📘 Get Schooled!

Become a Keploy pro with our Documentation.

🛠️ Platform-Specific Requirements for Keploy

Below is a table summarizing the tools needed for both native and Docker installations of Keploy on MacOS, Windows, and Linux:

Operating System Without Docker Docker Installation Prerequisites
MacOS MacOS Not Supported Supported Docker Desktop version must be 4.25.2 or above
Windows Windows Supported Supported - Use WSL wsl --install
- Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11
Linux Linux Supported Supported Linux kernel 5.15 or higher

On MacOS and Windows, additional tools are required for Keploy due to the lack of native eBPF support.

🚀 Quick Installation

To get started let's set Keploy alias by running.

curl -O https://raw.githubusercontent.com/keploy/keploy/main/keploy.sh && source keploy.sh

Capturing Testcases

To initiate the recording of API calls, execute this command in your terminal:

keploy record -c "CMD_TO_RUN_APP" 

For example, if you're using a simple Golang program, the CMD_TO_RUN_APP would resemble:

keploy record -c "go run main.go"

Running Testcases

To run the testcases and generate a test coverage report, use this terminal command:

keploy test -c "CMD_TO_RUN_APP" --delay 10

🤔 Questions?

Reach out to us. We're here to help!

Slack LinkedIn YouTube Twitter

If You Had Fun: Please leave a 🌟 star on this repo! It's free, and you'll bring a smile. 😄 👏

💖 Let's Build Together!

Whether you're a newbie coder or a wizard 🧙‍♀️, your perspective is golden. Take a peek at our:

📜 Contribution Guidelines

❤️ Code of Conduct

🐲 The Challenges We Face!

  • Unit Testing: While Keploy is designed to run alongside unit testing frameworks (Go test, JUnit..) and can add to the overall code coverage, it still generates integration tests.
  • Production Lands: Keploy is currently focused on generating tests for developers. These tests can be captured from any environment, but we have not tested it on high volume production environments. This would need robust deduplication to avoid too many redundant tests being captured. We do have ideas on building a robust deduplication system #27

✨ Resources!

🤔 FAQs

🕵️‍️ Why Keploy

⚙️ Installation Guide

📖 Contribution Guide

keploy's People

Contributors

slayerjain avatar re-tick avatar pranshusrivastava avatar gouravkrosx avatar charankamarapu avatar shivamsouravjha avatar sarthak160 avatar akashkumar7902 avatar sonichigo avatar nehagup avatar erakin575 avatar officialasishkumar avatar ayush7614 avatar hermione2408 avatar ditsuke avatar akash-singh04 avatar tomargovind avatar ananupam avatar yaxhveer avatar aerowisca avatar seipan avatar pradhyuman-sharma avatar madhavsikka avatar edwinwalela avatar ahmedlotfy02 avatar burntcarrot avatar michaelgrigoryan25 avatar khanjasir90 avatar pankhudib avatar petergeorgas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.