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
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.
plax
: The test engine (and probably the reason you are here). Documentation is here.plaxrun
: Tool to run lots of Plax tests with various configurations. Documentation is here.plaxsubst
: Utility to test/use parameter substitution independently from other Plax functionality. Related documenation is here.yamlincl
: YAML include processor utility. Documenation is here.
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.
See the main documentation and the examples.
- Plax manual and the
plaxrun
manual - Sheens pattern matching and some examples
- Sheens, which could be used to implement more complex tests and simulations
- TCL "expect"