@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.
- package/man/perfscale.1 +288 -0
- package/package.json +10 -7
package/man/perfscale.1
ADDED
|
@@ -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.
|
|
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.
|
|
26
|
-
"@perfscale/linux-arm64": "0.7.
|
|
27
|
-
"@perfscale/darwin-x64": "0.7.
|
|
28
|
-
"@perfscale/darwin-arm64": "0.7.
|
|
29
|
-
"@perfscale/win32-x64": "0.7.
|
|
30
|
-
"@perfscale/win32-arm64": "0.7.
|
|
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
|
}
|