Skip to content

Commit

Permalink
feat: Add new glossary term for "Microservice Testing"
Browse files Browse the repository at this point in the history
Signed-off-by: Abhishek kushwaha <[email protected]>
  • Loading branch information
Abbhiishek committed Aug 9, 2024
1 parent b272843 commit 56bf548
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 10 deletions.
27 changes: 17 additions & 10 deletions src/pages/concepts/reference/glossary.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, {useEffect, useState} from "react";
import React, { useState } from "react";
import Layout from "@theme/Layout";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";

Expand Down Expand Up @@ -55,6 +55,10 @@ function Glossary() {
name: "End To End Testing",
link: "/docs/concepts/reference/glossary/end-to-end-testing",
},
{
name: "Error Guessing",
link: "/docs/concepts/reference/glossary/error-guessing",
},
],
F: [
{
Expand Down Expand Up @@ -87,6 +91,10 @@ function Glossary() {
name: "Mocks",
link: "/docs/concepts/reference/glossary/mocks",
},
{
name: "Microservice Testing",
link: "/docs/concepts/reference/glossary/microservice-testing",
},
],
R: [
{
Expand Down Expand Up @@ -131,7 +139,7 @@ function Glossary() {
},
],
};
const {siteConfig, siteMetadata} = useDocusaurusContext;
const { siteConfig, siteMetadata } = useDocusaurusContext;
const handleClick = (index) => {
setState((state) => {
var obj = {
Expand All @@ -153,13 +161,12 @@ function Glossary() {
{new Array(26).fill(0).map((x, i) => (
<button
className={`col-span-1 gap-2 rounded-sm p-3
${
state[String.fromCharCode(65 + i)]
? "text-black-200 rounded-3xl bg-orange-200 font-bold shadow-md hover:text-orange-950"
: entries[String.fromCharCode(65 + i)] === undefined
? "bg-transparent text-gray-400" // Modified color class
: "bg-grey-200 rounded-3xl shadow-md"
} `}
${state[String.fromCharCode(65 + i)]
? "text-black-200 rounded-3xl bg-orange-200 font-bold shadow-md hover:text-orange-950"
: entries[String.fromCharCode(65 + i)] === undefined
? "bg-transparent text-gray-400" // Modified color class
: "bg-grey-200 rounded-3xl shadow-md"
} `}
key={i}
disabled={
entries[String.fromCharCode(65 + i)] === undefined
Expand All @@ -179,7 +186,7 @@ function Glossary() {
<div key={key}>{value ? key : ""}</div>
{value ? (
<div className="text-l flex grid justify-around">
{entries[key]?.map(({name, link}, i) => (
{entries[key]?.map(({ name, link }, i) => (
<a
className="text-orange-600 hover:text-orange-950 hover:underline"
key={i}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
id: microservice-testing
title: Microservice Testing with Keploy
sidebar_label: Microservice Testing
description: This glossary has an explanation of all the terminologies that beginners find difficult to understand at first glance.
tags:
- explanation
- glossary
keywords:
- API
---

### What is Microservices Testing?

Microservice testing is the process of validating individual components of a microservices architecture to ensure they function correctly both in isolation and as part of the larger system. Unlike monolithic applications, microservices present unique challenges in testing due to their distributed nature and complex interactions.


### Benefits of Microservices Testing:
- **Improved fault isolation**: Testing individual services allows for easier identification and resolution of issues.
- **Faster deployment cycles**: Independent testing of services enables faster release cycles.
- **Enhanced scalability**: Testing services in isolation helps identify bottlenecks and optimize performance.
- **Easier maintenance and updates**: Testing microservices independently reduces the risk of regressions.
- **Better support for continuous integration and delivery (CI/CD)** : Microservices testing enables automated testing and deployment pipelines.


### Challenges in Microservices Testing:

- **Complex service dependencies** :
- Microservices often rely on other services, databases, or third-party APIs, making it challenging to test in isolation.

- **Difficulty in replicating production environments**
- Testing microservices in a production-like environment can be complex and resource-intensive.
- **Increased network latency and failures**
- Inter-service communication can introduce latency and failures, making testing more challenging.
- **Data consistency across services**
- Ensuring data consistency and integrity across multiple services can be difficult.
- **Managing test data for multiple services**
- Creating and managing test data for multiple services can be time-consuming and error-prone.


### Overcoming Challenges with Keploy

Keploy is an innovative testing tool designed to address many of the challenges associated with microservices testing. Here's how it helps:
<img src="https://keploy.io/docs/gif/record-replay.gif?raw=true"/>
<br/>
- **Automated Test Case Generation**: Keploy can generate test cases by recording your application's network calls. This automation significantly reduces the time and effort required to create comprehensive test suites.
- **Dependency Mocking**: Keploy automatically generates dependency mocks based on recorded network interactions. This feature allows for faster and more efficient testing compared to traditional unit tests.
- **Realistic Testing Environment**: With its built-in proxy setup, Keploy records system calls between services, creating a more accurate representation of the production environment in your tests.
- **Efficient Integration Testing**: By capturing and replaying inter-service communications, Keploy enables more effective integration testing without the need to set up complex environments.
- **Reduced Test Maintenance**: As Keploy generates tests based on actual system behavior, it helps keep tests up-to-date with changes in the microservices, reducing the maintenance burden.
- **Performance Testing**: The recorded interactions can be used to simulate realistic load scenarios, aiding in performance testing of microservices.


By leveraging Keploy's capabilities, development teams can overcome many of the traditional challenges associated with microservices testing, leading to more robust and reliable distributed systems.

0 comments on commit 56bf548

Please sign in to comment.