Updated August 21, 2026

Core concepts

Five ideas. Everything else in these docs is a specialization of one of them.

1. Client

The app client is the surface under test — a UI (SAP GUI, a browser) or a headless API. If the client is not supported, the suite cannot run remotely. See App clients and the support matrix.

2. Engine

The engine executes scripts (Robot Framework, Playwright, later k6 or Locust). An engine only works for the clients it implements. Robot drives SAP GUI and Web. Playwright drives Web only. See Engines.

3. Image

What you select in the dashboard or send as engine on POST /suites (robot-sap, robot-web, playwright) is an engine × client image — one container that pairs a runner with a client and that client's remote dependencies. It is not the engine name.

Image IDEngineClient
robot-sapRobot FrameworkSAP GUI for Java
robot-webRobot FrameworkWeb
playwrightPlaywrightWeb

4. Client runtime

Each client needs extra work so a container can open a real session. That work is client-specific, not generic networking:

  • SAP GUI for Java — SAP GUI in the image, router strings, SAP Router, secure connections
  • Web — browsers pinned to the image, base_url / params.browser
  • SAP GUI for Windows — COM scripting on a logged-in desktop; not the remote image
  • Later: Fiori (Web), headless REST (k6 / Locust)

Platform tunneling is different: a tunnel is how Velo reaches any private system. SAP Router is how the SAP GUI client reaches an ECC dispatcher.

5. Integration

How a third party starts an image:

  • REST — API key or dashboard JWT (POST /executions)
  • Robot CLIrobotframework-velo-cli wraps robot and calls REST
  • Copado CRT — CRT → CLI → Velo
  • Rev-Trac — Rev-Trac → REST → Velo

Related