Skip to main content

Automated Charm Testing

Reusable components and utilities for juju:http://juju.ubuntu.com charm testing.

There are several different use cases for testing from jenkins waterfall views, to gating publishing to a repository based on test results.

In order to accomodate different running scenarios, the tools are presented as a set of cli tools.

All the tools operate against the default juju environment.

Runner

Provides the main entry point into charm testing. It will generate and run a test and record the result and environment information:

$ juju-graph-runner -r repository -w working_dir -s series -t testrecord.zip <charm_name>

Planner

For a given charm change calculate a series of test plans against a repository of all charms:

$ juju-planner -r repository  -s precise -d plans_dir <charm_name>

Snapshot

Snapshot and restore an environment, akin to a bzr shelve. Primary purpose it to be able to clear out services from an environment so the environment can be reused across tests.

Operates on a service granularity, destroying and removing old services not present in before the last snapshot in a pop:

 $ juju-snapshot snapshot -f pristine.json
 $ juju deploy --repository=examples local:mysql
 $ juju-snapshot restore -f pristine.json

- Clean an environment for reuse, via deleting services.
- Resets provider storage of any uploaded charms.
- Removes any charm state from zookeeper.

Loader

Load a test plan’s services and relations into an environment:

$ juju-load -r repository mediawiki.plan

Watch

Verification for a service coming up correctly, waits for a given service and all its relations to reach a completed steady state or any reach a failure state:

$ juju-watch <service_name>

Exit code 1 if the wait failed, stderr with more details. Exit 0 if succesful.

Test Records

Create an archive of all the unit logs, zookeeper data, status, and test runner logs:

$ juju-record -f testrecord.zip

Credits

Kapil Thangavelu <author> Mark Mimms <contributor>

Changes

0.2.5

  • use sftp to fetch remote unit logs (juju-recorder is now provider independent)

  • update watcher to work with new status output

0.2.4

  • standalone zk dump script, use an error handling wrapper snapshot teardown.

0.2.3

  • fix for watcher max timeout cli argument

0.2.2

  • fix for snapshot restore having multiple services reference a charm.

0.2.1

  • packaging fix

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

charmrunner-0.2.5.tar.gz (14.4 kB view details)

Uploaded Source

File details

Details for the file charmrunner-0.2.5.tar.gz.

File metadata

  • Download URL: charmrunner-0.2.5.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for charmrunner-0.2.5.tar.gz
Algorithm Hash digest
SHA256 90a8ab5660e247d2485b963b1a07c204fc642e71e70d07fa3aa61c197d0c6a68
MD5 d2eb479af3112861c8740efef1d72bb3
BLAKE2b-256 388a733988f06d95aa79442e879f53296ba7412eadf4c4acb8eceb5dac844c7f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.5 This release

1 file

0.2.4

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page