chaostoolkit driver for wiremock
Project description
chaostoolkit-wiremock
Chaos Toolkit driver for WireMock.
Package installation
To install the package from pypi.org:
pip install -U chaostoolkit-wiremock
Installation from source
In order to use it, you need python 3.5+ in your environment. Once downloaded the project, cd into it and run:
pip install -r requirements.txt -r requirements-dev.txt
make clean && make test && make install
Configuration
The following keys can be configured in the experiment global configuration section, under the "wiremock" key:
- host: the wiremock server host
- port: the wiremock server port
- contextPath: the contextPath for your wiremock server (optional)
- timeout: accepted timeout (defaults to 1 sec)
- down: the delayDistribution section used by the
down
action
Configuration example:
{
"configuration": {
"wiremock": {
"host": "localhost",
"port": 8080,
"contextPath": "/wiremock",
"timeout": 10,
"down": {
"type": "lognormal",
"median": 3000,
"sigma": 0.2
}
}
}
}
Exported Actions
Adding a list of mappings:
{
"method": [
{
"type": "action",
"name": "adding a mapping",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "add_mappings",
"arguments": {
"mappings": [{
"request": {
"method": "GET",
"url": "/hello"
},
"response": {
"status": 200,
"body": "Hello world!",
"headers": {
"Content-Type": "text/plain"
}
}
}]
}
}
}
]
}
Deleting a list of mappings:
{
"method": [
{
"type": "action",
"name": "deleting a mapping",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "delete_mappings",
"arguments": {
"filter": [{
"method": "GET",
"url": "/hello"
}]
}
}
}
]
}
Adding a global fixed delay:
{
"method": [
{
"type": "action",
"name": "Adding a global fixed delay",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "global_fixed_delay",
"arguments": {
"fixedDelay": 10
}
}
}
]
}
Adding a global random delay:
{
"method": [
{
"type": "action",
"name": "Adding a global random delay",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "global_random_delay",
"arguments": {
"delayDistribution": {
"type": "lognormal",
"median": 20,
"sigma": 0.1
}
}
}
}
]
}
Adding a fixed delay to a list of mappings:
{
"method": [
{
"type": "action",
"name": "Adding a fixed delay to a mapping",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "fixed_delay",
"arguments": {
"filter": [{
"method": "GET",
"url": "/hello1"
}],
"fixedDelayMilliseconds": 1000
}
}
}
]
}
Adding a random delay to a list of mappings:
{
"method": [
{
"type": "action",
"name": "Adding a random delay to a mapping",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "random_delay",
"arguments": {
"filter": [{
"method": "GET",
"url": "/hello2"
}],
"delayDistribution": {
"type": "lognormal",
"median": 2000,
"sigma": 0.5
}
}
}
}
]
}
Adding a ChunkedDribbleDelay to a list of mappings:
{
"method": [
{
"type": "action",
"name": "Adding a ChunkedDribbleDelay to a mapping",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "chunked_dribble_delay",
"arguments": {
"filter": [{
"method": "GET",
"url": "/hello"
}],
"chunkedDribbleDelay": {
"numberOfChunks": 5,
"totalDuration": 1000
}
}
}
}
]
}
Taking a list of mappings down (heavy distribution delay). This action will use the parameters specified in the "down" key of the configuration section:
{
"method": [
{
"type": "action",
"name": "Taking a mapping down",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "down",
"arguments": {
"filter": [{
"method": "GET",
"url": "/hello"
}]
}
}
}
]
}
Taking a list of mappings up back again:
{
"method": [
{
"type": "action",
"name": "Taking a mapping down",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "up",
"arguments": {
"filter": [{
"method": "GET",
"url": "/hello"
}]
}
}
}
]
}
Resetting the wiremock server (deleting all mappings):
{
"method": [
{
"type": "action",
"name": "Taking a mapping down",
"provider": {
"type": "python",
"module": "chaoswm.actions",
"func": "reset"
}
}
]
}
Experiments
The driver comes with an experiments directory where you can find snippets to test all APIs against a WireMock server listening on localhost:8080.
Discovery
You may use the Chaos Toolkit to discover the capabilities of this extension:
$ chaos discover chaostoolkit-wiremock --no-install
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for chaostoolkit-wiremock-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cf875a90ccaee7d6690b0d4931172df75da89d12062a928be71a0be88a3d56d |
|
MD5 | 341c5418da4f5da480754671508ceb95 |
|
BLAKE2b-256 | fcee9feaa53f2d27a33cd5ad5c68bd7409528c55dfc71be17212fdaee9fab171 |
Hashes for chaostoolkit_wiremock-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d120392ce7db9f08ec1954ddc4b38f4e9d4728a9c56c99b3e8e0efc74c5de52 |
|
MD5 | 7317e21b51def242cd547c91032264e7 |
|
BLAKE2b-256 | eba8d7538bbf244562b4447f860ad0d602ae66410575e14521144ccfeb39218e |