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 +9 -12
- package/dist/index.win32-x64-msvc.node +0 -0
- package/package.json +1 -1
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(
|
|
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
|
-
}
|
|
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
|