Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Bernd Verst <github@bernd.dev> |
||
---|---|---|
.. | ||
components | ||
README.md | ||
config.yaml | ||
docker-compose.yml | ||
mqtt_test.go |
README.md
MQTT certifcation testing
This project aims to test the MQTT Pub/Sub component under various conditions.
Test plan
Basic Test
- Bring up a MQTT cluster
- Start 1 sidecar/application(App1)
- Publishes 1000+ unique messages
- App: Simulate periodic errors
- Component: Retries on error
- App: Observes successful messages
- Test: Confirms that all expected messages were received
Multiple Publishers-Subscribers
- Start second sidecar/application(App2)
- Each of the publishers publish a fixed number of messages to the topic
- Test: Confirms that both applications receive all published messages
Infra Test
- Start a constant flow of publishing and subscribing(App1)
- Test: Keeps count of total sent/received
- Start another sidecar/application with persistent session(App2)
- Test: Publishes messages in background
- Each of the applications should receive messages
- Stop consumer connected with persistent session(App2)
- Test: Publishes messages in background
- Only App1 should receive messages
- Stop publisher as well so that none of the components are active
- No messages are published and received
- Restart second consumer with persistent session
- App2 receives all lost messages
- Restart publisher so that both components are active
- Test: Confirms that both applications received all published messages and no messages were lost
Network Test
- Simulate network interruption
- Test: Begins trying to reconnect & publish
- Component: Begins trying to reconnect & re-subscribe