mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
n8n benchmarking tool
Tool for executing benchmarks against an n8n instance. The tool consists of these components:
Directory structure
packages/@n8n/benchmark
├── scenarios Benchmark scenarios
├── src Source code for the n8n-benchmark cli
├── Dockerfile Dockerfile for the n8n-benchmark cli
├── scripts Orchestration scripts
Running the entire benchmark suite
The benchmark suite consists of benchmark scenarios and different n8n setups.
locally
pnpm benchmark-locally
In the cloud
pnpm benchmark-in-cloud
Running the n8n-benchmark cli
The n8n-benchmark cli is a node.js program that runs one or more scenarios against a single n8n instance.
Locally with Docker
Build the Docker image:
# Must be run in the repository root
# k6 doesn't have an arm64 build available for linux, we need to build against amd64
docker build --platform linux/amd64 -t n8n-benchmark -f packages/@n8n/benchmark/Dockerfile .
Run the image
docker run \
-e N8N_USER_EMAIL=user@n8n.io \
-e N8N_USER_PASSWORD=password \
# For macos, n8n running outside docker
-e N8N_BASE_URL=http://host.docker.internal:5678 \
n8n-benchmark
Locally without Docker
Requirements:
- k6
- Node.js v20 or higher
pnpm build
# Run tests against http://localhost:5678 with specified email and password
N8N_USER_EMAIL=user@n8n.io N8N_USER_PASSWORD=password ./bin/n8n-benchmark run
Benchmark scenarios
A benchmark scenario defines one or multiple steps to execute and measure. It consists of:
- Manifest file which describes and configures the scenario
- Any test data that is imported before the scenario is run
- A
k6script which executes the steps and receivesAPI_BASE_URLenvironment variable in runtime.
Available scenarios are located in ./scenarios.
n8n setups
A n8n setup defines a single n8n runtime configuration using Docker compose. Different n8n setups are located in ./scripts/n8nSetups.