Test Kafka with Coyote

Testing distributed systems with Coyote
Coyote, is an open-source tool https://github.com/Landoop/coyote we built using Go at Landoop for testing automation. Define sequence of commands to be executed inside a YAML file and then the expected output in REST requests or log files or by executing commands to target systems.
Coyote has a very broad scope, but we use it mostly for testing Big Data and Fast Data systems.
Coyote Reports
While testing our Cloudera integration with the Landoop stack, we need to validate multiple possible security configurations and perform a wide range of testing ranging from PLAIN_TEXT configurations, kerberos enabled clusters, SASL and TLS. See the security/#authentication-support-matrix
At the end of each integration tests we also produce a set of reports, that can visualise how long, each test took, and if any failures occured, and evidence to allow debugging.
Certifying Kafka Connect
We do a lot of work with connectors, and use coyote for quality assurance. A collection of some of our tests is available at https://github.com/Landoop/kafka-connectors-tests
We use our fast-data-dev docker to bring up a kafka platform as a service, and compose that docker with other target dockers. One test composing up Cassandra and our stack, and while generating Kafka messages test that connectors perform nicely exchanging data betweeen Kafka an Cassandra at a particular version.
Github integration
We maintain hooks to github projects and building against multiple connectors and for every commit to provide feedback in the development teams.
Jenkins integration
On our Jenkins server, we integrate with coyote to capture i) the exit code and ii) mark the build as failed - with additional errors added to the job name, to grant us quick visibility of the current status. We also keep a history of test reports.