k6ctl 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -0
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +14 -8
- package/dist/commands/run.js.map +1 -1
- package/dist/services/script.service.js +1 -1
- package/dist/services/script.service.js.map +1 -1
- package/dist/types/testRunManifest.types.d.ts +6 -0
- package/dist/types/testRunManifest.types.d.ts.map +1 -1
- package/dist/utils/testRunManifestBuilder.d.ts.map +1 -1
- package/dist/utils/testRunManifestBuilder.js +16 -0
- package/dist/utils/testRunManifestBuilder.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +11 -0
- package/src/commands/run.ts +16 -9
- package/src/services/script.service.ts +1 -1
- package/src/types/testRunManifest.types.ts +6 -0
- package/src/utils/testRunManifestBuilder.ts +16 -0
package/README.md
CHANGED
|
@@ -91,6 +91,42 @@ k6ctl run large-test-1.js --smart
|
|
|
91
91
|
|
|
92
92
|
`--smart` analyzes supported scenarios (currently `ramping-arrival-rate`) and automatically adjusts values such as recommended VUs and parallelism before submission.
|
|
93
93
|
|
|
94
|
+
Run using volume (PVC-backed flow):
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
k6ctl run large-test-1.js
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`k6ctl` switches to volume flow automatically when the generated k6 archive is larger than 1 MB. In this mode, it creates a PVC, uploads the archive through a temporary helper pod, and mounts that PVC in the TestRun.
|
|
101
|
+
|
|
102
|
+
There is no explicit `--volume` flag.
|
|
103
|
+
|
|
104
|
+
Recommended steps for volume flow:
|
|
105
|
+
|
|
106
|
+
1. Run your test as usual with `k6ctl run <script>`.
|
|
107
|
+
2. Confirm logs mention: `exceeds 1 MB, using volume flow`.
|
|
108
|
+
3. Check created resources:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
k6ctl status
|
|
112
|
+
kubectl get pvc -n <namespace>
|
|
113
|
+
kubectl get pods -n <namespace>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
4. Review pod logs when needed:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
k6ctl logs -n <namespace>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
5. Clean up resources after the run:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
k6ctl delete
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
By default, `k6ctl delete` removes both the TestRun and the associated script resource (ConfigMap or PVC). Use `--keep-script` only if you need to preserve the script resource.
|
|
129
|
+
|
|
94
130
|
Run options:
|
|
95
131
|
|
|
96
132
|
- `-c, --config <path>`: Path to config file (default: `k6ctl.config.json`)
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
7
|
const commander_1 = require("commander");
|
|
5
8
|
const run_1 = require("./commands/run");
|
|
@@ -8,6 +11,7 @@ const logs_1 = require("./commands/logs");
|
|
|
8
11
|
const status_1 = require("./commands/status");
|
|
9
12
|
const delete_1 = require("./commands/delete");
|
|
10
13
|
const package_json_1 = require("../package.json");
|
|
14
|
+
const logger_1 = __importDefault(require("./utils/logger"));
|
|
11
15
|
const program = new commander_1.Command();
|
|
12
16
|
program
|
|
13
17
|
.name('k6ctl')
|
|
@@ -22,6 +26,16 @@ program
|
|
|
22
26
|
.option('-v, --verbose', 'enable debug logging')
|
|
23
27
|
.option('-d, --dir <path>', 'Folder to search for .js test files', 'dist/tests')
|
|
24
28
|
.option('--smart', 'Enable smart scenario analysis')
|
|
29
|
+
.option('--default-vus-per-pod <number>', 'Default VUs per pod (requires --smart) (default: 200)')
|
|
30
|
+
.option('--max-iteration-duration <number>', 'Max iteration duration in seconds (requires --smart) (default: 30)')
|
|
31
|
+
.hook('preAction', (thisCommand) => {
|
|
32
|
+
const opts = thisCommand.opts();
|
|
33
|
+
if (!opts.smart && (opts.defaultVusPerPod || opts.maxIterationDuration)) {
|
|
34
|
+
logger_1.default.warn("Options '--default-vus-per-pod' and '--max-iteration-duration' require '--smart'");
|
|
35
|
+
thisCommand.outputHelp();
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
})
|
|
25
39
|
.action(run_1.runTest);
|
|
26
40
|
program
|
|
27
41
|
.command('list')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAA8C;AAC9C,wCAAyC;AACzC,0CAAuC;AACvC,0CAAuC;AACvC,8CAA2C;AAC3C,8CAAkD;AAClD,kDAA0C;AAC1C,4DAAoC;AAEpC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,0DAA0D,CAAC;KACvE,OAAO,CAAC,sBAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,4EAA4E,CAAC;KACzF,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,CAAC;KACzE,MAAM,CAAC,6BAA6B,EAAE,sBAAsB,CAAC;KAC7D,MAAM,CAAC,4BAA4B,EAAE,8BAA8B,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,kBAAkB,EAAE,qCAAqC,EAAE,YAAY,CAAC;KAC/E,MAAM,CAAC,SAAS,EAAE,gCAAgC,CAAC;KACnD,MAAM,CAAC,gCAAgC,EAAE,uDAAuD,CAAC;KACjG,MAAM,CAAC,mCAAmC,EAAE,oEAAoE,CAAC;KACjH,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACjC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxE,gBAAM,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;QAChG,WAAW,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;KACD,MAAM,CAAC,aAAO,CAAC,CAAC;AAEnB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oBAAoB,CAAC;KACjC,WAAW,CAAC,IAAI,oBAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/G,MAAM,CAAC,6BAA6B,EAAE,sBAAsB,EAAE,SAAS,CAAC;KACxE,MAAM,CAAC,WAAI,CAAC,CAAC;AAEhB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,6BAA6B,EAAE,8CAA8C,CAAC;KACrF,MAAM,CAAC,wBAAwB,EAAE,mCAAmC,CAAC;KACrE,MAAM,CAAC,WAAI,CAAC,CAAC;AAEhB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,6BAA6B,EAAE,8CAA8C,CAAC;KACrF,MAAM,CAAC,eAAM,CAAC,CAAC;AAElB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,6BAA6B,EAAE,8CAA8C,CAAC;KACrF,MAAM,CAAC,eAAe,EAAE,4DAA4D,CAAC;KACrF,MAAM,CAAC,kBAAkB,EAAE,yEAAyE,CAAC;KACrG,MAAM,CAAC,sBAAsB,EAAE,2DAA2D,CAAC;KAC3F,MAAM,CAAC,wBAAwB,EAAE,yFAAyF,CAAC;KAC3H,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/commands/run.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAsDA,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAsB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,iBAyHpE"}
|
package/dist/commands/run.js
CHANGED
|
@@ -44,8 +44,8 @@ const env_1 = require("../utils/env");
|
|
|
44
44
|
const logger_1 = __importStar(require("../utils/logger"));
|
|
45
45
|
const testRunManifestBuilder_1 = require("../utils/testRunManifestBuilder");
|
|
46
46
|
const lastRunStore_1 = require("../utils/lastRunStore");
|
|
47
|
-
const DEFAULT_VUS_PER_POD =
|
|
48
|
-
const
|
|
47
|
+
const DEFAULT_VUS_PER_POD = 200;
|
|
48
|
+
const MAX_ITERATION_DURATION = 30;
|
|
49
49
|
function listTestFiles(dir) {
|
|
50
50
|
if (!fs.existsSync(dir)) {
|
|
51
51
|
return [];
|
|
@@ -113,25 +113,31 @@ async function runTest(scriptPath, options) {
|
|
|
113
113
|
// Analyze script if smart option is enabled
|
|
114
114
|
if (options.smart) {
|
|
115
115
|
logger_1.default.info(`Analyzing script: ${scriptPath}`);
|
|
116
|
+
if (!options.defaultVusPerPod) {
|
|
117
|
+
options.defaultVusPerPod = DEFAULT_VUS_PER_POD;
|
|
118
|
+
}
|
|
119
|
+
if (!options.maxIterationDuration) {
|
|
120
|
+
options.maxIterationDuration = MAX_ITERATION_DURATION;
|
|
121
|
+
}
|
|
116
122
|
const inspectResult = await scriptService.inspectScript(scriptPath);
|
|
117
123
|
const scenarioMetrics = await analyzeScript(inspectResult);
|
|
118
124
|
if (scenarioMetrics) {
|
|
119
125
|
const estimatedTotalIterations = scenarioMetrics.reduce((sum, metrics) => sum + (metrics?.totalIterations ?? 0), 0);
|
|
120
126
|
const totalRecommendedMaxVUs = scenarioMetrics.reduce((sum, metrics) => sum + (metrics?.recommendedMaxVUs ?? 0), 0);
|
|
121
|
-
const parallelism = Math.ceil(totalRecommendedMaxVUs /
|
|
127
|
+
const parallelism = Math.ceil(totalRecommendedMaxVUs / (options.defaultVusPerPod)) || 1;
|
|
122
128
|
const peakTps = scenarioMetrics.reduce((max, metrics) => Math.max(max, metrics?.peakTps ?? 0), 0);
|
|
123
129
|
config.parallelism = parallelism;
|
|
124
130
|
logger_1.default.info(`Total recommendedMaxVUs: ${Math.ceil(totalRecommendedMaxVUs)}
|
|
125
|
-
based on scenario analysis and
|
|
131
|
+
based on scenario analysis and --max-iteration-duration=${(options.maxIterationDuration)} seconds
|
|
126
132
|
per iteration assumption with a safety factor of 1.2 applied to account for variability in iteration duration and ensure we have enough VUs
|
|
127
133
|
to meet the target TPS. This is an estimate and actual resource needs may vary based on the specific workload and environment.
|
|
128
134
|
Consider monitoring the test run and adjusting resources as needed.`);
|
|
129
|
-
logger_1.default.info(`Calculated parallelism: ${parallelism} (based on
|
|
135
|
+
logger_1.default.info(`Calculated parallelism: ${parallelism} (based on --default-vus-per-pod=${(options.defaultVusPerPod)})`);
|
|
130
136
|
logger_1.default.info(`Peak TPS: ${peakTps.toFixed(2)}`);
|
|
131
137
|
logger_1.default.info(`Estimated Total Iterations: ${Math.round(estimatedTotalIterations)}`);
|
|
132
|
-
logger_1.default.info(`Using
|
|
138
|
+
logger_1.default.info(`Using --max-iteration-duration=${(options.maxIterationDuration)} seconds`);
|
|
133
139
|
logger_1.default.info(`Using safety factor of 1.2 to calculate recommended VUs.`);
|
|
134
|
-
logger_1.default.info(`Using
|
|
140
|
+
logger_1.default.info(`Using --default-vus-per-pod=${(options.defaultVusPerPod)} to calculate parallelism.`);
|
|
135
141
|
// Extract, modify, and recompress the archive
|
|
136
142
|
archive = await scriptService.extractModifyAndRecompress(archive, scenarioMetrics);
|
|
137
143
|
}
|
|
@@ -194,7 +200,7 @@ async function analyzeScript(inspectResult) {
|
|
|
194
200
|
});
|
|
195
201
|
return allMetrics;
|
|
196
202
|
}
|
|
197
|
-
function calculateScenarioMetrics(name, scenario, avgIterationDurationSeconds =
|
|
203
|
+
function calculateScenarioMetrics(name, scenario, avgIterationDurationSeconds = MAX_ITERATION_DURATION, safetyFactor = 1.2) {
|
|
198
204
|
if (scenario.executor !== 'ramping-arrival-rate') {
|
|
199
205
|
return null;
|
|
200
206
|
}
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,7 +101,7 @@ class ScriptService {
|
|
|
101
101
|
}
|
|
102
102
|
async inspectScript(scriptPath) {
|
|
103
103
|
const { stdout, stderr } = await this.execCmd(`k6 inspect ${scriptPath}`);
|
|
104
|
-
if (stderr) {
|
|
104
|
+
if (stderr && stderr.includes('ERR')) {
|
|
105
105
|
logger_1.default.error(`Error inspecting script: ${stderr}`);
|
|
106
106
|
throw new Error(`Failed to inspect the script: ${stderr}`);
|
|
107
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.service.js","sourceRoot":"","sources":["../../src/services/script.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"script.service.js","sourceRoot":"","sources":["../../src/services/script.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testRunManifest.types.d.ts","sourceRoot":"","sources":["../../src/types/testRunManifest.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE;YACP,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC;YACrB,SAAS,CAAC,EAAE;gBACV,MAAM,EAAE;oBACN,GAAG,EAAE,MAAM,CAAA;oBACX,MAAM,EAAE,MAAM,CAAA;iBACf,CAAA;gBACD,QAAQ,EAAE;oBACR,GAAG,EAAE,MAAM,CAAA;oBACX,MAAM,EAAE,MAAM,CAAA;iBACf,CAAA;aACF,CAAA;SACF,CAAC;QACF,MAAM,EAAE;YACN,SAAS,CAAC,EAAE;gBACV,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;YACF,WAAW,CAAC,EAAE;gBACZ,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;aACd,CAAA;SACF,CAAC;KACH,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"testRunManifest.types.d.ts","sourceRoot":"","sources":["../../src/types/testRunManifest.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE;YACP,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC;YACrB,SAAS,CAAC,EAAE;gBACV,MAAM,EAAE;oBACN,GAAG,EAAE,MAAM,CAAA;oBACX,MAAM,EAAE,MAAM,CAAA;iBACf,CAAA;gBACD,QAAQ,EAAE;oBACR,GAAG,EAAE,MAAM,CAAA;oBACX,MAAM,EAAE,MAAM,CAAA;iBACf,CAAA;aACF,CAAC;YACF,eAAe,CAAC,EAAE;gBAChB,OAAO,CAAC,EAAE;oBACR,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,MAAM,CAAC;iBACf,EAAE,CAAC;aACL,CAAA;SACF,CAAC;QACF,MAAM,EAAE;YACN,SAAS,CAAC,EAAE;gBACV,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;YACF,WAAW,CAAC,EAAE;gBACZ,IAAI,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,MAAM,CAAC;aACd,CAAA;SACF,CAAC;KACH,CAAC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testRunManifestBuilder.d.ts","sourceRoot":"","sources":["../../src/utils/testRunManifestBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,MAAM,YAAY,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE;QAAE,YAAY,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAAC;AAWnF,wBAAgB,oBAAoB,CAChC,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,YAAY,EAC3B,GAAG,EAAE,QAAQ,EACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,eAAe,
|
|
1
|
+
{"version":3,"file":"testRunManifestBuilder.d.ts","sourceRoot":"","sources":["../../src/utils/testRunManifestBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,MAAM,YAAY,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE;QAAE,YAAY,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAAC;AAWnF,wBAAgB,oBAAoB,CAChC,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,YAAY,EAC3B,GAAG,EAAE,QAAQ,EACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,eAAe,CA4CjB;AAoED,wBAAgB,mCAAmC,CAC/C,iBAAiB,EAAE,iBAAiB,EACpC,GAAG,EAAE,QAAQ,EACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,eAAe,CAwCjB"}
|
|
@@ -36,6 +36,14 @@ function buildTestRunManifest(configMapResult, archiveOutput, cfg, envFromLoader
|
|
|
36
36
|
image: cfg.runner?.image,
|
|
37
37
|
env: buildRunnerEnv(cfg, envFromLoader),
|
|
38
38
|
...(cfg.runner?.resources ? { resources: cfg.runner.resources } : {}),
|
|
39
|
+
securityContext: {
|
|
40
|
+
sysctls: [
|
|
41
|
+
{
|
|
42
|
+
name: "net.ipv4.ip_local_port_range",
|
|
43
|
+
value: "1024 65535",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
39
47
|
},
|
|
40
48
|
script: {
|
|
41
49
|
configMap: {
|
|
@@ -130,6 +138,14 @@ function buildTestRunManifestWithVolumeClaim(volumeClaimResult, cfg, envFromLoad
|
|
|
130
138
|
image: cfg.runner?.image,
|
|
131
139
|
env: buildRunnerEnv(cfg, envFromLoader),
|
|
132
140
|
...(cfg.runner?.resources ? { resources: cfg.runner.resources } : {}),
|
|
141
|
+
securityContext: {
|
|
142
|
+
sysctls: [
|
|
143
|
+
{
|
|
144
|
+
name: "net.ipv4.ip_local_port_range",
|
|
145
|
+
value: "1024 65535",
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
},
|
|
133
149
|
},
|
|
134
150
|
script: {
|
|
135
151
|
volumeClaim: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testRunManifestBuilder.js","sourceRoot":"","sources":["../../src/utils/testRunManifestBuilder.ts"],"names":[],"mappings":";;;;;AAkBA,
|
|
1
|
+
{"version":3,"file":"testRunManifestBuilder.js","sourceRoot":"","sources":["../../src/utils/testRunManifestBuilder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { logs } from './commands/logs';
|
|
|
7
7
|
import { status } from './commands/status';
|
|
8
8
|
import { deleteLastRun } from './commands/delete';
|
|
9
9
|
import { version } from '../package.json';
|
|
10
|
+
import logger from './utils/logger';
|
|
10
11
|
|
|
11
12
|
const program = new Command();
|
|
12
13
|
|
|
@@ -24,6 +25,16 @@ program
|
|
|
24
25
|
.option('-v, --verbose', 'enable debug logging')
|
|
25
26
|
.option('-d, --dir <path>', 'Folder to search for .js test files', 'dist/tests')
|
|
26
27
|
.option('--smart', 'Enable smart scenario analysis')
|
|
28
|
+
.option('--default-vus-per-pod <number>', 'Default VUs per pod (requires --smart) (default: 200)')
|
|
29
|
+
.option('--max-iteration-duration <number>', 'Max iteration duration in seconds (requires --smart) (default: 30)')
|
|
30
|
+
.hook('preAction', (thisCommand) => {
|
|
31
|
+
const opts = thisCommand.opts();
|
|
32
|
+
if (!opts.smart && (opts.defaultVusPerPod || opts.maxIterationDuration)) {
|
|
33
|
+
logger.warn("Options '--default-vus-per-pod' and '--max-iteration-duration' require '--smart'");
|
|
34
|
+
thisCommand.outputHelp();
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
})
|
|
27
38
|
.action(runTest);
|
|
28
39
|
|
|
29
40
|
program
|
package/src/commands/run.ts
CHANGED
|
@@ -9,10 +9,9 @@ import logger, { setLogLevel } from '../utils/logger';
|
|
|
9
9
|
import { buildTestRunManifest, buildTestRunManifestWithVolumeClaim } from '../utils/testRunManifestBuilder';
|
|
10
10
|
import { saveLastRun } from '../utils/lastRunStore';
|
|
11
11
|
import { K6StageMetrics, K6ScenarioOptions, K6ScenarioMetrics, K6InspectResult } from "../types/script.types";
|
|
12
|
-
import { ConfigMapResult } from '../types/kubernetes.types';
|
|
13
12
|
|
|
14
|
-
const DEFAULT_VUS_PER_POD =
|
|
15
|
-
const
|
|
13
|
+
const DEFAULT_VUS_PER_POD = 200;
|
|
14
|
+
const MAX_ITERATION_DURATION = 30;
|
|
16
15
|
|
|
17
16
|
function listTestFiles(dir: string): string[] {
|
|
18
17
|
if (!fs.existsSync(dir)) {
|
|
@@ -60,6 +59,8 @@ interface RunOptions {
|
|
|
60
59
|
verbose?: boolean;
|
|
61
60
|
dir: string;
|
|
62
61
|
smart?: boolean;
|
|
62
|
+
defaultVusPerPod?: number;
|
|
63
|
+
maxIterationDuration?: number;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
export async function runTest(scriptPath: string, options: RunOptions) {
|
|
@@ -97,28 +98,34 @@ export async function runTest(scriptPath: string, options: RunOptions) {
|
|
|
97
98
|
// Analyze script if smart option is enabled
|
|
98
99
|
if (options.smart) {
|
|
99
100
|
logger.info(`Analyzing script: ${scriptPath}`);
|
|
101
|
+
if (!options.defaultVusPerPod) {
|
|
102
|
+
options.defaultVusPerPod = DEFAULT_VUS_PER_POD;
|
|
103
|
+
}
|
|
104
|
+
if (!options.maxIterationDuration) {
|
|
105
|
+
options.maxIterationDuration = MAX_ITERATION_DURATION;
|
|
106
|
+
}
|
|
100
107
|
const inspectResult = await scriptService.inspectScript(scriptPath);
|
|
101
108
|
const scenarioMetrics: K6ScenarioMetrics[] = await analyzeScript(inspectResult);
|
|
102
109
|
if (scenarioMetrics) {
|
|
103
110
|
const estimatedTotalIterations = scenarioMetrics.reduce((sum, metrics) => sum + (metrics?.totalIterations ?? 0), 0);
|
|
104
111
|
const totalRecommendedMaxVUs = scenarioMetrics.reduce((sum, metrics) => sum + (metrics?.recommendedMaxVUs ?? 0), 0);
|
|
105
|
-
const parallelism = Math.ceil(totalRecommendedMaxVUs /
|
|
112
|
+
const parallelism = Math.ceil(totalRecommendedMaxVUs / (options.defaultVusPerPod)) || 1;
|
|
106
113
|
const peakTps = scenarioMetrics.reduce((max, metrics) => Math.max(max, metrics?.peakTps ?? 0), 0);
|
|
107
114
|
|
|
108
115
|
config.parallelism = parallelism;
|
|
109
116
|
|
|
110
117
|
logger.info(`Total recommendedMaxVUs: ${Math.ceil(totalRecommendedMaxVUs)}
|
|
111
|
-
based on scenario analysis and
|
|
118
|
+
based on scenario analysis and --max-iteration-duration=${(options.maxIterationDuration)} seconds
|
|
112
119
|
per iteration assumption with a safety factor of 1.2 applied to account for variability in iteration duration and ensure we have enough VUs
|
|
113
120
|
to meet the target TPS. This is an estimate and actual resource needs may vary based on the specific workload and environment.
|
|
114
121
|
Consider monitoring the test run and adjusting resources as needed.`);
|
|
115
122
|
|
|
116
|
-
logger.info(`Calculated parallelism: ${parallelism} (based on
|
|
123
|
+
logger.info(`Calculated parallelism: ${parallelism} (based on --default-vus-per-pod=${(options.defaultVusPerPod)})`);
|
|
117
124
|
logger.info(`Peak TPS: ${peakTps.toFixed(2)}`);
|
|
118
125
|
logger.info(`Estimated Total Iterations: ${Math.round(estimatedTotalIterations)}`);
|
|
119
|
-
logger.info(`Using
|
|
126
|
+
logger.info(`Using --max-iteration-duration=${(options.maxIterationDuration)} seconds`);
|
|
120
127
|
logger.info(`Using safety factor of 1.2 to calculate recommended VUs.`);
|
|
121
|
-
logger.info(`Using
|
|
128
|
+
logger.info(`Using --default-vus-per-pod=${(options.defaultVusPerPod)} to calculate parallelism.`);
|
|
122
129
|
|
|
123
130
|
// Extract, modify, and recompress the archive
|
|
124
131
|
archive = await scriptService.extractModifyAndRecompress(archive, scenarioMetrics);
|
|
@@ -193,7 +200,7 @@ async function analyzeScript(inspectResult: K6InspectResult): Promise<K6Scenario
|
|
|
193
200
|
function calculateScenarioMetrics(
|
|
194
201
|
name: string,
|
|
195
202
|
scenario: K6ScenarioOptions,
|
|
196
|
-
avgIterationDurationSeconds: number =
|
|
203
|
+
avgIterationDurationSeconds: number = MAX_ITERATION_DURATION,
|
|
197
204
|
safetyFactor: number = 1.2
|
|
198
205
|
): K6ScenarioMetrics | null {
|
|
199
206
|
if (scenario.executor !== 'ramping-arrival-rate') {
|
|
@@ -65,7 +65,7 @@ export class ScriptService {
|
|
|
65
65
|
|
|
66
66
|
async inspectScript(scriptPath: string): Promise<K6InspectResult> {
|
|
67
67
|
const { stdout, stderr } = await this.execCmd(`k6 inspect ${scriptPath}`);
|
|
68
|
-
if (stderr) {
|
|
68
|
+
if (stderr && stderr.includes('ERR')) {
|
|
69
69
|
logger.error(`Error inspecting script: ${stderr}`);
|
|
70
70
|
throw new Error(`Failed to inspect the script: ${stderr}`);
|
|
71
71
|
}
|
|
@@ -46,6 +46,14 @@ export function buildTestRunManifest(
|
|
|
46
46
|
image: cfg.runner?.image,
|
|
47
47
|
env: buildRunnerEnv(cfg, envFromLoader),
|
|
48
48
|
...(cfg.runner?.resources ? { resources: cfg.runner.resources } : {}),
|
|
49
|
+
securityContext: {
|
|
50
|
+
sysctls: [
|
|
51
|
+
{
|
|
52
|
+
name: "net.ipv4.ip_local_port_range",
|
|
53
|
+
value: "1024 65535",
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
},
|
|
49
57
|
},
|
|
50
58
|
script: {
|
|
51
59
|
configMap: {
|
|
@@ -150,6 +158,14 @@ export function buildTestRunManifestWithVolumeClaim(
|
|
|
150
158
|
image: cfg.runner?.image,
|
|
151
159
|
env: buildRunnerEnv(cfg, envFromLoader),
|
|
152
160
|
...(cfg.runner?.resources ? { resources: cfg.runner.resources } : {}),
|
|
161
|
+
securityContext: {
|
|
162
|
+
sysctls: [
|
|
163
|
+
{
|
|
164
|
+
name: "net.ipv4.ip_local_port_range",
|
|
165
|
+
value: "1024 65535",
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
},
|
|
153
169
|
},
|
|
154
170
|
script: {
|
|
155
171
|
volumeClaim: {
|