Skip to main content

Quick Start

This guide will get you up and running with Rumour in 5 minutes.

Get the Code & Run the Examples

All requests, configurations, environments, and test suites used in this guide are ready-to-run in the official Rumour Testing Examples GitHub Repository. Clone it directly to follow along:

git clone https://github.com/swahira/rumour_testing.git
cd rumour_testing/getting_started

Rumour is a file-based API workflow engine that allows you to define, execute, and chain API requests using simple TOML files.

Create Your First Request

Set Up Your Workspace Root

Before proceeding, it is highly recommended to create a workspace.env.toml file at the root of your project folder. This file acts as your workspace boundary, enabling Rumour to automatically resolve variables and chain dependencies from any subfolder depth.

Create a file named hello.toml:

[request]
method = "GET"
url = "https://httpbin.org/get"

[assert]
status = 200

This request sends a simple GET request and verifies that the response status code is 200.

Run Your First Request

Execute the request:

rumour run hello.toml

Expected output:

~/workspace/testing/getting_started ❯ rumour run hello.toml
GET https://httpbin.org/get
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/hello.toml (1448ms)
✓ hello.toml → PASS (1 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 1
│ Successful: 1
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 1452ms │
╰──────────────────────────────────────────────────────────────────────────╯

Actionable Recommendations:
→ Use -v -t to see detailed latency and response diagnostics.
→ Run with --json to export this report for your CI/CD pipeline.

Understanding the Output

Let's break down the key parts of the Rumour execution output:

1. Request Header & Method

GET https://httpbin.org/get

This displays the HTTP method (GET, POST, etc.) and the target URL that Rumour executed.

2. Request Assertion Summary

✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/hello.toml (1448ms)

Displays whether the request succeeded or failed, the absolute path to the executed request TOML, and the round-trip response time (1448ms).

3. Execution Detail

✓ hello.toml → PASS (1 Pass, 0 Fail, 0 Skip)

Shows the filename along with the test result summary:

  • PASS (Green): All assertions succeeded.
  • FAIL (Red): One or more assertions failed.
  • SKIP (Yellow): The request was skipped.
  • A detailed assertion breakdown: (X Pass, Y Fail, Z Skip).

4. Rumour Execution Report

A beautifully formatted ASCII table summarizing the entire run:

  • Total Requests: The total count of request files executed.
  • Successful: Number of files that passed.
  • Failed / Skipped: Counts of failed or skipped requests.
  • Success Rate: The percentage of requests that passed.
  • Total Time: The total time taken for the entire execution.

5. Actionable Recommendations

Helpful dynamically-generated hints suggesting command line flags to optimize your workflow:

  • Use verbose mode (-v -t) for detailed response body and latency diagnostics.
  • Run with --json to export a clean JSON report for CI/CD pipelines.

Extract and Reuse Variables

Rumour can automatically extract values from responses and reuse them in subsequent requests.

Create login.toml:

[request]
method = "POST"
url = "https://httpbin.org/post"

[body]
raw = '{"username":"test","password":"secret","access_token":"mock-token-xyz"}'

[extract]
token = "json.access_token"

Create profile.toml:

[request]
method = "GET"
url = "https://httpbin.org/headers"

[headers]
"Authorization" = "Bearer {{token}}"

The extracted token variable becomes automatically available to other requests in the workflow.

Run a Workflow

Place both files inside a directory:

getting_started/
├── hello.toml
├── login.toml
└── profile.toml

Run the workflow:

rumour run ./getting_started/

Expected output:

GET https://httpbin.org/get
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/hello.toml (1444ms)
POST https://httpbin.org/post
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/login.toml (1346ms)
GET https://httpbin.org/headers
Header: Authorization: Bearer mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/profile.toml (518ms)
. → PASS (3 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 3
│ Successful: 3
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 3322ms │
╰──────────────────────────────────────────────────────────────────────────╯

Actionable Recommendations:
→ Use -v -t to see detailed latency and response diagnostics.
→ Run with --json to export this report for your CI/CD pipeline.

How Rumour Coordinates Your Workflow

When you executed rumour run ./getting_started/, Rumour automatically resolved the dependencies between your requests and executed them in the correct logical order:

  1. Automatic Variable Chaining: Rumour detected that login.toml extracts the token variable, and profile.toml consumes it in its headers. It automatically scheduled login.toml to execute first.
  2. Dynamic Insertion: Rumour successfully resolved the variable {{token}} to the dynamically extracted "mock-token-xyz" and transmitted it in the HTTP headers.

Running profile.toml Individually

Let's assume you've only run profile.toml without running the login.toml first, which is responsible for producing the token variable used in profile.toml.

Let's see what happens when we run profile.toml individually:

rumour run profile.toml -y

Expected output:

~/workspace/testing/getting_started master* ❯ rumour run profile.toml -y
POST https://httpbin.org/post
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/login.toml (1028ms)
GET https://httpbin.org/headers
Header: Authorization: Bearer mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/profile.toml (251ms)
✓ profile.toml → PASS (2 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 2
│ Successful: 2
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 1283ms │
╰──────────────────────────────────────────────────────────────────────────╯

Actionable Recommendations:
→ Use -v -t to see detailed latency and response diagnostics.
→ Run with --json to export this report for your CI/CD pipeline.

Implicit Auto-Discovery

Even though you only ran a single file (profile.toml), Rumour automatically discovered that login.toml was required to resolve the token variable, and executed both files in the correct order. Rumour automatically scans your workspace directory to find the requests that produce the variables your test needs, executing them seamlessly.

In large, enterprise-grade workspaces, you might have multiple different request files producing the exact same variable name (e.g. login_user.toml, login_admin.toml, or oauth.toml).

To prevent naming collisions, establish strict determinism, and maintain bulletproof execution logic, you can define an explicit [[dependencies]] block.

Update your profile.toml to:

[request]
method = "GET"
url = "https://httpbin.org/headers"

[headers]
"Authorization" = "Bearer {{token}}"

[[dependencies]]
consumer_var = "token"
producer_id = "login" # login.toml -> you can refer to it as login

or

[request]
method = "GET"
url = "https://httpbin.org/headers"

[headers]
"Authorization" = "Bearer {{token}}"

[dependencies]
"./login.toml" = ["token"]

Let's run profile.toml individually again:

rumour run profile.toml -y

Expected Output:

~/workspace/testing/getting_started master* ❯ rumour run profile.toml -y
POST https://httpbin.org/post
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/login.toml (992ms)
GET https://httpbin.org/headers
Header: Authorization: Bearer mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/profile.toml (279ms)
✓ profile.toml → PASS (2 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 2
│ Successful: 2
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 1275ms │
╰──────────────────────────────────────────────────────────────────────────╯

Actionable Recommendations:
→ Use -v -t to see detailed latency and response diagnostics.
→ Run with --json to export this report for your CI/CD pipeline.

Explicit Dependency Behavior

Configuring an explicit dependency ensures that Rumour knows exactly which file to execute first, guaranteeing 100% stable, deterministic behavior across large workspaces.

Use Environment Variables

Create an environment file named workspace.env.toml in your directory:

[variables]
base_url = "https://httpbin.org"
api_key = "your-api-key"

or

base_url = "https://httpbin.org"
api_key = "your-api-key"

Next, create the request file variable_test.toml that references these variables:

[request]
method = "GET"
url = "{{base_url}}/headers"

[headers]
"X-Api-Key" = "{{api_key}}"

Run the request and supply the environment configuration file using the -e flag:

rumour run variable_test.toml -y

or

rumour run variable_test.toml -e workspace.env.toml

Expected Output:

~/workspace/testing/getting_started master* ❯ rumour run variable_test.toml -y

⚠ Warning: Some variables are missing and will cause failures.
GET https://httpbin.org/headers
Header: X-Api-Key: your-api-key
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/variable_test.toml (1032ms)
✓ variable_test.toml → PASS (1 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 1
│ Successful: 1
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 1033ms │
╰──────────────────────────────────────────────────────────────────────────╯

Actionable Recommendations:
→ Use -v -t to see detailed latency and response diagnostics.
→ Run with --json to export this report for your CI/CD pipeline.

Dynamic CLI Overrides

If you need to quickly override any of your environment variables at runtime without modifying the TOML file, you can supply dynamic variable overrides directly from the command line using the -V flag:

  1. The Standard Command (with explicit environment file):
rumour run variable_test.toml -e workspace.env.toml -V base_url=https://httpbin.org -V api_key=runtime-override-secret

Rumour will merge these overrides at runtime with top-priority precedence, ensuring highly flexible testing workflows!

Expected Output:

~/workspace/testing/getting_started master* ❯ rumour run variable_test.toml -e workspace.env.toml -V base_url=https://httpbin.org -V api_key=runtime-override-secret

GET https://httpbin.org/headers
Header: X-Api-Key: runtime-override-secret
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/variable_test.toml (981ms)
✓ variable_test.toml → PASS (1 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 1
│ Successful: 1
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 982ms │
╰──────────────────────────────────────────────────────────────────────────╯

Actionable Recommendations:
→ Use -v -t to see detailed latency and response diagnostics.
→ Run with --json to export this report for your CI/CD pipeline.
  1. The Clean Command (leveraging Rumour's Workspace Auto-Discovery): Since workspace.env.toml is stored at the root of your workspace, Rumour automatically detects and loads it without requiring the -e flag! You can run:
rumour run variable_test.toml -V base_url=https://httpbin.org -V api_key=runtime-override-secret

Expected Output:

~/workspace/testing/getting_started master* ❯ rumour run variable_test.toml -V base_url=https://httpbin.org -V api_key=runtime-override-secret

GET https://httpbin.org/headers
Header: X-Api-Key: runtime-override-secret
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/variable_test.toml (1178ms)
✓ variable_test.toml → PASS (1 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 1
│ Successful: 1
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 1180ms │
╰──────────────────────────────────────────────────────────────────────────╯

Actionable Recommendations:
→ Use -v -t to see detailed latency and response diagnostics.
→ Run with --json to export this report for your CI/CD pipeline.

Common Commands

Quiet Mode

Minimal output:

rumour run hello.toml -q

Output:

PASS hello.toml

or If execution failed

FAIL hello.toml

Verbose Mode

Detailed execution diagnostics:

rumour run ./getting_started/ -v

Expected output:

~/workspace/testing/getting_started master* ❯ rumour run . -v
GET https://httpbin.org/get
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/hello.toml (1016ms)
POST https://httpbin.org/post
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/login.toml (241ms)
GET https://httpbin.org/headers
Header: Authorization: Bearer mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/profile.toml (251ms)
GET https://httpbin.org/headers
Header: X-Api-Key: mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/variable_test.toml (242ms)
. → PASS (4 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 4
│ Successful: 4
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 1761ms │
╰──────────────────────────────────────────────────────────────────────────╯

✓ Successful Requests:
- /home/bugsfounder/workspace/testing/getting_started/hello.toml [200] [1018ms]
- /home/bugsfounder/workspace/testing/getting_started/login.toml [200] [244ms]
- /home/bugsfounder/workspace/testing/getting_started/profile.toml [200] [253ms]
- /home/bugsfounder/workspace/testing/getting_started/variable_test.toml [200] [244ms]

Actionable Recommendations:
→ Run with --json to export this report for your CI/CD pipeline.

Trace & Verbose Mode

Faliour trace will be shown in trace mode.

rumour run . -tv
~/workspace/testing/getting_started master* ❯ rumour run . -tv
GET https://httpbin.org/get
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/hello.toml (1022ms)
POST https://httpbin.org/post
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/login.toml (465ms)
GET https://httpbin.org/headers
Header: Authorization: Bearer mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/profile.toml (250ms)
GET https://httpbin.org/headers
Header: X-Api-Key: mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/variable_test.toml (907ms)
. → PASS (4 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 4
│ Successful: 4
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 2654ms │
╰──────────────────────────────────────────────────────────────────────────╯

✓ Successful Requests:
- /home/bugsfounder/workspace/testing/getting_started/hello.toml [200] [1024ms]
- /home/bugsfounder/workspace/testing/getting_started/login.toml [200] [466ms]
- /home/bugsfounder/workspace/testing/getting_started/profile.toml [200] [252ms]
- /home/bugsfounder/workspace/testing/getting_started/variable_test.toml [200] [910ms]

Actionable Recommendations:
→ Run with --json to export this report for your CI/CD pipeline.

Expected output when some error occur: in trace mode

~/workspace/testing/getting_started main ❯ rumour run . -tv
GET https://httpbin.org/json
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/assertion_test.toml (1016ms)
GET https://httpbin.org/getds
✗ FAILED: /home/bugsfounder/workspace/testing/getting_started/hello.toml (245ms) - HTTP Status: Expected status 200, got 404
↻ RETRYING: /home/bugsfounder/workspace/testing/getting_started/hello.toml (Attempt 1/2) [Wait 500ms]
GET https://httpbin.org/getds
✗ FAILED: /home/bugsfounder/workspace/testing/getting_started/hello.toml (248ms) - HTTP Status: Expected status 200, got 404
↻ RETRYING: /home/bugsfounder/workspace/testing/getting_started/hello.toml (Attempt 2/2) [Wait 1000ms]
GET https://httpbin.org/getds
✗ FAILED: /home/bugsfounder/workspace/testing/getting_started/hello.toml (246ms) - HTTP Status: Expected status 200, got 404
POST https://httpbin.org/post
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/login.toml (401ms)
GET https://httpbin.org/headers
Header: Authorization: Bearer mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/profile.toml (247ms)
GET https://httpbin.org/headers
Header: X-Api-Key: mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/variable_test.toml (310ms)
. → FAIL (4 Pass, 1 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 5
│ Successful: 4
│ Failed: 1
│ Skipped: 0
│ Success Rate: 80.0% │
│ Total Time: 4230ms │
╰──────────────────────────────────────────────────────────────────────────╯

✓ Successful Requests:
- /home/bugsfounder/workspace/testing/getting_started/assertion_test.toml [200] [1017ms]
- /home/bugsfounder/workspace/testing/getting_started/login.toml [200] [403ms]
- /home/bugsfounder/workspace/testing/getting_started/profile.toml [200] [249ms]
- /home/bugsfounder/workspace/testing/getting_started/variable_test.toml [200] [312ms]

✗ Failed Requests:
- /home/bugsfounder/workspace/testing/getting_started/hello.toml: [404]
Reason: HTTP Status: Expected status 200, got 404
Message: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>


Actionable Recommendations:
→ Run with -H (Self-Healing) to attempt automatic recovery of failing nodes.

Parallel Execution

Run independent requests concurrently:

rumour run ./getting_started/ -p

Self-Healing

Enable soft recovery (automatic variable patching and interactive retries) from failures:

rumour run ./getting_started/ -H

Enable hard recovery (reconstructing missing resources on 404 Not Found by re-triggering upstream producer requests):

rumour run ./getting_started/ -X

Rich Response Assertions

Rumour supports declarative, robust assertions directly in your TOML files. You can assert on status codes, request durations, body contents, JSON paths, and headers.

Create a file named assertion_test.toml to test this out:

[request]
method = "GET"
url = "https://httpbin.org/json"

[assert]
# 1. Status Code & Ranges
status = 200 # Expect exact status code 200
status_range = "200-299" # OR assert status is within a range

# 2. Performance / Latency SLA
duration = 1500 # Expect request to complete in less than 1500ms

# 3. Raw Body Search
body_contains = "slideshow" # Expect the raw body text to contain this string

# 4. JSON Response Assertions (using JSON paths as keys)
[assert.json."slideshow.author"]
equal = "Yours Truly" # Expect exact field match

[assert.json."slideshow.slides"]
exists = true # Verify that a path/array exists in the response

# Slide [0] title contains "Wake up" (Wakes up to WonderWidgets!)
[assert.json."slideshow.slides.[0].title"]
contains = "Wake up" # Expect substring match inside JSON strings

# Slide [1] title contains "Overview"
[assert.json."slideshow.slides.[1].title"]
contains = "Overview"

# 5. Header Assertions (matched case-insensitively!)
[assert.headers."Content-Type"]
contains = "application/json" # Expect header value to contain 'application/json'

[assert.headers."Server"]
regex = "^gunicorn" # Validate headers with a regular expression

Run this file to see how Rumour evaluates your test conditions:

rumour run assertion_test.toml -v

Expected Output:

~/workspace/testing/getting_started master* ❯ rumour run assertion_test.toml -v
GET https://httpbin.org/json
✗ FAILED: /home/bugsfounder/workspace/testing/getting_started/assertion_test.toml (1548ms) - Performance SLA: Duration 1548ms exceeds limit of 1500ms
↻ RETRYING: /home/bugsfounder/workspace/testing/getting_started/assertion_test.toml (Attempt 1/2) [Wait 500ms]
GET https://httpbin.org/json
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/assertion_test.toml (230ms)
✓ assertion_test.toml → PASS (1 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 1
│ Successful: 1
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 2283ms │
╰──────────────────────────────────────────────────────────────────────────╯

✓ Successful Requests:
- /home/bugsfounder/workspace/testing/getting_started/assertion_test.toml [200] [2283ms]

Actionable Recommendations:
→ Run with --json to export this report for your CI/CD pipeline.

Suite

A Suite in Rumour allows you to organize multiple test files, directories of requests, and even nested suites into a unified execution plan. Suites support shared suite-level variables and automatic topological scheduling.

Create a file named getting_started.suite.toml to group your request workflows:

[suite]
name = "Core API Workflows & Assertions Suite"
description = "Executes the main suite verifying authorization tokens, profile lookups, and rich response assertions."

ordered = true # Run sequentially in the defined order

requests = [
"../getting_started/login.toml",
"../getting_started/profile.toml",
"../getting_started/assertion_test.toml",
"../getting_started/variable_test.toml",
]

[variables]
base_url = "https://httpbin.org"
api_key = "suite-level-token-override"
rumour run getting_started.suite.toml -y
~/workspace/testing/test_suites master* ❯ rumour run getting_started.suite.toml -y
POST https://httpbin.org/post
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/login.toml (1024ms)
GET https://httpbin.org/headers
Header: Authorization: Bearer mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/profile.toml (318ms)
GET https://httpbin.org/json
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/assertion_test.toml (251ms)
GET https://httpbin.org/headers
Header: X-Api-Key: mock-token-xyz
✓ SUCCESS: /home/bugsfounder/workspace/testing/getting_started/variable_test.toml (241ms)
✓ getting_started.suite.toml → PASS (4 Pass, 0 Fail, 0 Skip)
╭──────────────────────────────────────────────────────────────────────────╮
│ RUMOUR EXECUTION REPORT │
├──────────────────────────────────────────────────────────────────────────┤
│ Total Requests: 4
│ Successful: 4
│ Failed: 0
│ Skipped: 0
│ Success Rate: 100.0% │
│ Total Time: 1843ms │
╰──────────────────────────────────────────────────────────────────────────╯

Actionable Recommendations:
→ Use -v -t to see detailed latency and response diagnostics.
→ Run with --json to export this report for your CI/CD pipeline.

Suite Options Reference

OptionTypeDescription
nameString (Required)The human-readable name of the suite shown in execution reports.
descriptionString (Optional)Detailed summary explaining what the suite validates.
orderedBoolean (Default: true)Ensures requests execute sequentially.
requestsArray of StringsList of file paths, directories, or nested suites (.suite.toml) to execute.
variablesMap (Optional)Suite-level variables that are injected and shared across all request nodes.
Intelligent Directory Discovery & Deduplication
  • Auto-Discovery: When you specify a directory (e.g., requests = ["../getting_started/"]), Rumour automatically scans the folder recursively, discovers all .toml files, and sorts them alphabetically.
  • Automatic Deduplication: If a request is listed multiple times (for example, once individually and once as part of a directory), Rumour automatically deduplicates it. The file is parsed only once and executed exactly once.
  • Dependency Resolution Guard: The scheduler automatically verifies that the execution sequence matches your variable dependency flows, preventing conflicts and ensuring successful, non-blocking execution.

Next Steps

Now that you know the basics of Rumour, keep exploring: