Skip to main content

🎍 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! 🚀

Metadata

Release files for bambo 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bambo 2.0.0
File Size Uploaded
bambo-2.0.0.tar.gz 6.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bambo 2.0.0
File Interpreter ABI Platform
bambo-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.8 kB

Release files / bambo-2.0.0.tar.gz

Download URL bambo-2.0.0.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
461ece460e13dd24c30d6e1743731261a6422eaea6ce0f07e5e53904ae85f267
BLAKE2b-256 checksum
How to use checksums
c1ebf3cc16ae936a7c8056f9a5c6fe00baaacce65745fa8f4aca257035f479c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.0 CPython/3.10.0 Linux/6.5.0-14-generic

Release files / bambo-2.0.0-py3-none-any.whl

Download URL bambo-2.0.0-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
64a89b1940ba1567a963d0de05f498d17dcf38702af0c68486bdc447c6d31eb8
BLAKE2b-256 checksum
How to use checksums
4c578c188d8c10c2e68bf811539b73b87c842cb1de037cd5fd3f64a0c4e93766
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.0 CPython/3.10.0 Linux/6.5.0-14-generic

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page