blaze-performance-tester 3.0.29 → 3.0.30

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
@@ -87,7 +87,7 @@ var mathUtils = {
87
87
  return sorted[Math.max(0, index)];
88
88
  }
89
89
  };
90
- async function executeTestPipeline() {
90
+ async function executeTestPipeline(config) {
91
91
  if (!blazeCore || typeof blazeCore.runCorrelatedTransaction !== "function") {
92
92
  console.error("\u274C Error: runCorrelatedTransaction function is missing from the compiled binary bindings.");
93
93
  return;
@@ -96,13 +96,11 @@ async function executeTestPipeline() {
96
96
  {
97
97
  name: "Fetch Target Anti-Forgery Nonce",
98
98
  url: "https://httpbin.org/json",
99
- // Returns metadata configurations
100
99
  method: "GET",
101
100
  body: null
102
101
  },
103
102
  {
104
103
  name: "Perform Contextual Post Action",
105
- // The engine automatically detects ${csrf_token} if returned in Step 1 and swaps it seamlessly
106
104
  url: "https://httpbin.org/post?verification=${csrf_token}",
107
105
  method: "POST",
108
106
  body: JSON.stringify({
@@ -111,7 +109,7 @@ async function executeTestPipeline() {
111
109
  })
112
110
  }
113
111
  ];
114
- console.log("Launching automated script transaction analysis...");
112
+ console.log(`Launching automated script transaction analysis for: ${config.targetScript}`);
115
113
  const sanitizedSteps = transactionalScenario.map((step) => ({
116
114
  ...step,
117
115
  body: typeof step.body === "string" ? step.body : step.body ? JSON.stringify(step.body) : ""
@@ -129,8 +127,9 @@ async function main() {
129
127
  }
130
128
  const config = parseArguments(args);
131
129
  if (config.isCorrelate) {
132
- await executeTestPipeline();
133
- } else if (config.isAgentic) {
130
+ await executeTestPipeline(config);
131
+ }
132
+ if (config.isAgentic) {
134
133
  await runIntelligentAgenticStressTest(config);
135
134
  } else {
136
135
  await runStandardStressTest(config);
@@ -160,6 +159,10 @@ function parseArguments(args) {
160
159
  if (maxThreadsIdx !== -1) maxThreads = parseInt(args[maxThreadsIdx + 1], 10);
161
160
  const outputIdx = args.indexOf("--output");
162
161
  if (outputIdx !== -1) outputHtml = args[outputIdx + 1];
162
+ const positionalNums = args.slice(1).filter((arg) => !arg.startsWith("-")).map(Number).filter((n) => !isNaN(n));
163
+ if (positionalNums.length > 0 && threadsIdx === -1 && !isAgentic) threads = positionalNums[0];
164
+ if (positionalNums.length > 1 && durationIdx === -1 && !isAgentic) durationSec = positionalNums[1];
165
+ if (positionalNums.length > 2 && errorIdx === -1 && !isAgentic) targetErrorRate = positionalNums[2] / 100;
163
166
  if (isAgentic) {
164
167
  const agenticIdx = args.indexOf("--agentic");
165
168
  const trailingArgs = args.slice(agenticIdx + 1).filter((arg) => !arg.startsWith("--"));
@@ -529,7 +532,6 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
529
532
  .badge-5xx { background: rgba(220, 38, 38, 0.2); color: #f87171; }
530
533
  .matrix-value { font-size: 1rem; font-weight: bold; color: #ffffff; }
531
534
 
532
- /* \u{1F4CA} TWO-COLUMN CHART GRID */
533
535
  .charts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 2rem; }
534
536
  .graph-card { background: #131c2e; border: 1px solid #1e293b; border-radius: 8px; padding: 1.5rem; }
535
537
  .graph-title { font-size: 1.1rem; font-weight: 700; color: #ffffff; margin-bottom: 1.2rem; display: flex; align-items: center; gap: 0.5rem; }
@@ -612,9 +614,7 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
612
614
  </div>
613
615
  </div>
614
616
 
615
- <!-- \u{1F4C9} SPLIT CHARTS SYSTEM -->
616
617
  <div class="charts-grid">
617
- <!-- Chart 1: Volume Streams -->
618
618
  <div class="graph-card">
619
619
  <div class="graph-title">\u{1F4CA} Throughput Velocity & Workload Volume</div>
620
620
  <div style="height: 280px; position: relative;">
@@ -622,7 +622,6 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
622
622
  </div>
623
623
  </div>
624
624
 
625
- <!-- Chart 2: Concurrency & Health Trends -->
626
625
  <div class="graph-card">
627
626
  <div class="graph-title">\u{1F504} Active Concurrency (VUs) vs. Time-to-Failure (TTF) Trend</div>
628
627
  <div style="height: 280px; position: relative;">
@@ -665,7 +664,6 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
665
664
  <script>
666
665
  const labels = ${JSON.stringify(labels)};
667
666
 
668
- // \u{1F6E0}\uFE0F Chart 1 Setup: Throughput Bar Streams
669
667
  new Chart(document.getElementById('volumeChart'), {
670
668
  type: 'bar',
671
669
  data: {
@@ -702,7 +700,6 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
702
700
  }
703
701
  });
704
702
 
705
- // \u{1F6E0}\uFE0F Chart 2 Setup: Concurrency & TTF Correlated Slopes
706
703
  new Chart(document.getElementById('concurrencyChart'), {
707
704
  type: 'line',
708
705
  data: {
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blaze-performance-tester",
3
- "version": "3.0.29",
3
+ "version": "3.0.30",
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",