{"id":4745,"library":"robotframework-pabot","title":"Pabot (Robot Framework Parallel Runner)","description":"Pabot is a parallel test runner for Robot Framework. It enables splitting test execution across multiple processes, thereby significantly reducing overall test execution time. It is actively maintained with frequent releases, offering features for enhanced test execution control and resource management.","status":"active","version":"5.2.2","language":"en","source_language":"en","source_url":"https://github.com/mkorpela/pabot","tags":["robot framework","testing","parallel execution","automation","test runner"],"install":[{"cmd":"pip install robotframework-pabot==5.2.2","lang":"bash","label":"Install specific version"},{"cmd":"pip install -U robotframework-pabot","lang":"bash","label":"Upgrade to latest version"},{"cmd":"pip install -U robotframework-pabot[stacktrace]","lang":"bash","label":"Install with optional stacktrace support"}],"dependencies":[{"reason":"Core dependency for running Robot Framework tests. Starting from Pabot 5.2.0, this is the primary mandatory dependency.","package":"robotframework","optional":false},{"reason":"Provides improved fail/error logging in sub-Robot processes. Optional since Pabot 5.2.0.","package":"robotframework-stacktrace","optional":true}],"imports":[{"note":"Pabot is primarily a command-line tool. 'pabot.PabotLib' is a Robot Framework library used within .robot files for managing parallel execution resources (e.g., locks, shared values). Direct Python import of 'pabot' for test execution is not the typical usage pattern.","symbol":"PabotLib","correct":"Library    pabot.PabotLib"}],"quickstart":{"code":"mkdir tests\ncat << EOF > tests/my_suite.robot\n*** Settings ***\nLibrary    OperatingSystem\n\n*** Test Cases ***\nExample Test 1\n    Log To Console    Running Test 1\n    Sleep    1s\n\nExample Test 2\n    Log To Console    Running Test 2\n    Sleep    2s\n\nExample Test 3\n    Log To Console    Running Test 3\n    Sleep    1s\nEOF\n\npabot tests/","lang":"bash","description":"This quickstart creates a simple Robot Framework test suite and demonstrates how to run it in parallel using Pabot. By default, Pabot splits execution at the suite level."},"warnings":[{"fix":"Review the Pabot 5.0.0 release notes and GitHub changelog for detailed breaking changes and adjust test setup or custom scripts accordingly. Ensure compatibility with your Robot Framework version.","message":"Pabot 5.0.0 introduced significant internal changes, particularly in subprocess handling, artifact management, and ordering logic. Users with heavily customized execution workflows or older Robot Framework versions may experience unexpected behavior.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Integrate 'Library pabot.PabotLib' into your Robot Framework test files and use 'Acquire Lock' and 'Release Lock' keywords around sections of tests that access shared resources. Consider using resource files with PabotLib for shared variables.","message":"When running tests in parallel, shared resources (e.g., files, databases, specific test accounts) can lead to conflicts or data corruption. PabotLib keywords like 'Acquire Lock' and 'Release Lock' are essential for managing access to such resources.","severity":"gotcha","affected_versions":"All versions"},{"fix":"To split tests at the test case level for more granular parallelism, add `--testlevelsplit` to your Pabot command: `pabot --testlevelsplit [path to tests]`.","message":"Pabot by default splits execution at the 'suite level.' If your goal is to parallelize individual test cases within a single suite, you must explicitly use the '--testlevelsplit' option. Not using this option when desired can lead to less effective parallelization.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Upgrade to Pabot 5.2.2 or later: `pip install -U robotframework-pabot`. If unable to upgrade, avoid using `--chunk` with `--ordering`.","message":"A `KeyError: 'ordering'` could occur when using the `--chunk` option in conjunction with an ordering file. This specific bug was fixed in Pabot 5.2.2.","severity":"gotcha","affected_versions":"<5.2.2"},{"fix":"Ensure you are using Pabot version 5.2.0 or newer when running with Robot Framework 7.0 or later. Always check release notes for compatibility when upgrading major versions of either library.","message":"There have been reported compatibility issues between Pabot and Robot Framework 7.0, particularly concerning the cumulative behavior of `--include` arguments, which could lead to unexpected test execution (e.g., tests running multiple times). While patched in later Pabot versions, this highlights the need for careful version alignment.","severity":"gotcha","affected_versions":"Pabot <5.2.0 (with Robot Framework 7.0)"}],"env_vars":null,"last_verified":"2026-04-12T00:00:00.000Z","next_check":"2026-07-11T00:00:00.000Z"}