blaze-performance-tester 3.0.37 → 3.0.38

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
@@ -293,6 +293,8 @@ async function runIntelligentAgenticStressTest(config) {
293
293
  const analyzer = new LogAnalyzer();
294
294
  semanticReport = analyzer.process(aggregateErrorLogs);
295
295
  }
296
+ const totalTestSeconds = history.length * config.durationSec;
297
+ const vuRampUpVelocity = history.length > 1 && totalTestSeconds > 0 ? (history[history.length - 1].threads - history[0].threads) / totalTestSeconds : config.threads / config.durationSec;
296
298
  const finalSummaryCards = {
297
299
  apdex: history[history.length - 1]?.apdex || 0,
298
300
  throughput: history[history.length - 1]?.throughput || 0,
@@ -302,7 +304,8 @@ async function runIntelligentAgenticStressTest(config) {
302
304
  tcp: mathUtils.mean(globalMetricsAccumulator.tcp),
303
305
  tls: mathUtils.mean(globalMetricsAccumulator.tls),
304
306
  stdDev: mathUtils.stdDev(globalMetricsAccumulator.latencies, mathUtils.mean(globalMetricsAccumulator.latencies)),
305
- saturationKneePoint: saturationKneePoint || history[history.length - 1]?.threads || 50
307
+ saturationKneePoint: saturationKneePoint || history[history.length - 1]?.threads || 50,
308
+ vuRampUpVelocity
306
309
  };
307
310
  generateFinalAgentReport(history);
308
311
  exportHtmlDashboard(history, config, verdictReason, semanticReport, { total1xx, total2xx, total3xx, total4xx, total5xx }, finalSummaryCards, lastRawRequests);
@@ -337,7 +340,8 @@ async function runStandardStressTest(config) {
337
340
  tcp: metrics.avgTcpMs,
338
341
  tls: metrics.avgTlsMs,
339
342
  stdDev: metrics.stdDevMs,
340
- saturationKneePoint: config.threads
343
+ saturationKneePoint: config.threads,
344
+ vuRampUpVelocity: config.threads / config.durationSec
341
345
  };
342
346
  const isPassed = metrics.apdexScore >= config.targetApdex && metrics.errorRate <= config.targetErrorRate;
343
347
  const verdictReason = isPassed ? "Static single-wave baseline checks concluded successfully without triggering health boundaries." : "Static verification loop completed with values exceeding defined quality thresholds.";
@@ -580,7 +584,7 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
580
584
  h1 { color: #38bdf8; margin: 0; font-size: 2rem; }
581
585
  .meta { color: #94a3b8; font-size: 0.9rem; margin-top: 0.5rem; }
582
586
 
583
- .cards-wrapper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
587
+ .cards-wrapper { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
584
588
  .metric-card { background: #131c2e; border: 1px solid #1e293b; border-radius: 6px; padding: 1.25rem; position: relative; }
585
589
  .card-title { font-size: 0.75rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.5rem; }
586
590
  .card-value { font-size: 1.6rem; font-weight: 700; color: #ffffff; }
@@ -588,6 +592,7 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
588
592
  .card-value.green { color: #10b981; }
589
593
  .card-value.orange { color: #f97316; }
590
594
  .card-value.purple { color: #a855f7; }
595
+ .card-value.cyan { color: #38bdf8; }
591
596
  .card-subtext { font-size: 0.8rem; color: #10b981; font-weight: 500; margin-left: 0.4rem; display: inline-block; }
592
597
 
593
598
  .top-layout-grid { display: grid; grid-template-columns: 1fr 400px; gap: 1.5rem; margin-bottom: 2rem; }
@@ -646,6 +651,10 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
646
651
  <div class="card-title">Avg Time To First Byte</div>
647
652
  <div class="card-value">${cards.ttfb.toFixed(1)}<span class="unit">ms</span></div>
648
653
  </div>
654
+ <div class="metric-card">
655
+ <div class="card-title">VU Ramp-up Velocity</div>
656
+ <div class="card-value cyan">${cards.vuRampUpVelocity.toFixed(1)}<span class="unit">VUs/s</span></div>
657
+ </div>
649
658
  <div class="metric-card">
650
659
  <div class="card-title">DNS Lookup</div>
651
660
  <div class="card-value">${cards.dns.toFixed(2)}<span class="unit">ms</span></div>
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blaze-performance-tester",
3
- "version": "3.0.37",
3
+ "version": "3.0.38",
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",