v0.11.0
- JMeter engine —
perfscale run --jmeter plan.jmxruns a JMeter test
plan headless (jmeter -n -t), streams its output live, and translates the
final consolesummary =line into the k6-compatible summary block
(avg/min/max and error rate — the console summary has no percentiles).
JMeter's exit code is the CI gate; there is no thresholds integration and
no perfscale config mapping. - WebSocket echo endpoint in
perfscale serve—GET /wsupgrades and
echoes every text (and binary) message back, a loopback target for
WebSocket load tests and the newwsbenchmark suite (messages/sec and
message RTT for the native engine and k6). - Embedding API for imports —
import::resolve_valueresolves the
import:chain of an API-submitted document (no file origin), and
ImportOptions::remote_guardlets a server veto every network target in
the chain (SSRF protection), including HTTP redirect hops. - HTTP plumbing is public for downstream actions —
step::httpnow
exposesClientPool,client,timed_exchange,HttpOutcome,
request_line,transport_error, anderror_chain, plus
Context::http_client_shard(), so proprietary action families (e.g.
pro/soap) pool, time, and report HTTP exchanges identically to
std/http@v1. - k6-style load profiles in the native engine —
stages:ramps VUs
linearly between targets (graceful scale-down at step boundaries) and
arrival:holds an iterations/sec rate profile with a lazily growing
worker pool (max_vus,pre_allocated_vus). For staged/arrival runs the
summary'svusline reports the observed concurrency
(vus....................: <last> min=<min> max=<max>), the periodic
[stats]line gains a trailingvus=Nfield (downstream parsers: the
field appears only on staged/arrival runs; fixed-run lines are
unchanged), summary exports reportvus: null, and arrival runs surface
adropped_iterationsmetric for permits the saturated pool couldn't
serve. Both profiles are native-engine only —--locustrejects them with
a clear error.
Full Changelog: v0.10.0...v0.11.0