Modern rewrite of the Apache Qpid Interoperability Test suite for verifying AMQP 1.0 client interoperability across multiple language implementations.
QIT 2.0 tests that AMQP 1.0 messages sent by one client can be correctly received by another, through an Apache Artemis broker. It covers data type fidelity, JMS interoperability, message metadata, and large content transfer.
Tested Clients (6):
Test Coverage (2076 tests default / ~2470 extended):
See docs/QIT2_SUMMARY.md for the full summary including improvements over the original QIT.
# Setup Python environment uv venv source .venv/bin/activate uv sync # Setup and start broker (see docs/BROKER_SETUP.md for details) ./scripts/setup-local-broker.sh ./artemis-local/bin/artemis run & # Run AMQP type tests qit test amqp-types # Run JMS, AMQP header, and large content tests pytest tests/test_jms_unified.py -v pytest tests/test_amqp_headers.py -v pytest tests/test_large_content.py -v
See docs/ARCHITECTURE.md for detailed design documentation. To add a shim for a new language or client library, see docs/SHIM_HOWTO.md.
qit/ src/qit/ # Python package (orchestrator, type system, xfail) shims/ # 6 client implementations with uniform CLI + JSON interface tests/ # pytest test suites scripts/ # Broker setup, CI helpers, debug tools docs/ # Architecture, status, setup documentation
Jenkins pipeline runs weekly, with extended tier (10MB content) enabled during the first week of each month. Four JUnit XML result files per run:
qit-results.xml - AMQP types (550 tests)qit-jms-results.xml - JMS interop (363 tests)qit-amqp-header-results.xml - AMQP headers (275 tests)qit-large-content-results.xml - Large content (494-888 tests)