Skip to main content

Json wrapper around requests for simple smoke testing.

Project description


"[Requests]( for humans." :)
[![Build Status](](

The prevalence of SOA, microservices and dev/stage/live environment build processes precipitated the development of smolder.
The challenges these technologies pose requires the use of restful api tests which are simple and repeatable on
different endpoints without modifying the tests or the endpoints. A lot of these environments require agents running the
tests to be inside the network boundary and running inside internal build pipelines.

Smolder aims to solve these problems by providing features such as:

- Smoke test your rest API.
- Validate response times.
- Validate redirects.
- Validate ssl certificates.
- Validate headers.
- Validate json object types using [validictory](
- Write plugins using [Yapsy](
- More


pip install git+


After installing copy/paste the following into a bash shell:
cat <<EOF > github_status.yaml
name: "Github Status"
expect_status_code: 301
response_redirect: ""
User-Agent: "Smolder smoke test library"
uri: /api/status.json
User-Agent: "Smolder smoke test library"
name: "Github Status ssl"
status: good
response_max_time_ms: 200
port: 443
protocol: https
uri: /api/status.json
smolder github_status.yaml

Expected Output:



1. [tests](docs/
- [inputs](docs/
- [outcomes](docs/
2. [plugins](docs/
3. [examples](docs/
4. [contributing](docs/
5. [history](./HISTORY)

Similar Projects

1. [Runscope](
2. [](
3. [Stackoverflow](



Version 0.5.0
- Adding output plugin handling. Props to
- Output can now be optionally json

Version 0.4.2
- More specific SSL error handling
- Schema validation happens inside the class for Ansible module support

Version 0.4.1
- Adds error handling for bad ssl certificates.
- Unit tests in place for all types of bad ssl certificates currently handled by
- New plugin "response_header_value_contains", big thanks to

Version 0.4.0
- Breaks out input handling into modules that can be independently tested.

Version 0.3.1
- Adds support for default overrides
- Supporting Docker testing
- Community contributions
- Big thanks to

Version 0.3.0
- 0.3.0 is looking to resolve defaults globally using immutable data structures, deep copied and updated for defaults.
- Handles issues with requests where the verify var accepts both bools and strings.
- Adds support for smolder warnings (not python warnings).
- Some unit test improvements.
- Big enough change surface area to warrant a 'major' version bump.

Version 0.2.4
- Improved certificate validation

Version 0.2.3
- Fix bug with tcp test defaults.

Version 0.2.2
- Added input validation for tests
- Moved classification to production/stable

Version 0.2.1
- Rewrote and reorganised everything to be more pythonic
- Implemented the yapsy plugin system
- json validation from validictory
- *** Breaking changes *** to the test schema
- Added inputs dict section with inputs and structure matching the underlying requests verbs exactly (pass through)
- Added an outcomes section to be more clear about logic
- request_headers becomes simply headers
- smolder-cli command line tool becomes simply smolder
- If you are inheriting, inherit from charcoal package
- validate_cert becomes verify (as it is passed through to requests directly), and goes under inputs
- See commit 8e7bc1c for examples of how the test structure has changed.

Version 0.1.2
- fixed bug with json search path
- deprecated use of regex (will reintroduce after fixing handling of binary objects)
- Improved tests
- Python 3 support

Version 0.0.1

- Smoke testing framework

Project details

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page