Skip to main content

Bombards target server with simultaneous requests

Project description

Made with Python Latest release Pip upload Latest release MIT license Documentation Status

Bombard is a tool for stress test and benchmarking your HTTP server. Especially it’s good to simulate a heavy load and initial burst of simultaneous HTTP requests with complex logic.

It is designed to be extremely simple yet powerful tool to load test functional behavior.

Thanks to optional Python inlines you can fast and easy describe complex logic for the tests.

Test report shows you how many requests per second your server is capable of serving and with what latency.

Installation

pip install bombard --upgrade

After that use bombard (bombard.exe in Windows) executable:

bombard --help

Requests description

Requests can be just URL or contain JSON described like this

supply:  # you can redefine variables from command line (--supply host=http://localhost/)
  host: https://jsonplaceholder.typicode.com/

getToken:
    url: "{host}auth"  # use custom {host} variable to stay DRY
    method: POST
    body:  # below is JSON object for request body
        email: name@example.com
        password: admin
    extract:  # get token for next requests
        token:

In first request you can get security token as in example above.

And use it in next requests:

postsList:
   url: "{host}posts"
   headers:
       Authorization: "Bearer {token}"  # we get {token} in 1st request
   script: |
       for post in resp[:3]:  # for 1st three posts from response
           # schedule getPost request (from ammo section)
           # and provide it with id we got from the response
           reload(ammo.getPost, id=post['id'])

Included examples. To list examples

bombard --examples

Command line

From command line you can change number of threads, loop count, supply vars, customize report and so on.

Also you can bootstrap your own bombard.yaml file from any example you like:

bombard --init --example simple

Report

Example of report for the command:

bombard --example simple --repeat 2 --threshold 100
https://github.com/andgineer/bombard/blob/master/docs/_static/simple_stdout.png?raw=true

Documentation

Bombard documentation

Translation managed with Transifex

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

bombard-1.20.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

bombard-1.20-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file bombard-1.20.tar.gz.

File metadata

  • Download URL: bombard-1.20.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for bombard-1.20.tar.gz
Algorithm Hash digest
SHA256 9c0fc5a05608c9b6f93c75b0414107d91e9f41f23c46673a51fdba9d315d4f53
MD5 e63d80cf156eeda72a9afa76a6883bf8
BLAKE2b-256 f154217b3694d2a06c5e462b3205649ad5539cacfb12d643469efc5d59cf7bf4

See more details on using hashes here.

File details

Details for the file bombard-1.20-py3-none-any.whl.

File metadata

  • Download URL: bombard-1.20-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for bombard-1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 20adb1011bb31391d3055f0be70b76b45445f554f8dc5374ce34c9e3c3b085cd
MD5 24fb78c999f6dd32321a73e8c99d9906
BLAKE2b-256 2df021ab61e1d3b2004b28068e6d70b569546d6219ac0167095c2c7ce5da067a

See more details on using hashes here.

Supported by

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