blaze-performance-tester 1.1.22 → 2.0.0
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/index.win32-x64-msvc.node +0 -0
- package/package.json +1 -1
- package/readme +55 -79
|
Binary file
|
package/package.json
CHANGED
package/readme
CHANGED
|
@@ -1,95 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
🔥 Blaze Performance Tester
|
|
2
|
+
Blaze is an ultra-high-performance, lightweight load testing engine powered by a native Rust core integration (NAPI-RS). It is architected to simulate massive parallel virtual user (VU) traffic concurrently while tracking script latencies, system throughput capacities, and error frequencies in real-time.
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
🛠️ Prerequisites
|
|
5
|
+
Because Blaze leverages a pre-compiled native core engine for bare-metal execution performance, your system must satisfy the following baseline parameters:
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
1. Runtime Environment
|
|
8
|
+
Node.js: v18.0.0 or higher (Node v20+ or v24+ recommended for peak ES Module stability).
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
2. Operating System Dependencies (For Loading Pre-compiled Binaries)
|
|
11
|
+
💡 No Rust Required: End-users do not need to install Rust, Cargo, or any compilation toolchains. Blaze ships with pre-built system binaries inside the NPM bundle. However, your host OS needs standard runtime compatibility libraries to interface with the binary layer:
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
* **Native HTTP Execution Sockets:** Exposes a global `http_get()` binding inside JavaScript that routes network calls directly through Rust's high-speed `reqwest` stack.
|
|
12
|
-
* **JMeter-Style Telemetry Aggregation:** Computes live data snapshots including throughput rates, error tallies, and crucial latency percentiles ($p50$, $p90$, $p95$, $p99$).
|
|
13
|
-
* **Real-Time Terminal Progress Updates:** Keeps you updated via a live terminal countdown ticker while heavy parallel workloads run.
|
|
14
|
-
* **Zero-Configuration CSV Archiver:** Automatically records data into structured `.csv` reports inside a `results/` folder created dynamically wherever you invoke the command.
|
|
13
|
+
Windows: Requires the standard Microsoft Visual C++ Redistributable installed (pre-installed on almost all developer setups, or packaged alongside Git/VS Code).
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
macOS: Native architecture compatibility (Intel/Apple Silicon M-series). Ensure Xcode Command Line Tools are active (xcode-select --install).
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
Linux: Requires glibc 2.28 or higher (standard on Ubuntu 20.04+, Debian 10+, Fedora, and CentOS).
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
├── dist/ # Compiled Distribution Assets
|
|
23
|
-
│ ├── cli.js # Bundled CLI Core
|
|
24
|
-
│ ├── index.js # Generated Native NAPI-RS Bridges
|
|
25
|
-
│ ├── index.d.ts # TypeScript Type Structure Mappings
|
|
26
|
-
│ └── blaze.*.node # Compiled Native Rust Binary
|
|
27
|
-
├── src/
|
|
28
|
-
│ └── lib.rs # Multi-Threaded Rust Concurrency Core
|
|
29
|
-
├── tests/ # Dedicated Folder for Performance Scripts
|
|
30
|
-
│ └── test-script.ts # Scenario Workload Script
|
|
31
|
-
├── bin.js # Anti-Hijack Executable Gateway for Windows WSH
|
|
32
|
-
├── cli.ts # CLI Orchestration & Metrics Wrapper
|
|
33
|
-
├── package.json # Node Dependency & Build Script Pipeline
|
|
34
|
-
└── Cargo.toml # Rust Native Compilation Flags
|
|
35
|
-
📦 Compilation & Installation
|
|
36
|
-
Prerequisites
|
|
37
|
-
Ensure you have the following installed on your machine:
|
|
19
|
+
3. File System Permissions
|
|
20
|
+
Blaze generates performance reporting assets on-disk at the end of each session. Ensure your terminal session has active write permissions inside your current active testing directory.
|
|
38
21
|
|
|
39
|
-
|
|
22
|
+
📦 Installation & Execution Philosophy
|
|
23
|
+
You do not need to clone this repository, configure build configs, or install dependencies locally. Blaze utilizes a fully on-demand delivery layout via npx to keep your workspace pristine.
|
|
40
24
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
Setup & Build
|
|
44
|
-
Clone the repository, download dependencies, and compile the native binary distribution bundle:
|
|
25
|
+
📝 Step 1: Create a Workload Test Script
|
|
26
|
+
Blaze targets modular test scripts to evaluate target endpoint resilience. Create a test directory and save the following workload layout as tests/test-script.ts (or use a standard .js extension):
|
|
45
27
|
|
|
28
|
+
TypeScript
|
|
29
|
+
// tests/test-script.ts
|
|
30
|
+
|
|
31
|
+
export default async function workload() {
|
|
32
|
+
// Define the exact request workflow you want to load-test here
|
|
33
|
+
const response = await fetch('https://api.example.com/v1/health');
|
|
34
|
+
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(`Target endpoint returned unhealthy status code: ${response.status}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
💡 Design Constraint: Your script file must export a single default asynchronous function block. The underlying native Blaze runtime hooks directly into this entry point to distribute it across concurrent worker execution threads.
|
|
40
|
+
|
|
41
|
+
🏃 Step 2: Execute the Performance Test Suite
|
|
42
|
+
Trigger the core runner directly out of your execution context terminal layout by supplying your test script path, virtual user target count, and your benchmarking time window.
|
|
43
|
+
|
|
44
|
+
Command Execution Syntax
|
|
46
45
|
Bash
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
# Compile the native Rust modules, copy binaries, and bundle the ESM CLI wrapper
|
|
51
|
-
npm run build
|
|
52
|
-
🏃 Run Performance Workloads
|
|
53
|
-
Blaze can be executed globally from any terminal folder via npx without needing global system mutations.
|
|
54
|
-
|
|
55
|
-
To run a test, navigate to your target project folder, create your script file, and call the runner passing the script path, the number of concurrent Virtual Users (VUs), and the test duration in seconds:
|
|
46
|
+
npx blaze-performance-tester@2.0.0 <path-to-script> <concurrent-vus> <duration-seconds>
|
|
47
|
+
Execution Example
|
|
48
|
+
To launch 10 concurrent virtual user threads pounding your target workload continuously for an execution duration window of 5 seconds, run this exact command inside your terminal:
|
|
56
49
|
|
|
57
50
|
DOS
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
Your script workloads have instant access to the injected high-speed global native socket binding:
|
|
51
|
+
C:\perf>npx blaze-performance-tester@1.1.22 tests/test-script.ts 10 5
|
|
52
|
+
📊 Analytics & Telemetry Engine
|
|
53
|
+
Upon wrapping up its concurrency window, Blaze automatically maps, calculates, and dumps a dual-layered architectural metrics profile straight into your working path.
|
|
62
54
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const status = http_get("[https://jsonplaceholder.typicode.com/posts/1](https://jsonplaceholder.typicode.com/posts/1)");
|
|
66
|
-
|
|
67
|
-
// The native Rust engine automatically handles response times and error states!
|
|
68
|
-
📊 Sample Performance Output Report
|
|
69
|
-
When your test finishes running, Blaze renders a clean telemetry report right in your terminal and saves a copy to disk:
|
|
70
|
-
|
|
71
|
-
Plaintext
|
|
72
|
-
📊 ==================== JMeter-Style Performance Report ====================
|
|
73
|
-
Samples (Requests): 14,250
|
|
74
|
-
Throughput Rate: 2,850.00 req/sec
|
|
75
|
-
Error Rate: 0.00% (0 failed)
|
|
76
|
-
-----------------------------------------------------------------------------
|
|
77
|
-
📈 Latency Statistics (ms):
|
|
78
|
-
├── Minimum: 2.10 ms
|
|
79
|
-
├── Average: 3.45 ms
|
|
80
|
-
├── Median (50%): 3.20 ms
|
|
81
|
-
└── 90th %ile: 4.10 ms
|
|
82
|
-
└── 95th %ile: 4.65 ms
|
|
83
|
-
└── 99th %ile: 5.90 ms
|
|
84
|
-
└── Maximum: 12.40 ms
|
|
85
|
-
=============================================================================
|
|
86
|
-
💾 Aggregated metrics saved to: .\results\summary_report.csv
|
|
87
|
-
📂 Where are results stored?
|
|
88
|
-
Blaze captures execution contexts using process.cwd(). The moment a test run completes successfully, a new directory is instantly written inside the user's active terminal directory:
|
|
55
|
+
1. Tabular Terminal Summary (JMeter CLI Layout)
|
|
56
|
+
Blaze generates a strict, highly detailed performance grid directly into your active console screen for instant feedback:
|
|
89
57
|
|
|
90
58
|
Plaintext
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
59
|
+
🔥 [Blaze] Injecting load tests using Blaze metrics aggregation engine...
|
|
60
|
+
|
|
61
|
+
💻 ======================================== JMETER-STYLE SUMMARY REPORT ========================================
|
|
62
|
+
Label | # Samples | Average (ms) | Min (ms) | Max (ms) | 90% Line | 95% Line | 99% Line | Error % | Throughput | Received KB/sec
|
|
63
|
+
-------------|-----------|--------------|----------|----------|----------|----------|----------|---------|------------|----------------
|
|
64
|
+
test-script | 1250 | 42.6 | 14.2 | 184.1 | 54.2 | 78.5 | 142.1 | 0.00% | 248.5/sec | 1043.70 KB/s
|
|
65
|
+
-------------|-----------|--------------|----------|----------|----------|----------|----------|---------|------------|----------------
|
|
66
|
+
Total | 1250 | 42.6 | 14.2 | 184.1 | 54.2 | 78.5 | 142.1 | 0.00% | 248.5/sec | 1043.70 KB/s
|
|
67
|
+
================================================================================================================
|
|
68
|
+
Test Execution Finished. Elapsed time: 5.03s | Target VUs: 10
|
|
69
|
+
2. Beautiful HTML Interactive Dashboard
|
|
70
|
+
Alongside the console logs, a fully styled, portable, dark-mode data visualization dashboard file is generated on-disk:
|
|
71
|
+
📁 Location: ./blaze-html-report.html
|