blaze-performance-tester 3.2.9 → 3.2.10

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/dist/cli.js CHANGED
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ts-node
2
2
 
3
3
  // cli.ts
4
+ import yargs from "yargs";
5
+ import { hideBin } from "yargs/helpers";
4
6
  import { createRequire } from "module";
5
7
  import * as path from "path";
6
8
  import { fileURLToPath } from "url";
@@ -192,7 +194,7 @@ function loadBaselineData(filePath) {
192
194
  return JSON.parse(fs.readFileSync(resolved, "utf-8"));
193
195
  }
194
196
  } catch (e) {
195
- console.error(`\u274C Failed to parse baseline telemetry file: ${e.message || e}`);
197
+ console.error(`\u274C Failed to parse baseline telemetry file: ${e}`);
196
198
  }
197
199
  return null;
198
200
  }
@@ -293,13 +295,56 @@ async function executeTestPipeline(config) {
293
295
  console.log("Pipeline run complete. Parameter tracking successfully mitigated breaking changes.");
294
296
  }
295
297
  }
296
- async function main() {
298
+ async function generateTestScriptFromPrompt(prompt) {
299
+ console.log(`
300
+ [AI] Translating natural language to Blaze performance script...`);
301
+ const generatedCode = `// Auto-generated by Blaze Performance Tester
302
+ // Prompt: ${prompt}
303
+
304
+ import { step } from 'blaze-performance-tester';
305
+
306
+ export default async function scenario() {
307
+ await step('Scenario Execution', async () => {
308
+ // Add generated API calls or interactions here
309
+ console.log("Executing auto-generated step based on prompt.");
310
+ });
311
+ }
312
+ `;
313
+ return generatedCode;
314
+ }
315
+ async function runCli() {
316
+ const argv = await yargs(hideBin(process.argv)).usage("Usage: blaze-performance-tester <script-path> [options]").option("prompt", {
317
+ describe: "Natural language scenario to generate the test script",
318
+ type: "string"
319
+ }).option("threads", { type: "number", description: "Number of concurrent threads" }).option("duration", { type: "number", description: "Test duration in seconds" }).option("ramp-up", { type: "number", description: "Ramp-up time in seconds" }).option("ramp-down", { type: "number", description: "Ramp-down time in seconds" }).help(false).strict(false).argv;
297
320
  const args = process.argv.slice(2);
298
321
  if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
299
322
  printUsage();
300
323
  return;
301
324
  }
302
325
  const config = parseArguments(args);
326
+ if (argv.prompt) {
327
+ const promptText = argv.prompt;
328
+ try {
329
+ const scriptContent = await generateTestScriptFromPrompt(promptText);
330
+ const dir = path.dirname(config.targetScript);
331
+ if (!fs.existsSync(dir)) {
332
+ fs.mkdirSync(dir, { recursive: true });
333
+ }
334
+ fs.writeFileSync(config.targetScript, scriptContent, "utf-8");
335
+ console.log(`[Success] Test script generated at: ${config.targetScript}
336
+ `);
337
+ } catch (error) {
338
+ console.error(`[Error] Failed to generate script from prompt:`, error);
339
+ process.exit(1);
340
+ }
341
+ }
342
+ if (!fs.existsSync(config.targetScript)) {
343
+ console.error(`[Error] Test script not found at ${config.targetScript}.`);
344
+ process.exit(1);
345
+ }
346
+ console.log(`Starting performance test using script: ${config.targetScript}`);
347
+ console.log(`Params -> Threads: ${config.threads || 1}, Duration: ${config.durationSec || 0}s`);
303
348
  if (config.isCorrelate) {
304
349
  await executeTestPipeline(config);
305
350
  }
@@ -1453,7 +1498,7 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
1453
1498
  fs.writeFileSync(config.outputHtml, htmlContent, "utf-8");
1454
1499
  console.log(`\u{1F4CA} Standalone Dashboard exported successfully to: ${path.resolve(config.outputHtml)}`);
1455
1500
  } catch (err) {
1456
- console.error(`\u274C Failed to write HTML output dashboard: ${err.message || err}`);
1501
+ console.error(`\u274C Failed to write HTML output dashboard: ${err}`);
1457
1502
  }
1458
1503
  }
1459
1504
  function printUsage() {
@@ -1461,4 +1506,7 @@ function printUsage() {
1461
1506
  Options:
1462
1507
  --threads <count> | --duration <seconds> | --baseline <json_file> | --output <html_file>`);
1463
1508
  }
1464
- main().catch(console.error);
1509
+ runCli().catch(console.error);
1510
+ export {
1511
+ runCli
1512
+ };
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blaze-performance-tester",
3
- "version": "3.2.9",
3
+ "version": "3.2.10",
4
4
  "description": "A high-performance, multi-threaded load testing engine built with Rust and QuickJS.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",