Connect any test automation tool to Checkmk monitoring — no test rewrites needed.
The Robotmk Bridge Plugin extends Checkmk's synthetic monitoring to support test results from any testing framework — JUnit, Gatling, OWASP ZAP, and more in the future — without requiring migration to Robot Framework.
Until now, comprehensive test result integration in Checkmk was exclusively available for Robot Framework via Robotmk.
Many teams wanted this integration but couldn't change their established test frameworks.
The Robotmk Bridge solves this by acting as a universal translator: it takes test results from your existing tools and converts them into a format Checkmk can monitor and visualize.
- ✅ Keep your testing tools — Works with JUnit, Gatling, ZAP, and more in the future
- ✅ No code changes — Processes existing test result files
- ✅ Unified monitoring — All test results appear as Checkmk services
- ✅ Fully configurable — Set up entirely through Checkmk GUI (="Bakery")
- ✅ Extensible — New Python handlers can be added to support more test tools
- ✅ Cross-platform — Works on Linux and Windows
- Your test tool generates result files (JUnit XML, Gatling logs, ZAP reports, etc.)
- Bridge plugin (deployed via Checkmk agent) picks up these files
- Handler module converts the native format to Robot Framework XML
- Robotmk format wraps the converted results in JSON
- Checkmk displays results as monitoring services with metrics and states
On the monitored host, you need Python 3.7+ and the robotframework-robotmk-bridge package:
# Linux
pip3 install robotframework-robotmk-bridge==0.1.1
# Windows
pip install robotframework-robotmk-bridge==0.1.1- Download the latest MKP from Github Releases or Checkmk Exchange
- In Checkmk: Setup → Extension packages → Upload package
- Upload and install the MKP in Chekcmk
In this step you define how the plugin should find and process your test result files. You can set up as many "plans" as you want to monitor different test suites or tools.
- Go to Setup → Agents → Agent rules
- Find "Robotmk Bridge"
- Create a new rule and choose "Add plan"
- Plan Name: Unique identifier for this plan. Used as the Robotmk plan ID.
- Result Handler: Select the result handler that matches the test tool producing the result files.
- Application: Application name shown in the Checkmk service description and discovered as service label.
- Source: Choose between the following options to specify where the plugin should look for test result files:
- Single file: exact path to a single result file, always processed if it exists.
- Newest in directory: Provide a directory path; the plugin will process the most recently modified file in that directory.
- All files in directory: Provide a directory path; the plugin will process all files in that directory .
- Bake and deploy the agent
Run the discovery on the host to see the new services created by the plugin. You should see:
- RMK Plan: Overall status of the result conversion, including runtime metric
- RMK Test: Dependin on the source type, you will see either a single service with aggregated test results (for single file or newest in directory) or multiple services for each test result file (for all files in directory)
🎉 Done! Your 3rd party test results now appear as Checkmk monitoring services - powered by Robotmk:
Currently, we support results from these tools:
| Tool | Handler | Result Format |
|---|---|---|
| pytest, JUnit, Maven, NUnit | junit |
JUnit XML |
| Gatling | gatling |
simulation.log |
| OWASP ZAP | zaproxy |
XML/JSON reports |
| More coming soon | — | — |
Checkout robotmk-bridge for writing handlers or to submit an issue or a Pull request.
- 🏗️ Architecture — Technical design and component overview
- 🔧 Development Guide — Contributing and extending the plugin
- ⚙️ Taskfile Guide — Development tasks and workflows
- Bakery-based setup — No manual agent configuration needed
- Multiple test plans — Monitor different test types per host
- Flexible file sources — Single file, newest in directory, or all files
- Handler parameters — Customize behavior per test tool
- Service per plan — Individual monitoring for each test configuration
- Comprehensive metrics — Execution time, pass/fail counts, conversion duration
- Configurable thresholds — Set WARN/CRIT levels for missing files and slow conversions
- Error reporting — Clear diagnostics when something goes wrong
- Linux — Bash wrapper with automatic Python detection
- Windows — PowerShell wrapper with Python discovery
- Graceful degradation — Clear error messages when dependencies are missing
For the best development experience, use VS Code with the Dev Containers extension.
# Install Task runner (optional but recommended)
brew install go-task/tap/go-task # macOS
# or: snap install task --classic # Linux
# Common tasks
task test # Run all tests
task gen-data # Generate test data
task validate # Format, lint, and testSee DEVELOPMENT.md for more details.
The following directories in this repo are getting mapped into the Checkmk site.
agents,checkman,checks,doc,inventory,notifications,pnp-templates,webare mapped intolocal/share/check_mk/agent_basedis mapped tolocal/lib/check_mk/base/plugins/agent_basednagios_pluginsis mapped tolocal/lib/nagios/plugins
pytest can be executed from the terminal or the test ui.
Developed by ELABIT GmbH — the creators of Robotmk
- Robotmk Website: https://robotmk.org
- Robotmk Blog: https://blog.robotmk.org
- Issues: https://github.com/elabit/robotmk-bridge-plugin/issues
- Bridge Handler Development: https://github.com/elabit/robotmk-bridge
Made with ❤️ to extend Checkmk Synthetic Monitoring to every test automation tool!


