@gatling.io/cli
Version:
Gatling JS is a JavaScript/TypeScript interface for the [Gatling load testing tool](https://gatling.io/).
56 lines (55 loc) • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.runRecorder = exports.runSimulation = void 0;
const log_1 = require("./log");
const dependencies_1 = require("./dependencies");
const java_1 = require("./java");
const runSimulation = async (options) => {
log_1.logger.info(`Running a Gatling simulation with options:
- simulation: ${options.simulation}
- bundleFile: ${options.bundleFile}
- resourcesFolder: ${options.resourcesFolder}
- resultsFolder: ${options.resultsFolder}`);
const additionalClasspathElements = [options.resourcesFolder, options.protoTargetFolder];
const jitTuningArgs = ["-XX:JVMCINativeLibraryThreadFraction=0.8", "-Djdk.graal.MethodInlineBailoutLimit=500"];
const memoryArgs = options.memory !== undefined ? [`-Xms${options.memory}M`, `-Xmx${options.memory}M`] : [];
const javaArgs = [
...Object.entries(options.runParameters).map(([key, value]) => `-D${key}=${value}`),
"--add-opens=java.base/java.lang=ALL-UNNAMED",
"--enable-native-access=ALL-UNNAMED",
"--sun-misc-unsafe-memory-access=allow",
`-Dgatling.js.bundle.filePath=${options.bundleFile}`,
`-Dgatling.js.simulation=${options.simulation}`,
"-Dpolyglot.engine.WarnVirtualThreadSupport=false",
...jitTuningArgs,
...memoryArgs
];
const simulationArgs = [
"--results-folder",
options.resultsFolder,
"--simulation",
"io.gatling.js.JsSimulation",
"--launcher",
"gatling-js-cli",
"--build-tool-version",
dependencies_1.versions.gatling.jsAdapter
];
return (0, java_1.runJavaProcess)(options, "io.gatling.app.Gatling", additionalClasspathElements, javaArgs, simulationArgs);
};
exports.runSimulation = runSimulation;
const runRecorder = async (options) => {
log_1.logger.info(`Running the Gatling Recorder with options:
- sourcesFolder: ${options.sourcesFolder}
- resourcesFolder: ${options.resourcesFolder}
- typescript: ${options.typescript}`);
const recorderArgs = [
"--simulations-folder",
options.sourcesFolder,
"--resources-folder",
options.resourcesFolder,
"--format",
options.typescript ? "typescript" : "javascript"
];
return (0, java_1.runJavaProcess)(options, "io.gatling.recorder.GatlingRecorder", [], [], recorderArgs);
};
exports.runRecorder = runRecorder;