plax

package module
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 3, 2021 License: Apache-2.0 Imports: 0 Imported by: 0

README

Plax: an engine for testing messaging systems

Go Reference License Contributor Covenant

And with reference to the narrative of events, far from permitting myself to derive it from the first source that came to hand, I did not even trust my own impressions, but it rests partly on what I saw myself, partly on what others saw for me, the accuracy of the report being always tried by the most severe and detailed tests possible.

-- Thucydides, The History of the Peloponnesian War

Summary

Plax is a test automation engine for messaging systems. This engine is designed to perform integrated testing of MQTT messaging, Kinesis streams, SNS traffic, SQS trafic, Kafka I/O, HTTP APIs, subprocesses, mobile apps (via WebDriver), and more.

An author of a test specifies a sequence of input and expected outputs over a set of channels that are connected to external services. Execution of the test verifies that the expected output occurred.

Command-line tools in this repo

  1. plax: The test engine (and probably the reason you are here). Documentation is here.
  2. plaxrun: Tool to run lots of Plax tests with various configurations. Documentation is here.
  3. yamlincl: YAML include processor utility. Documenation is here.

Usage

Clone this repo and install Go. Then:

(cd cmd/plax && go install)
# Run one simple test.
plax -test demos/mock.yaml -log debug
# Run several tests.
plax -dir demos -labels selftest

That last command runs all the example test specs that are labeled as selftest. basic.yaml is a good, small example of a test specification.

The langauge

See the main documentation and the examples.

References

  1. Plax manual and the plaxrun manual
  2. Sheens pattern matching and some examples
  3. Sheens, which could be used to implement more complex tests and simulations
  4. TCL "expect"

Documentation

Overview

Package Plax is an automation engine for messaging systems.

Directories

Path Synopsis
Package chans provides a few channel types.
Package chans provides a few channel types.
cwl
package cwl provides an AWS CloudWatch producer and consumer channel (type).
package cwl provides an AWS CloudWatch producer and consumer channel (type).
kds
shell
Package shell provides a 'cmd' channel type.
Package shell provides a 'cmd' channel type.
sqs
std
Package std exists just to collect _ imports for the standard channel types implemented in this repo.
Package std exists just to collect _ imports for the standard channel types implemented in this repo.
cmd
plax
Package main is the standard Plax command-line program.
Package main is the standard Plax command-line program.
plaxrun
Package main is the 'plaxrun' command-line program for running many tests with various configurations.
Package main is the 'plaxrun' command-line program for running many tests with various configurations.
yamlincl
Package main is the command-line 'yamlincl' utilitiy.
Package main is the command-line 'yamlincl' utilitiy.
Package dsl is the core Plax functionality.
Package dsl is the core Plax functionality.
Package invoke provides gear supporting to facilitate running Plax tests in different environments (and configurations).
Package invoke provides gear supporting to facilitate running Plax tests in different environments (and configurations).
Package junit provides simplified structures for JUnit test reports.
Package junit provides simplified structures for JUnit test reports.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL