Skip to content

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 testudos Python package: API reference, pytest plugin, and usage topics.