blaze-performance-tester 1.1.22 → 2.0.1

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.
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blaze-performance-tester",
3
- "version": "1.1.22",
3
+ "version": "2.0.1",
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",
package/readme CHANGED
@@ -1,95 +1,71 @@
1
- Markdown
2
- # 🔥 Blaze Performance Tester
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
- Blaze is an ultra-high-performance, multi-threaded load testing framework built with **Rust** and **QuickJS** (via `rquickjs`). It provides parallel virtual user execution by isolating JavaScript evaluation environments into dedicated native OS threads, delivering raw network speed and JMeter-style telemetry metrics with minimal footprint.
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
- ## 🚀 Key Features
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
- * **Multi-Threaded Concurrency Core:** Spawns lightweight native OS threads for every Virtual User (VU) to bypass common runtime bottlenecks.
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
- ## 🛠️ Project Workspace Layout
17
+ Linux: Requires glibc 2.28 or higher (standard on Ubuntu 20.04+, Debian 10+, Fedora, and CentOS).
19
18
 
20
- ```text
21
- blaze-performance-tester/
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
- Node.js (v18+)
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
- Rust & Cargo MSRV Toolchain
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
- # Install package dependencies
48
- npm install
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
- # Usage: npx blaze-performance-tester <script-path> <vus> <duration-seconds>
59
- npx blaze-performance-tester tests/test-script.ts 10 5
60
- Writing a Workload Script (tests/test-script.ts)
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
- TypeScript
64
- // Call the high-speed native network layer directly
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
- your-active-directory/
92
- ├── tests/
93
- │ └── test-script.ts
94
- └── results/ <-- Generated Automatically
95
- └── summary_report.csv <-- Contains Raw Timestamp, Latency, Status, and Success Flags
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