Enterprise Workflow
Welcome to the Enterprise Workflow documentation!
When running API suites in a mature DevOps environment, you need more than just simple sequential testing. Tests must be fast, resilient to transient failures, and produce machine-readable outputs for your pipelines.
This example demonstrates how to combine Rumour's advanced features—Data-Driven Testing, Parallel Execution, Performance SLAs, and JUnit reporting—into a single, massive integration test suitable for an enterprise CI/CD pipeline.
1. The Scenario
We are testing a high-throughput /transactions endpoint. We have a CSV file containing 5,000 distinct financial transactions.
Our enterprise requirements are:
- Every transaction must be processed.
- The endpoint must respond within a
500msstrict SLA. - Because 5,000 sequential requests would take too long, we must run them in parallel.
- Any random network drops should auto-heal to prevent flaky CI failures.
- The final output must be uploaded to Jenkins/GitHub Actions as a JUnit XML file.
2. Preparing the Artifacts
The Dataset (transactions.csv)
account_id,amount,currency
acc_881,150.00,USD
acc_992,20.50,EUR
# ... 4,998 more rows
The Request (process_transaction.toml)
We define a performance assertion (duration) alongside our standard status and JSON validation logic.
name = "Process Financial Transaction"
[request]
method = "POST"
url = "{{base_url}}/transactions"
[body]
type = "json"
raw = '{"account": "{{account_id}}", "total": {{amount}}, "currency": "{{currency}}"}'
[assert]
status = 201
"json.status" = { equal = "PROCESSED" }
# Enterprise SLA requirement
duration = 500
3. The Enterprise CLI Invocation
We combine several CLI flags to execute this massively parallel test suite.
rumour run ./process_transaction.toml \
--data ./transactions.csv \
--parallel \
--concurrency 100 \
--heal \
--junit ./results/test-report.xml \
-v
Breakdown of Flags:
--data: Triggers the dynamic workflow to loop over all 5,000 rows.--parallel(-p): Tells Rumour not to wait for Row 1 to finish before starting Row 2.--concurrency 100: Caps the number of simultaneous active TCP connections to100to prevent DDoS-ing the staging server.--heal(-H): Enables exponential backoff and soft-healing if the staging server momentarily throttles connections (e.g., 429 Too Many Requests).--junit: Silently generates a pipeline-compatible XML report.-v: Prints the human-readable summary.
4. Pipeline Integration
Once the run completes, the terminal will output the standard Rumour summary, and results/test-report.xml will be generated.
GitHub Actions Example
You can seamlessly drop this Rumour invocation into a standard GitHub Actions workflow:
name: Enterprise Integration Tests
on:
push:
branches: [ "main" ]
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rumour
run: curl -sSfL https://rumour.swahira.io/install.sh | bash
- name: Run Massive Data Suite
run: |
rumour run ./tests/process_transaction.toml \
--data ./tests/transactions.csv \
-p --concurrency 100 -H \
--junit results.xml
- name: Publish Test Results
uses: dorny/test-results-action@v1
if: always()
with:
name: Rumour SLA Tests
path: results.xml
reporter: java-junit
By leveraging Rumour's high-performance compiled execution engine and dependency graph, what would normally be a 45-minute sequential test suite can be completed in under a minute, with strict SLA guarantees and full CI/CD dashboarding.