@gatling.io/cli
Version:
Gatling JS is a JavaScript/TypeScript interface for the [Gatling load testing tool](https://gatling.io/).
100 lines (99 loc) • 4.85 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const options_1 = require("./options");
const simulations_1 = require("../simulations");
const dependencies_1 = require("../dependencies");
const bundle_1 = require("../bundle");
const enterprise_1 = require("../enterprise");
exports.default = (program) => {
program
.command("enterprise-start")
.description("Start a simulation deployed with `enterprise-deploy`")
.addOption(options_1.sourcesFolderOption)
.addOption(options_1.protoFolderOption)
.addOption(options_1.resourcesFolderOption)
.addOption(options_1.bundleFileOption)
.addOption(options_1.protoTargetFolderOption)
.addOption(options_1.resultsFolderOption)
.addOption(options_1.postmanOption)
.addOption(options_1.typescriptOption)
.addOption(options_1.gatlingHomeOption)
// Base
.addOption(options_1.apiUrlOption)
.addOption(options_1.webAppUrlOption)
.addOption(options_1.apiTokenOption)
// Plugin configuration
.addOption(options_1.controlPlaneUrlOption)
.addOption(options_1.trustStoreOption)
.addOption(options_1.trustStorePasswordOption)
.addOption(options_1.nonInteractiveOption)
// Descriptor file
.addOption(options_1.packageDescriptorFilenameOption)
// Deployment info
.addOption(options_1.packageFileOption)
// Start
.addOption(options_1.enterpriseSimulationOption)
.addOption(options_1.runTitleOption)
.addOption(options_1.runDescriptionOption)
.addOption(options_1.waitForRunEndOption)
.action(async (options) => {
const sourcesFolder = (0, options_1.sourcesFolderOptionValue)(options);
const protoFolder = (0, options_1.protoFolderOptionValue)(options);
const simulations = await (0, simulations_1.findSimulations)(sourcesFolder);
const postman = (0, options_1.postmanOptionValueWithDefaults)(options);
const typescript = (0, options_1.typescriptOptionValueWithDefaults)(options, simulations);
const resourcesFolder = (0, options_1.resourcesFolderOptionValue)(options);
const bundleFile = (0, options_1.bundleFileOptionValue)(options);
const protoTargetFolder = (0, options_1.protoTargetFolderOptionValue)(options);
const resultsFolder = (0, options_1.resultsFolderOptionValue)(options);
const gatlingHome = (0, options_1.gatlingHomeOptionValueWithDefaults)(options);
const apiUrl = (0, options_1.apiUrlOptionValue)(options);
const webAppUrl = (0, options_1.webAppUrlOptionValue)(options);
const apiToken = (0, options_1.apiTokenOptionValue)(options);
const controlPlaneUrl = (0, options_1.controlPlaneUrlOptionValue)(options);
const trustStore = (0, options_1.trustStoreOptionValue)(options);
const trustStorePassword = (0, options_1.trustStorePasswordOptionValue)(options);
const nonInteractive = (0, options_1.nonInteractiveOptionValue)(options);
const packageDescriptorFilename = (0, options_1.packageDescriptorFilenameOptionValue)(options);
const packageFile = (0, options_1.packageFileOptionValue)(options);
const enterpriseSimulation = (0, options_1.enterpriseSimulationOptionValue)(options);
const runTitle = (0, options_1.runTitleOptionValue)(options);
const runDescription = (0, options_1.runDescriptionOptionValue)(options);
const waitForRunEnd = (0, options_1.waitForRunEndOptionValue)(options);
if ((0, options_1.nonInteractiveOptionValue)(options) && enterpriseSimulation === undefined) {
throw new Error(`No simulation specified when using non-interactive mode`);
}
const { graalvmHome, jvmClasspath, protocPath } = await (0, dependencies_1.resolveBundle)({ gatlingHome });
await (0, bundle_1.bundle)({
sourcesFolder,
protoFolder,
bundleFile,
protoTargetFolder,
postman,
typescript,
simulations,
protocPath
});
await (0, enterprise_1.enterprisePackage)({ bundleFile, resourcesFolder, protoTargetFolder, packageFile, postman, simulations });
await (0, enterprise_1.enterpriseStart)({
graalvmHome,
jvmClasspath,
bundleFile,
resourcesFolder,
resultsFolder,
apiUrl,
webAppUrl,
apiToken,
controlPlaneUrl,
trustStore,
trustStorePassword,
nonInteractive,
packageDescriptorFilename,
packageFile,
enterpriseSimulation,
runTitle,
runDescription,
waitForRunEnd
});
});
};