Skip to content

A distributed load-testing system leveraging Kafka as the communication infrastructure to orchestrate concurrent, high-throughput load tests on web servers

License

Notifications You must be signed in to change notification settings

ankush-003/distributed-load-testing

Repository files navigation

Distributed Load Testing System

An orchestrated load-testing system designed to coordinate multiple driver nodes for executing highly concurrent, high-throughput load tests on a web server. This system employs Kafka as the underlying communication service.

Architecture

Architecture

  • The orchestrator node and driver node are implemented as separate processes
  • The Orchestrator node and the Driver node communicate via Kafka

Installing Go & Kafka

Head over to the Installation Files and execute the following commands to install Go and Kafka

sudo chmod a+x *.sh
source go.sh
source kafka.sh

Setting up Fastapi Dashboard

pip install fastapi[all] httpx
python3 app.py

Running Driver & Orchestrator

install all dependencies

go get .

run test server

go build httpServer.go
./httpServer

build and run orchestrator

go build Orchestra.go
./Orchestra

build and run driver node (on multiple terminals as different processes

go build driverNode.go
./driverNode

Features to be implemented

  • Metrics Dashboard
  • Persistent Driver Nodes
  • Containerisation using Docker

Screenshots

Screenshot from 2023-11-22 15-58-35 Screenshot from 2023-11-22 15-57-58

Screenshot from 2023-11-22 15-58-11

About

A distributed load-testing system leveraging Kafka as the communication infrastructure to orchestrate concurrent, high-throughput load tests on web servers

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published