Skip to main content

CircleCI

bloodaxe logo

bloodaxe is the nice way to testing and metrifying api flows.

GIF demo

Usage

Usage: bloodaxe.py [OPTIONS] CONFIG_FILE

Options:
  --install-completion  Install completion for the current shell.
  --show-completion     Show completion for the current shell, to copy it or
                        customize the installation.

  --help                Show this message and exit.

$ bloodaxe example.toml

Installation Options

Install with pip

$ pip install bloodaxe

$ bloodaxe

Flow configuration examples

[configs]
number_of_concurrent_flows = 10 # Number of concurrent coroutines flows
duration = 60 # Stressing duration

[[api]] # Api context
name = "user_api"
base_url = "http://127.0.0.1:8080" # Base url at the moment, is the unique parameter in api section.
[api.envvars] # Environment variables for given api
client_id = "CLIENT_ID" # Envvars names
client_secret = "CLIENT_SECRET"

[[api]]
name = "any_api"
base_url = "http://127.0.0.1:1010"

[[request]] # Request context
name = "get_token" 
url = "{{ user_api.base_url }}/token/" # Use user_api context to get the base_url
method = "POST"
timeout = 60 # The bloodaxe default timeout value is 10 secs, but it's possible override the default value
save_result = true # Save request result in request name context, default value is false
[request.data] # Request data section
client_id = "{{ user_api.client_id }}" # templating syntax is allowed in request.data
client_secret = "{{ user_api.client_secret }}"
[request.headers] # Request header section
Content-Type = 'application/x-www-form-urlencoded'

[[request]]
name = "get_user"
url = "{{ user_api.base_url }}/users/1"
method = "GET"
timeout = 60
save_result = true
[request.headers]
Authorization = "{{ get_token.access_token}}" # templating syntax is allowed in request.headers

[[request]]
name ="get_user_with_params"
url = "{{ user_api.base_url }}/users/"
method = "GET"
timeout = 60
save_result = false
[request.params] # Request params section
name = "{{ get_user.name }}" # templating syntax is allowed in request.params/querystring
[request.headers]
Authorization = "{{ get_token.access_token}}"

[[request]]
name = "create_new_user"
url = "{{  user_api.base_url }}/users/"
method = "POST"
[request.data]
firstname = "{{ get_user.firstname }} test"
lastname = "{{ get_user.Lastname }} test"
status = "{{ get_user.status }} test"
[request.headers]
Authorization = "{{ get_token.access_token}}"
[request.response_check] # response_check feature checking response data and status_code
status_code = 201
[request.response_check.data]
firstname = "{{ get_user.firstname }} test" # templating syntax is allowed in response data checks
lastname = "{{ get_user.Lastname }} test"
status = "{{ get_user.status }} test"

[[request]]
name = "create_new_user_with_from_file"
url = "{{  user_api.base_url }}/users/"
method = "PATCH"
[request.data]
from_file = "user.json" # from_file help you configure request.data
[request.headers]
Authorization = "{{ get_token.access_token}}"

Backlog

https://github.com/rfunix/bloodaxe/projects/1

Metadata

Release files for bloodaxe 0.2.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 bloodaxe 0.2.0
File Size Uploaded
bloodaxe-0.2.0.tar.gz 6.0 kB Details

Built distribution (wheel)

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

Total release size: 11.8 kB

Release files / bloodaxe-0.2.0.tar.gz

Download URL bloodaxe-0.2.0.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
06fd4229fe8121cd231c8998115f2fbadcd295e3a5986b77f14e23f34ade4562
BLAKE2b-256 checksum
How to use checksums
88675d5c9e3c834594630b7a373cbc0b1f0b2e07599f6e1e4e9f3cdaa422b62f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/3.8.1 Linux/4.15.0-58-generic

Release files / bloodaxe-0.2.0-py3-none-any.whl

Download URL bloodaxe-0.2.0-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bfa05ee190e0e0356029d2e51133fca3ec2e6140759929197e8a282d630349c4
BLAKE2b-256 checksum
How to use checksums
0fc70256e9f1775f8e7f937d17871b40bbf4bbb7931f6337aa3bccece5918806
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/3.8.1 Linux/4.15.0-58-generic

Release history Release notifications | RSS feed

This release

0.2.0 This release

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