UNPKG

@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
"use strict"; 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;