Robot Framework is a keyword-driven test automation framework under the Apache 2.0 license, funded by the non-profit Robot Framework Foundation. It is widely used for embedded and system testing through libraries for serial ports, SSH and Telnet. TofuPilot is a test platform built around the open-source TofuPilot Framework, and its CLI also runs Robot Framework suites natively. This guide compares the two for hardware test and shows how they combine.
Facts about Robot Framework were checked against robotframework.org and its user guide in November 2026 (version 7.5.1).
Overview
| Robot Framework | TofuPilot Framework | |
|---|---|---|
| License | Apache 2.0 | MIT |
| Maintainer | Robot Framework Foundation | TofuPilot |
| Test syntax | Keywords in .robot files | YAML procedure, Python phases |
| Extension | Keyword libraries in Python or Java | Plugs as Python classes |
| Results | output.xml (or JSON), log.html, report.html | Runs uploaded to the dashboard |
| Measurement limits | No built-in model, assertions only | Validators on each measurement |
| Operator UI | Dialogs library (modal popups) | Browser kiosk declared in the procedure |
| Station management | None | Deployment, versions and rollback |
What Robot Framework Does Well
- Readable tests. Keyword syntax reads like a test specification, so system engineers and QA can review it.
- Libraries. SSHLibrary, Telnet, Process and third-party SerialLibrary cover most embedded interfaces.
- Software and hardware in one tool. The same suite can drive a device over serial and a web UI over a browser library.
- Reports. Every run produces an HTML log and report with keyword-level detail.
*** Settings ***Library SerialLibrary encoding=ascii*** Test Cases ***Firmware Reports Version Add Port /dev/ttyUSB0 baudrate=115200 timeout=2 Write Data VER? ${resp}= Read Until terminator= Should Contain ${resp} FW 1.4 [Teardown] Delete All PortsWhat It Leaves Out for Production Test
- No measurement record. A test fails when a keyword fails. A numeric check is an assertion such as
Should Be True 3.2 < ${v} < 3.4; the value, unit and limits are not stored as structured data in the output. - No result database. Each run produces files. Comparing yield or a measurement across thousands of units needs a pipeline built outside the framework.
- No instrument layer. There is no standard VISA or SCPI library; instruments are wrapped in a custom Python keyword library.
- No operator workflow. The Dialogs library pauses execution with a modal popup. Serial number scanning, guided steps and a pass or fail screen are not provided.
- No station management. Getting a new suite version onto every station is left to your own process.
Feature Comparison
| Feature | Robot Framework | TofuPilot Framework |
|---|---|---|
| Numeric measurements with units and limits | No | Yes |
| Curves and sweeps with per-axis validators | No | Yes |
| Parallel phases | Through Pabot, per suite or test | Yes, per phase |
| Multi-slot fixtures | No | Yes |
| Serial number scanning and unit identity | No | Yes |
| Yield, control charts and Cpk | No | Yes, in the dashboard |
| Deploy to stations | No | Git push, instant rollback |
| Keyword-driven syntax | Yes | No |
Running Robot Framework on TofuPilot
Choosing TofuPilot does not require rewriting .robot suites. The TofuPilot CLI runs them through Robot's Listener API v3: each test case becomes a phase, and logs flow to the dashboard. The bundled tofupilot_robot library adds keywords that keep the value, limits and unit of each measurement:
*** Settings ***Library tofupilot_robot*** Test Cases ***Rail 3V3 ${voltage}= Read Voltage Measure Numeric rail_3v3 ${voltage} min=3.2 max=3.4 unit=VPush the suite to your Git provider and import it from the New Procedure wizard to deploy it to stations. Details are in Robot Framework on TofuPilot.
Which to Choose
| Situation | Better fit |
|---|---|
Existing .robot suites, team fluent in keywords | Robot Framework, run on TofuPilot |
| Mixed software and device tests in one suite | Robot Framework, run on TofuPilot |
| New production test with instruments and limits | TofuPilot Framework |
| Fixtures with several units, cycle time matters | TofuPilot Framework |
| Waveforms judged on their shape | TofuPilot Framework |
For other options, see Open Source Test Executive Alternatives.
