UNPKG

@n8n/n8n-benchmark

Version:

Cli for running benchmark tests for n8n

41 lines 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScenarioRunner = void 0; const scenarioDataImporter_1 = require("../testExecution/scenarioDataImporter"); const authenticatedN8nApiClient_1 = require("../n8nApiClient/authenticatedN8nApiClient"); class ScenarioRunner { constructor(n8nClient, dataLoader, k6Executor, ownerConfig, scenarioPrefix) { this.n8nClient = n8nClient; this.dataLoader = dataLoader; this.k6Executor = k6Executor; this.ownerConfig = ownerConfig; this.scenarioPrefix = scenarioPrefix; } async runManyScenarios(scenarios) { console.log(`Waiting for n8n ${this.n8nClient.apiBaseUrl} to become online`); await this.n8nClient.waitForInstanceToBecomeOnline(); console.log('Setting up owner'); await this.n8nClient.setupOwnerIfNeeded(this.ownerConfig); const authenticatedN8nClient = await authenticatedN8nApiClient_1.AuthenticatedN8nApiClient.createUsingUsernameAndPassword(this.n8nClient, this.ownerConfig); const testDataImporter = new scenarioDataImporter_1.ScenarioDataImporter(authenticatedN8nClient); for (const scenario of scenarios) { await this.runSingleTestScenario(testDataImporter, scenario); } } async runSingleTestScenario(testDataImporter, scenario) { const scenarioRunName = this.formTestScenarioRunName(scenario); console.log('Running scenario:', scenarioRunName); console.log('Loading and importing data'); const testData = await this.dataLoader.loadDataForScenario(scenario); await testDataImporter.importTestScenarioData(testData.workflows); console.log('Executing scenario script'); await this.k6Executor.executeTestScenario(scenario, { scenarioRunName, }); } formTestScenarioRunName(scenario) { return `${this.scenarioPrefix}-${scenario.name}`; } } exports.ScenarioRunner = ScenarioRunner; //# sourceMappingURL=scenarioRunner.js.map