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 selftestThat 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
plaxrunmanual - Sheens pattern matching and some examples
- Sheens, which could be used to implement more complex tests and simulations
- TCL "expect"