Skip to content

dcos/shakedown

Repository files navigation

Shakedown Build Status

DC/OS test harness.

Overview

A shakedown is a period of testing or a trial journey undergone by a ship, aircraft or other craft and its crew before being declared operational. — https://en.wikipedia.org/wiki/Shakedown_(testing)

Installation

Shakedown requires Python 3.4+.

Installing from PyPI

The recommended Shakedown installation method is via the PyPI Python Package Index repository at https://pypi.python.org/pypi/dcos-shakedown. To install the latest version and all required modules:

pip3 install dcos-shakedown

dcos-shakedown has a number of dependencies which need to be available. One of those dependencies, the cryptography module requires a number of OS level libraries in order to install correctly which include: build-essential libssl-dev libffi-dev python-dev. For environments other than linux please read Stackoverflow. On a new ubuntu environment the following should install dcos-shakedown.

  • apt-get update
  • apt-get install python3 python3-pip build-essential libssl-dev libffi-dev python-dev
  • pip3 install dcos-shakedown

Development and bleeding edge

To pull and install from our master branch on GitHub:

git clone https://github.com/dcos/shakedown.git
cd shakedown
pip3 install -r requirements.txt && pip3 install -e .

Or if you do not wish to pin to a version of dcos-cli:

pip3 install -r requirements-edge.txt && pip3 install -e .

Setting up a new Shakedown virtual environment

If you'd like to isolate your Shakedown Python environment, you can do so using the virtualenv tool. To create a new virtual environment in $HOME/shakedown:

pip3 install virtualenv
virtualenv $HOME/shakedown
source $HOME/shakedown/bin/activate
pip3 install dcos-shakedown

This virtual environment can then be activated in new terminal sessions with:

source $HOME/shakedown/bin/activate

Usage

shakedown --dcos-url=http://dcos.example.com [options] [path_to_tests]

  • --dcos-url is required.
  • tests within the current working directory will be auto-discovered unless specified.
  • arguments can be stored in a ~/.shakedown TOML file (command-line takes precedence)
  • shakedown --help is your friend.

Running in parallel

Shakedown can be run against multiple DC/OS clusters in parallel by setting the DCOS_CONFIG_ENV environmental variable to a unique file, eg:

DCOS_CONFIG_ENV='shakedown-custom-01.toml' shakedown --dcos-url=http://dcos.example.com [options] [path_to_tests]

Helper methods

Shakedown is a testing tool as well as a library. Many helper functions are available via from shakedown import * in your tests. See the API documentation for more information.

License

Shakedown is licensed under the Apache License, Version 2.0. For additional information, see the LICENSE file included at the root of this repository.

Reporting issues

Please report issues and submit feature requests for Shakedown by creating an issue in the DC/OS JIRA with the "Shakedown" component (JIRA account required).

Contributing

See the CONTRIBUTING file in the root of this repository.