@n8n/n8n-benchmark
Version:
Cli for running benchmark tests for n8n
47 lines • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@oclif/core");
const config_1 = require("../config/config");
const scenarioLoader_1 = require("../scenario/scenarioLoader");
const scenarioRunner_1 = require("../testExecution/scenarioRunner");
const n8nApiClient_1 = require("../n8nApiClient/n8nApiClient");
const scenarioDataLoader_1 = require("../scenario/scenarioDataLoader");
const k6Executor_1 = require("../testExecution/k6Executor");
class RunCommand extends core_1.Command {
async run() {
const config = await this.loadConfigAndMergeWithFlags();
const scenarioLoader = new scenarioLoader_1.ScenarioLoader();
const scenarioRunner = new scenarioRunner_1.ScenarioRunner(new n8nApiClient_1.N8nApiClient(config.get('n8n.baseUrl')), new scenarioDataLoader_1.ScenarioDataFileLoader(), new k6Executor_1.K6Executor({
k6ExecutablePath: config.get('k6.executablePath'),
k6ApiToken: config.get('k6.apiToken'),
n8nApiBaseUrl: config.get('n8n.baseUrl'),
}), {
email: config.get('n8n.user.email'),
password: config.get('n8n.user.password'),
}, config.get('scenarioNamePrefix'));
const allScenarios = scenarioLoader.loadAll(config.get('testScenariosPath'));
await scenarioRunner.runManyScenarios(allScenarios);
}
async loadConfigAndMergeWithFlags() {
const config = (0, config_1.loadConfig)();
const { flags } = await this.parse(RunCommand);
if (flags.scenarioNamePrefix) {
config.set('scenarioNamePrefix', flags.scenarioNamePrefix);
}
return config;
}
}
RunCommand.description = 'Run all (default) or specified test scenarios';
RunCommand.flags = {
scenarios: core_1.Flags.string({
char: 't',
description: 'Comma-separated list of test scenarios to run',
required: false,
}),
scenarioNamePrefix: core_1.Flags.string({
description: 'Prefix for the scenario name. Defaults to Unnamed',
required: false,
}),
};
exports.default = RunCommand;
//# sourceMappingURL=run.js.map