Testudos Documentation
This site is the documentation hub for Testudos, a Qt/QML application testing framework.
Use the section switcher in the sidebar to move between areas.
What is Testudos?
Testudos is an automation and introspection framework for Qt/QML applications. It is designed for end-to-end testing of real applications (your AUT, “Application Under Test”) by launching and controlling them through a dedicated engine process, and then driving assertions from a test runner (most commonly pytest via the Python SDK).
At a high level, Testudos gives you:
- A controllable engine you can run with a GUI, in headless mode, or as a daemon
- An injected agent inside the AUT (Linux: via
LD_PRELOAD) to observe and interact with the running Qt/QML app - A protocol + transport layer for structured RPC-style messaging
- A runner + Python SDK for writing tests and tooling around your AUT
What can you do with it?
Typical workflows include:
- Run automated end-to-end tests against a real Qt/QML app under pytest
- Drive application behavior (launch, connect, script interactions) via the engine and Python client
- Query and assert UI/state by inspecting objects exposed through the agent and protocol
- Run in different environments: developer desktop (GUI engine), CI/headless, or long-lived daemon setups
If you’re new here, start with the Quickstart to get a minimal engine + pytest loop running, then move on to the Tests guide for writing realistic test cases.
Sections
- Tutorial — guided setup and workflows:
- Quickstart: install the Python wheel from a compressed package, start the engine, and run a minimal pytest invocation.
- Tests: how to write pytest tests using the Testudos pytest fixtures (
testudos_client,testudos_app) and how to run them.
- Python SDK — the
testudosPython package: API reference, pytest plugin, and usage topics.