# danielrebv/karateperformanceframework architecture

> Architecture diagram of the GitHub repository danielrebv/karateperformanceframework, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/danielrebv/karateperformanceframework
- Repository: https://github.com/danielrebv/karateperformanceframework

## Overview

FWKarate2xx is a Karate API-automation and Gatling performance-testing framework. Its documented user workflow is to run tagged API or performance scenarios; performance scenarios can define injection settings and select CSV data, while feeder utilities support sequential/random selection and correlation. The graph preserves the documented reporting capability and separates API execution from performance configuration and data handling. Source excerpts only include build configuration, so runtime calls and report-generation wiring are not verified; documented relationships cite the README.

Main entry points: [`src/test/resources/features`](https://github.com/danielrebv/karateperformanceframework/tree/master/src/test/resources/features) (API scenarios), [`src/test/java/performance/PerformanceSimulation.java`](https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/PerformanceSimulation.java) (Gatling simulation), [`src/test/java/performance/CsvUtils.java`](https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/CsvUtils.java) (CSV feeder utility), [`src/test/java/runners/ApiRunner.java`](https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/runners/ApiRunner.java) (API runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API automation"]
  node_api_runner["API runner<br/>[ApiRunner.java]"]
  node_api_features["API scenarios"]
end

subgraph group_perf["Performance testing"]
  node_performance_runner["Gatling simulation"]
  node_performance_config["Performance config"]
  node_injection_config["Injection config"]
end

subgraph group_data["Performance data"]
  node_csv_utils["CSV feeder utility<br/>[CsvUtils.java]"]
  node_feeder_files["Feeder CSVs"]
  node_seed_files["Seed CSVs"]
end

subgraph group_reporting["Reporting"]
  node_reports["HTML reports"]
end

node_engineer(("Test engineer"))
node_api_target{{"API under test"}}

node_engineer -->|"runs API tests"| node_api_runner
node_api_runner -.->|"executes scenarios"| node_api_features
node_api_features -.->|"tests API"| node_api_target
node_engineer -->|"runs performance tests"| node_performance_runner
node_performance_runner -.->|"uses configuration"| node_performance_config
node_performance_config -.->|"defines injection"| node_injection_config
node_api_features -->|"selects feeder rows"| node_csv_utils
node_csv_utils -.->|"reads CSV data"| node_feeder_files
node_csv_utils -.->|"uses seed data"| node_seed_files
node_performance_runner -->|"produces reports"| node_reports

click node_api_runner "https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/runners/ApiRunner.java"
click node_api_features "https://github.com/danielrebv/karateperformanceframework/tree/master/src/test/resources/features"
click node_performance_runner "https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/PerformanceSimulation.java"
click node_performance_config "https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/PerformanceConfig.java"
click node_injection_config "https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/InjectionConfig.java"
click node_csv_utils "https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/CsvUtils.java"
click node_feeder_files "https://github.com/danielrebv/karateperformanceframework/tree/master/src/test/resources/performance/feeders"
click node_seed_files "https://github.com/danielrebv/karateperformanceframework/tree/master/src/test/resources/performance/seeds"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_api_runner,node_api_features toneBlue
class node_performance_runner,node_performance_config,node_injection_config toneAmber
class node_csv_utils,node_feeder_files,node_seed_files,node_api_target toneMint
class node_reports toneRose
class node_engineer toneIndigo
```

## Components

### API automation

- [API runner](https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/runners/ApiRunner.java): `src/test/java/runners/ApiRunner.java`
- [API scenarios](https://github.com/danielrebv/karateperformanceframework/tree/master/src/test/resources/features): `src/test/resources/features`

### Performance testing

- [Gatling simulation](https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/PerformanceSimulation.java): `src/test/java/performance/PerformanceSimulation.java`
- [Performance config](https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/PerformanceConfig.java): `src/test/java/performance/PerformanceConfig.java`
- [Injection config](https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/InjectionConfig.java): `src/test/java/performance/InjectionConfig.java`

### Performance data

- [CSV feeder utility](https://github.com/danielrebv/karateperformanceframework/blob/master/src/test/java/performance/CsvUtils.java): `src/test/java/performance/CsvUtils.java`
- [Feeder CSVs](https://github.com/danielrebv/karateperformanceframework/tree/master/src/test/resources/performance/feeders): `src/test/resources/performance/feeders`
- [Seed CSVs](https://github.com/danielrebv/karateperformanceframework/tree/master/src/test/resources/performance/seeds): `src/test/resources/performance/seeds`

### Reporting

- **HTML reports**

### Other components

- **Test engineer**
- **API under test**

## Connections

- Test engineer → API runner: runs API tests (evidence: `README.md`)
- API runner → API scenarios: executes scenarios
- API scenarios → API under test: tests API
- Test engineer → Gatling simulation: runs performance tests (evidence: `README.md`)
- Gatling simulation → Performance config: uses configuration
- Performance config → Injection config: defines injection
- API scenarios → CSV feeder utility: selects feeder rows (evidence: `README.md`)
- CSV feeder utility → Feeder CSVs: reads CSV data
- CSV feeder utility → Seed CSVs: uses seed data
- Gatling simulation → HTML reports: produces reports (evidence: `README.md`)
