Skip to main content

A lightweight and efficient tool for performing load testing on your HTTP and HTTPS services.

Project description

:bamboo: Bamboo - HTTP(S) Load Tester

Welcome to Bamboo, a lightweight and efficient tool for performing load testing on your HTTP and HTTPS services. This Python-based command line utility assists in bombarding your web applications with requests, helping you gauge performance under stress.

Features

  • Custom number of requests
  • Concurrent connections support
  • Multiple URLs testing through file input
  • Custom HTTP methods (GET, POST, PUT, DELETE, etc.)
  • Data payload support for testing APIs
  • Custom headers for each request
  • Optional SSL certificate verification
  • Detailed summary report using PrettyTable
  • Ability to set timeouts for requests
  • Ability to set delay between request
  • Monitors a list of websites too just like FreshPing

Direct Installation (Pypi)

You can install Bambo directly from PyPI:

pip install bambo

Usage as a Library

# example.py
from bambo import HTTPLoadTester
tester = HTTPLoadTester(['http://example.com'], 5, 2)

# Start the test.
tester.run()
results = tester.results
print(results)

Usage: bambo <--parameters>

bambo -u "https://example.com"

Find more details about the package here: Bambo on PyPI

Requirements

  • Python 3.10 or higher
  • Poetry (can be installed via curl)
  • An internet connection

To install Poetry, run the following command in your terminal:

curl -sSL https://install.python-poetry.org | python3 -

Source Installation

Before running the tool, ensure you have Python installed on your system. You can then install the required packages using poetry:

poetry install
poetry shell

Usage

To use Bamboo, simply invoke the script from the command line with the desired options.

python bambo/cli.py < --parameters >

Basic Example

Test a single URL with the default number of requests (5):

python bambo/cli.py -u "https://example.com"

or

bambo -u "https://example.com"

With Custom Number of Requests

Specify the number of requests to send:

python bambo/cli.py -u "https://example.com" -n 100

Concurrent Requests

Set the number of concurrent requests:

python bambo/cli.py -u "https://example.com" -n 100 -c 10

Testing Multiple URLs from File

You can test multiple URLs by providing a file (one URL per line):

python bambo/cli.py -f urls.txt

Setting Custom Headers

Include custom headers with each request:

python bambo/cli.py -u "https://example.com" --headers "Authorization:Bearer YOUR_TOKEN" "Content-Type:application/json"

Using Different HTTP Methods and Data Payload

Use different HTTP methods and send data:

python bambo/cli.py -u "https://api.example.com/data" -m POST --data '{"key":"value"}'

Debugging

Enable debug output to get more details:

python bambo/cli.py -u "https://example.com" --debug

Monitoring

Enable site monitoring to check website health:

python bambo/cli.py -u "https://example.com" --monitor

Parameters Details

Here's a list of all parameters you can use:

Parameter Description
-u, --url URL to test (required if no file is provided)
-f, --file File containing URLs to test (required if no URL is provided)
-n, --num-requests Number of requests to make (default is 5)
-c, --num-concurrent Number of concurrent requests (default is 1)
-d, --delay Delay between requests in seconds
-t, --timeout Timeout for each requests in seconds
-m, --method HTTP method to use (default is GET)
--data Data to send with the request
--headers Custom HTTP headers to set, format: key:value
--no-verify Disable SSL certificate verification
--debug Enable DEBUG mode
--monitor Enable website monitoring

Contribution

Feel free to fork this repository and contribute to the development of Bamboo! If you find bugs or would like to suggest features, please create an issue in the repository.

License

Bamboo is released under the MIT License. Check out the LICENSE file for more information.

Enjoy testing your applications with Bamboo! 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bambo-2.0.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bambo-2.0.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file bambo-2.0.0.tar.gz.

File metadata

  • Download URL: bambo-2.0.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.10.0 Linux/6.5.0-14-generic

File hashes

Hashes for bambo-2.0.0.tar.gz
Algorithm Hash digest
SHA256 461ece460e13dd24c30d6e1743731261a6422eaea6ce0f07e5e53904ae85f267
MD5 4a145d42e759fd50f11f196eb38024a3
BLAKE2b-256 c1ebf3cc16ae936a7c8056f9a5c6fe00baaacce65745fa8f4aca257035f479c9

See more details on using hashes here.

File details

Details for the file bambo-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: bambo-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.10.0 Linux/6.5.0-14-generic

File hashes

Hashes for bambo-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64a89b1940ba1567a963d0de05f498d17dcf38702af0c68486bdc447c6d31eb8
MD5 42dd57f21360de6dc6b8d27ee229a9c5
BLAKE2b-256 4c578c188d8c10c2e68bf811539b73b87c842cb1de037cd5fd3f64a0c4e93766

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page