mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-13 16:14:07 -08:00
.. | ||
bin | ||
infra | ||
scenarios | ||
scripts | ||
src | ||
.eslintrc.js | ||
.gitignore | ||
Dockerfile | ||
package.json | ||
README.md | ||
tsconfig.build.json | ||
tsconfig.json |
n8n benchmarking tool
Tool for executing benchmarks against an n8n instance.
Running 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
Running 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
# If you installed k6 using brew, you might have to specify it explicitly
K6_PATH=/opt/homebrew/bin/k6 N8N_USER_EMAIL=user@n8n.io N8N_USER_PASSWORD=password ./bin/n8n-benchmark run
Running in the cloud
There's a script to run the performance tests in a cloud environment. The script provisions a cloud environment, sets up n8n in the environment, runs the tests and destroys the environment.
pnpm run-in-cloud
Configuration
The configuration options the cli accepts can be seen from config.ts
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
k6
script which executes the steps and receivesAPI_BASE_URL
environment variable in runtime.
Available scenarios are located in ./scenarios
.