blaze-performance-tester 3.0.22 → 3.0.23

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
@@ -438,11 +438,9 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
438
438
  <span style="background: ${sevBg}; color: #ffffff; padding: 0.2rem 0.5rem; border-radius: 4px; font-size: 0.7rem; font-weight: bold; letter-spacing: 0.05em;">${c.severity}</span>
439
439
  </td>
440
440
  <td style="padding: 1.25rem 0.75rem;">
441
- <!-- Abstract Template Blueprint Box -->
442
441
  <div style="background: #090d16; border-radius: 4px; padding: 0.6rem 0.8rem; border-left: 3px solid #1e293b; margin-bottom: 0.5rem;">
443
442
  <code style="color: #cbd5e1; font-family: monospace; font-size: 0.9rem; white-space: pre-wrap; word-break: break-all;">${cleanedTemplate}</code>
444
443
  </div>
445
- <!-- Trace Example Line -->
446
444
  <div style="color: #64748b; font-size: 0.8rem; font-family: monospace; padding-left: 0.2rem; line-height: 1.4;">
447
445
  <span style="color: #475569;">Real Example Trace:</span> ${rawTemplate}
448
446
  </div>
@@ -464,7 +462,6 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
464
462
  h1 { color: #38bdf8; margin: 0; font-size: 2rem; }
465
463
  .meta { color: #94a3b8; font-size: 0.9rem; margin-top: 0.5rem; }
466
464
 
467
- /* \u{1F3B4} CARDS DASHBOARD GRID SYSTEM */
468
465
  .cards-wrapper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
469
466
  .metric-card { background: #131c2e; border: 1px solid #1e293b; border-radius: 6px; padding: 1.25rem; position: relative; }
470
467
  .card-title { font-size: 0.75rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.5rem; }
@@ -494,8 +491,10 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
494
491
  .badge-5xx { background: rgba(220, 38, 38, 0.2); color: #f87171; }
495
492
  .matrix-value { font-size: 1rem; font-weight: bold; color: #ffffff; }
496
493
 
497
- .graph-card { background: #131c2e; border: 1px solid #1e293b; border-radius: 8px; padding: 1.5rem; margin-bottom: 2rem; }
498
- .graph-title { font-size: 1.15rem; font-weight: 700; color: #ffffff; margin-bottom: 1.2rem; display: flex; align-items: center; gap: 0.5rem; }
494
+ /* \u{1F4CA} TWO-COLUMN CHART GRID */
495
+ .charts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 2rem; }
496
+ .graph-card { background: #131c2e; border: 1px solid #1e293b; border-radius: 8px; padding: 1.5rem; }
497
+ .graph-title { font-size: 1.1rem; font-weight: 700; color: #ffffff; margin-bottom: 1.2rem; display: flex; align-items: center; gap: 0.5rem; }
499
498
 
500
499
  .card { background: #131c2e; border: 1px solid #1e293b; border-radius: 8px; padding: 1.5rem; }
501
500
  h3 { margin-top: 0; color: #cbd5e1; border-bottom: 1px solid #1e293b; padding-bottom: 0.5rem; }
@@ -512,7 +511,6 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
512
511
  <div class="meta">Target Script: <code>${config.targetScript}</code></div>
513
512
  </div>
514
513
 
515
- <!-- \u{1F3B4} METRICS CARDS GRID PANEL -->
516
514
  <div class="cards-wrapper">
517
515
  <div class="metric-card">
518
516
  <div class="card-title">Apdex Score (T: 50ms)</div>
@@ -576,11 +574,22 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
576
574
  </div>
577
575
  </div>
578
576
 
579
- <!-- \u{1F4C9} CORRELATION STREAM GRAPH CHART -->
580
- <div class="graph-card">
581
- <div class="graph-title">\u{1F504} Throughput, TTF Trend & Active Threads Concurrency Correlation</div>
582
- <div style="height: 320px; position: relative;">
583
- <canvas id="correlationChart"></canvas>
577
+ <!-- \u{1F4C9} SPLIT CHARTS SYSTEM -->
578
+ <div class="charts-grid">
579
+ <!-- Chart 1: Volume Streams -->
580
+ <div class="graph-card">
581
+ <div class="graph-title">\u{1F4CA} Throughput Velocity & Workload Volume</div>
582
+ <div style="height: 280px; position: relative;">
583
+ <canvas id="volumeChart"></canvas>
584
+ </div>
585
+ </div>
586
+
587
+ <!-- Chart 2: Concurrency & Health Trends -->
588
+ <div class="graph-card">
589
+ <div class="graph-title">\u{1F504} Active Concurrency (VUs) vs. Time-to-Failure (TTF) Trend</div>
590
+ <div style="height: 280px; position: relative;">
591
+ <canvas id="concurrencyChart"></canvas>
592
+ </div>
584
593
  </div>
585
594
  </div>
586
595
 
@@ -617,7 +626,9 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
617
626
 
618
627
  <script>
619
628
  const labels = ${JSON.stringify(labels)};
620
- new Chart(document.getElementById('correlationChart'), {
629
+
630
+ // \u{1F6E0}\uFE0F Chart 1 Setup: Throughput Bar Streams
631
+ new Chart(document.getElementById('volumeChart'), {
621
632
  type: 'bar',
622
633
  data: {
623
634
  labels: labels,
@@ -637,25 +648,45 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
637
648
  stack: 'requests',
638
649
  barPercentage: 0.95,
639
650
  categoryPercentage: 0.95
640
- },
651
+ }
652
+ ]
653
+ },
654
+ options: {
655
+ responsive: true,
656
+ maintainAspectRatio: false,
657
+ plugins: {
658
+ legend: { position: 'top', labels: { color: '#94a3b8', font: { size: 11 } } }
659
+ },
660
+ scales: {
661
+ x: { grid: { color: '#1e293b' }, ticks: { color: '#64748b' } },
662
+ y: { stacked: true, grid: { color: '#1e293b' }, ticks: { color: '#64748b' } }
663
+ }
664
+ }
665
+ });
666
+
667
+ // \u{1F6E0}\uFE0F Chart 2 Setup: Concurrency & TTF Correlated Slopes
668
+ new Chart(document.getElementById('concurrencyChart'), {
669
+ type: 'line',
670
+ data: {
671
+ labels: labels,
672
+ datasets: [
641
673
  {
642
674
  label: 'Active VU Threads',
643
675
  data: ${JSON.stringify(activeThreadsData)},
644
- type: 'line',
645
676
  borderColor: '#38bdf8',
646
- borderWidth: 2,
647
- pointRadius: 3,
648
- fill: false,
677
+ backgroundColor: 'rgba(56, 189, 248, 0.1)',
678
+ borderWidth: 2.5,
679
+ pointRadius: 4,
680
+ fill: true,
649
681
  yAxisID: 'yThreads'
650
682
  },
651
683
  {
652
684
  label: 'Time-to-Failure (TTF) Trend',
653
685
  data: ${JSON.stringify(ttfTrendData)},
654
- type: 'line',
655
686
  borderColor: '#f43f5e',
656
- borderWidth: 1.5,
657
- borderDash: [4, 4],
658
- pointRadius: 0,
687
+ borderWidth: 2,
688
+ borderDash: [5, 5],
689
+ pointRadius: 3,
659
690
  fill: false,
660
691
  yAxisID: 'yTtf'
661
692
  }
@@ -665,17 +696,13 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
665
696
  responsive: true,
666
697
  maintainAspectRatio: false,
667
698
  plugins: {
668
- legend: {
669
- position: 'top',
670
- labels: { color: '#94a3b8', boxWidth: 12, font: { size: 11 } }
671
- }
699
+ legend: { position: 'top', labels: { color: '#94a3b8', font: { size: 11 } } }
700
+ },
701
+ scales: {
702
+ x: { grid: { color: '#1e293b' }, ticks: { color: '#64748b' } },
703
+ yThreads: { position: 'left', grid: { color: '#1e293b' }, ticks: { color: '#38bdf8' }, title: { display: true, text: 'VUs / Threads', color: '#38bdf8' } },
704
+ yTtf: { position: 'right', grid: { drawOnChartArea: false }, ticks: { color: '#f43f5e' }, title: { display: true, text: 'TTF Index / Latency ms', color: '#f43f5e' } }
672
705
  }
673
- },
674
- scales: {
675
- x: { grid: { color: '#1e293b' }, ticks: { color: '#64748b' } },
676
- y: { stacked: true, grid: { color: '#1e293b' }, ticks: { color: '#64748b' }, title: { display: true, text: 'Requests Volume', color: '#64748b' } },
677
- yThreads: { position: 'right', display: true, grid: { drawOnChartArea: false }, ticks: { color: '#38bdf8' }, title: { display: true, text: 'Active Threads', color: '#38bdf8' } },
678
- yTtf: { position: 'right', display: false, grid: { drawOnChartArea: false } }
679
706
  }
680
707
  });
681
708
  </script></body></html>`;
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blaze-performance-tester",
3
- "version": "3.0.22",
3
+ "version": "3.0.23",
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",