Metadata-Version: 2.4
Name: rpa-runner
Version: 0.1.3
Summary: A library and runner for executing Robot Framework tasks in parallel using JSON configuration.
Home-page: https://github.com/chiencse/rpa-sap-mock
Author: Minh Chien
Classifier: Framework :: Robot Framework
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: robotframework>=6.0.0
Requires-Dist: robotframework-pabot>=2.16.0
Requires-Dist: python-socketio[client]>=5.0.0
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# RPA Runner

This package provides a mechanism to execute Robot Framework tasks defined in JSON format with support for `PARALLEL` blocks, and a `Run Parallel` keyword for parallel execution.

## Installation

```bash
pip install .
```

## Usage

### Command Line Runner

The package provides a command-line tool `rpa-runner` (or `python -m rpa_runner.runner`) to execute JSON test definitions.

```bash
rpa-runner test_parallel.json --outputdir results
```

### Built-in Listeners

The library includes a `ProbeListener` for real-time reporting via Socket.IO.

```bash
rpa-runner test_parallel.json --listener rpa_runner.listeners.ProbeListener
```

### JSON Format & Parallel Execution

The runner automatically transforms `PARALLEL` blocks in your JSON test definition into calls to the `Run Parallel` keyword, which uses `pabot` under the hood.

```json
{
  "name": "My Suite",
  "tests": [
    {
      "name": "Test 1",
      "body": [
        {
          "type": "PARALLEL",
          "branches": [
            {
              "name": "Concurrent A",
              "body": [{ "name": "Log", "args": ["Running A"] }]
            }
          ]
        }
      ]
    }
  ]
}
```

### Library Usage

You can also use the library directly in Robot Framework:

```robot
*** Settings ***
Library    rpa_runner
```
