@perfscale/exe 0.7.1 → 0.7.2

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.
Files changed (2) hide show
  1. package/man/perfscale.1 +288 -0
  2. package/package.json +10 -7
@@ -0,0 +1,288 @@
1
+ .\" perfscale(1) manual page
2
+ .TH PERFSCALE 1 "2026-07-28" "perfscale 0.7" "User Commands"
3
+ .SH NAME
4
+ perfscale \- run k6, locust, or native load tests from one CLI
5
+ .SH SYNOPSIS
6
+ .B perfscale
7
+ .RI < COMMAND >
8
+ .RI [ OPTIONS ]
9
+ .br
10
+ .B perfscale run
11
+ .BI \-\-k6 " FILE.js"
12
+ .RI [ OPTIONS ]
13
+ .br
14
+ .B perfscale run
15
+ .BI \-\-locust " FILE.py"
16
+ .RI [ OPTIONS ]
17
+ .br
18
+ .B perfscale run
19
+ .BI \-f " TEST.yaml"
20
+ .BI \-c " CONFIG.yaml"
21
+ .RI [ OPTIONS ]
22
+ .SH DESCRIPTION
23
+ .B perfscale
24
+ is a load-testing CLI that runs existing k6 scripts and locustfiles, or its
25
+ own native step engine driven by YAML test definitions. All three engines
26
+ emit a k6-compatible metric summary, so downstream tooling (CI reporters,
27
+ dashboards,
28
+ .BR \-\-summary\-export )
29
+ parses one format regardless of the engine that produced it.
30
+ .SH COMMANDS
31
+ .TP
32
+ .B run
33
+ Run a load test. Exactly one engine selector is required:
34
+ .BR \-\-k6 ,
35
+ .BR \-\-locust ,
36
+ or
37
+ .BR \-f /
38
+ .BR \-c
39
+ (native engine). See
40
+ .B "RUN OPTIONS"
41
+ below.
42
+ .TP
43
+ .B serve
44
+ Start a local dev server that receives metric summaries from
45
+ .B "perfscale run \-\-report"
46
+ and prints them. Endpoints:
47
+ .B GET /health
48
+ (liveness, returns
49
+ .IR ok )
50
+ and
51
+ .B POST /api/v1/metrics
52
+ (accepts
53
+ .IR {"lines": ["..."]} ).
54
+ .TP
55
+ .B lint
56
+ Validate test/config YAML files without running them: JSON-Schema checks,
57
+ unknown or typo'd field names with did-you-mean suggestions, unknown action
58
+ IDs, and per-action
59
+ .B with:
60
+ parameter names. File kind is auto-detected (a top-level
61
+ .B steps:
62
+ key means test definition); override with
63
+ .BR \-\-schema .
64
+ .TP
65
+ .B schema
66
+ Print the JSON Schema perfscale validates YAML files against (the same
67
+ schemas
68
+ .B lint
69
+ uses). Argument:
70
+ .B test
71
+ or
72
+ .BR config .
73
+ .TP
74
+ .B man
75
+ Print this manual as plain text (the Windows path, where no
76
+ .B man
77
+ binary exists). With
78
+ .BR \-\-raw ,
79
+ print the roff source; with
80
+ .BR \-\-install ,
81
+ install it so
82
+ .B "man perfscale"
83
+ works. See
84
+ .B "MAN OPTIONS"
85
+ below.
86
+ .TP
87
+ .B self\-update
88
+ Download the release asset for this platform from GitHub Releases, verify
89
+ its sha256 against the release's
90
+ .IR sha256sums.txt ,
91
+ and atomically replace the current executable.
92
+ .B \-\-check
93
+ only checks (exit code 10 when an update exists);
94
+ .B \-\-force
95
+ reinstalls even when up to date.
96
+ .SH RUN OPTIONS
97
+ Exactly one of
98
+ .BR \-\-k6 ,
99
+ .BR \-\-locust ,
100
+ .BR \-f
101
+ selects the engine.
102
+ .TP
103
+ .BI \-\-k6 " FILE.js"
104
+ Run a k6 script (requires
105
+ .B k6
106
+ on PATH; load shape lives in the script's
107
+ .IR options ).
108
+ .TP
109
+ .BI \-\-locust " FILE.py"
110
+ Run a locustfile headless (requires
111
+ .B locust
112
+ on PATH; combine with
113
+ .B \-\-host
114
+ and
115
+ .BR \-c ).
116
+ .TP
117
+ .BI \-f ", " \-\-file " TEST.yaml"
118
+ Run a native perfscale test definition (YAML with a
119
+ .B steps:
120
+ list). Requires
121
+ .BR \-c .
122
+ .TP
123
+ .BI \-c ", " \-\-config " CONFIG.yaml"
124
+ Load config:
125
+ .BR vus ,
126
+ .BR duration ,
127
+ optional
128
+ .BR report.url ,
129
+ .BR before: / after:
130
+ setup/teardown steps, and
131
+ .BR variables: .
132
+ Required with
133
+ .BR \-f ;
134
+ optional load hint for
135
+ .BR \-\-locust ;
136
+ ignored by
137
+ .BR \-\-k6 .
138
+ .TP
139
+ .BI \-\-host " URL"
140
+ Target base URL for
141
+ .B \-\-locust
142
+ runs (passed through as locust's
143
+ .BR \-\-host ).
144
+ .TP
145
+ .BI \-\-report " URL"
146
+ After the run, POST the metric summary to a
147
+ .B perfscale serve
148
+ instance, e.g.
149
+ .IR http://localhost:7999 .
150
+ Overrides
151
+ .B report.url
152
+ from the config file.
153
+ .TP
154
+ .BR \-q ", " \-\-quiet
155
+ Suppress per-request output; errors and the final metric summary still
156
+ print. For the native engine the lines are dropped at the source, which also
157
+ removes their formatting/IO cost under high load.
158
+ .TP
159
+ .BI \-\-summary\-export " FILE"
160
+ After the run, write the parsed metric summary plus run metadata (engine,
161
+ VUs, duration, timestamp) to
162
+ .IR FILE .
163
+ Repeatable. A
164
+ .B .md
165
+ or
166
+ .B .json
167
+ extension picks the format per file; otherwise
168
+ .BR \-\-summary\-format
169
+ (default: JSON).
170
+ .TP
171
+ .BI \-\-summary\-format " json|md"
172
+ Format for
173
+ .B \-\-summary\-export
174
+ files without a recognized extension.
175
+ .B md
176
+ renders a Markdown table \(em handy for CI job summaries (e.g.
177
+ .BR $GITHUB_STEP_SUMMARY ).
178
+ .SH MAN OPTIONS
179
+ .TP
180
+ .B \-\-raw
181
+ Print the roff source of this manual instead of the plain-text rendering.
182
+ .TP
183
+ .B \-\-install
184
+ Install the man page so
185
+ .B "man perfscale"
186
+ works. Writes
187
+ .I perfscale.1
188
+ into the man directory (default:
189
+ .IR ~/.local/share/man/man1 ,
190
+ override with
191
+ .BR \-\-dir )
192
+ and runs
193
+ .B mandb
194
+ when available.
195
+ .TP
196
+ .BI \-\-dir " PATH"
197
+ Man directory for
198
+ .BR \-\-install .
199
+ Use
200
+ .IR /usr/local/share/man/man1
201
+ for a system-wide install (may need elevated privileges).
202
+ .SH ENVIRONMENT
203
+ .TP
204
+ .B PERFSCALE_NO_UPDATE_CHECK
205
+ Set to
206
+ .B 1
207
+ to disable the passive "update available" hint printed by other commands
208
+ (at most once per 24h, interactive terminals only).
209
+ .TP
210
+ .B MANPATH
211
+ Standard
212
+ .BR man (1)
213
+ search path. When
214
+ .B perfscale man \-\-install
215
+ uses the default per-user directory, ensure
216
+ .I ~/.local/share/man
217
+ is on it (most Linux man-db setups include it automatically; on macOS add
218
+ it to your shell profile).
219
+ .SH EXIT STATUS
220
+ .B perfscale run
221
+ exits 0 even when checks fail (failed checks are load-test feedback, printed
222
+ to stderr and the summary); it exits 1 when the run itself cannot execute
223
+ (bad file, engine missing, invalid YAML).
224
+ .B perfscale lint
225
+ exits 0 when every file is valid, 1 otherwise.
226
+ .B perfscale self-update \-\-check
227
+ exits 10 when an update exists.
228
+ .SH EXAMPLES
229
+ Run an existing k6 script:
230
+ .PP
231
+ .nf
232
+ .RS
233
+ perfscale run --k6 script.js
234
+ .RE
235
+ .fi
236
+ .PP
237
+ Run a locustfile headless against a target:
238
+ .PP
239
+ .nf
240
+ .RS
241
+ perfscale run --locust locustfile.py --host https://target.example.com -c load.yaml
242
+ .RE
243
+ .fi
244
+ .PP
245
+ Run a native YAML test and export a Markdown summary for CI:
246
+ .PP
247
+ .nf
248
+ .RS
249
+ perfscale run -f test.yaml -c config.yaml \\
250
+ --summary-export "$GITHUB_STEP_SUMMARY" --summary-format md
251
+ .RE
252
+ .fi
253
+ .PP
254
+ Collect summaries locally:
255
+ .PP
256
+ .nf
257
+ .RS
258
+ perfscale serve &
259
+ perfscale run -f test.yaml -c config.yaml --report http://localhost:7999
260
+ .RE
261
+ .fi
262
+ .PP
263
+ Read this manual without
264
+ .BR man (1)
265
+ (e.g. on Windows):
266
+ .PP
267
+ .nf
268
+ .RS
269
+ perfscale man
270
+ .RE
271
+ .fi
272
+ .PP
273
+ Install the man page:
274
+ .PP
275
+ .nf
276
+ .RS
277
+ perfscale man --install
278
+ man perfscale
279
+ .RE
280
+ .fi
281
+ .SH SEE ALSO
282
+ Full documentation:
283
+ .UR https://perfscale.su/docs/oss
284
+ .UE
285
+ .PP
286
+ Source and issue tracker:
287
+ .UR https://github.com/Perfscale/perfscale
288
+ .UE
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@perfscale/exe",
3
3
  "description": "perfscale — load testing CLI (k6, Locust, and a native engine) as a standalone binary, installed via npm.",
4
- "version": "0.7.1",
4
+ "version": "0.7.2",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -21,12 +21,15 @@
21
21
  "bin": {
22
22
  "perfscale": "bin/perfscale.js"
23
23
  },
24
+ "man": [
25
+ "man/perfscale.1"
26
+ ],
24
27
  "optionalDependencies": {
25
- "@perfscale/linux-x64": "0.7.1",
26
- "@perfscale/linux-arm64": "0.7.1",
27
- "@perfscale/darwin-x64": "0.7.1",
28
- "@perfscale/darwin-arm64": "0.7.1",
29
- "@perfscale/win32-x64": "0.7.1",
30
- "@perfscale/win32-arm64": "0.7.1"
28
+ "@perfscale/linux-x64": "0.7.2",
29
+ "@perfscale/linux-arm64": "0.7.2",
30
+ "@perfscale/darwin-x64": "0.7.2",
31
+ "@perfscale/darwin-arm64": "0.7.2",
32
+ "@perfscale/win32-x64": "0.7.2",
33
+ "@perfscale/win32-arm64": "0.7.2"
31
34
  }
32
35
  }