Skip to content

Run in parallel with Pabot

Chapter lab: Team toolingch25-team-tooling.zip · 15 KB

This lesson continues in the same lab as the lesson before it. If you don’t have it yet, download it here.

Download ch25-team-tooling.zip

Or fetch and unpack it from a terminal in VS Code:

Terminal window
curl -fsSLO https://manykarim.github.io/robotframework-essentials-web/labs/ch25-team-tooling.zip && unzip -q ch25-team-tooling.zip && rm ch25-team-tooling.zip

Open the folder in VS Code with code rfe-ch25-team-tooling (or File → Open Folder…) and accept the recommended RobotCode and Python extensions. Then set it up:

Terminal window
uv sync
Terminal window
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Keep the environment active in every terminal where you run lesson commands.

Terminal window
poetry install --no-root

Python 3.13 or newer is required; uv installs it when it is missing.

Open in browserNo setup? Try the lab right here: its files, an editor and a terminal, running in your browser.

What's inside
  • Directoryrfe-ch25-team-tooling/
    • Directory.vscode/
      • extensions.json
    • Directorychecks/
      • alpha.robot
      • beta.robot
      • unformatted.robot
    • .gitignore
    • .python-version
    • LAB.md
    • pyproject.toml
    • README.md
    • requirements.txt
    • uv.lock

As a suite grows, a serial run gets slow — each test waits for the one before it. Pabot runs suites (or even individual tests) in parallel, each in its own process, so a run that took a minute serially can finish in seconds.

Pabot is a drop-in: it produces the same output.xml as robot, so all your reports, rebot, and CI wiring keep working unchanged.

Pabot splits a run across workershub diagram. Same output.xml as robot, so rebot and reports still workalpha workerbeta workermerged output.xmlpabotone command, many processesSame output.xml as robot, so rebot and reports still work
Run

Run the two clean suites at the same time:

Terminal window
uv run pabot --outputdir results checks/alpha.robot checks/beta.robot
Terminal window
pabot --outputdir results checks/alpha.robot checks/beta.robot
Terminal window
poetry run pabot --outputdir results checks/alpha.robot checks/beta.robot

Both suites start at once and finish together:

uv run pabot --outputdir results checks/alpha.robot checks/beta.robotpabot --outputdir results checks/alpha.robot checks/beta.robotpoetry run pabot --outputdir results checks/alpha.robot checks/beta.robot
[0] EXECUTING Alpha
[1] EXECUTING Beta
[1] PASSED Beta in 0.5 seconds
[0] PASSED Alpha in 0.5 seconds
4 tests, 4 passed, 0 failed, 0 skipped

Pabot runs alpha and beta concurrently and merges their results into one results/output.xml — covering every test from both suites.

Done when

the parallel run produces a report with all four tests, passing.

Check your understanding

Quick recall. Your first answer stays in this browser; the quiz never blocks your progress.

  1. What does Pabot do?

    Show the answer

    Answer: runs suites/tests in parallel processes — Pabot parallelises execution and still produces a normal output.xml.

  2. After a Pabot run, your reporting…

    Show the answer

    Answer: keeps working — it produces the same output.xml — Pabot is a drop-in: rebot, logs, and CI wiring work unchanged.

Key terms

pabotcommand
Run suites/tests in parallel; produces a standard output.xml.

All terms in the glossary →