pub enum Commands {
Run {Show 30 fields
input: PathBuf,
format: Option<String>,
vus: Option<u32>,
duration: Option<String>,
env: Vec<String>,
env_file: Option<PathBuf>,
data_file: Option<PathBuf>,
config: Option<PathBuf>,
reporter: Vec<String>,
output: Option<PathBuf>,
prometheus_url: Option<String>,
otlp_endpoint: Option<String>,
summary_export: Option<PathBuf>,
json_stream: Option<PathBuf>,
statsd_addr: Option<String>,
influxdb_addr: Option<String>,
execution_segment: Option<String>,
execution_segment_sequence: Option<String>,
threshold: Vec<String>,
control_port: Option<u16>,
insecure: bool,
verbose: bool,
http_debug: Option<String>,
no_redirects: bool,
no_thresholds: bool,
mode: Option<String>,
stages: Option<String>,
iterations: Option<u64>,
subprocess_adapter: Vec<String>,
plugins_dir: Option<PathBuf>,
},
Extensions {
plugins_dir: Option<PathBuf>,
},
Inspect {
input: PathBuf,
format: Option<String>,
plugins_dir: Option<PathBuf>,
subprocess_adapter: Vec<String>,
},
Archive {
input: PathBuf,
format: Option<String>,
output: Option<PathBuf>,
data_file: Option<PathBuf>,
env_file: Option<PathBuf>,
config: Option<PathBuf>,
},
Build {
with: Vec<String>,
output: Option<PathBuf>,
debug: bool,
},
Version,
New {
output: PathBuf,
},
Agent {
port: u16,
token: Option<String>,
bind: String,
exit_with_parent: bool,
allow_origin: Vec<String>,
},
}Variants§
Run
Run a load test
Fields
format: Option<String>Input format (auto-detect if not specified).
Use tropel extensions to list available formats.
config: Option<PathBuf>JSON config file (partial JobConfig overlay). Merged with precedence: explicit CLI flags > config file > K6_* env > defaults.
summary_export: Option<PathBuf>k6-style summary export path: writes the aggregated summary data object as JSON (when no script handleSummary overrides output)
json_stream: Option<PathBuf>NDJSON streaming output file (k6 --out json=file equivalent):
every sample is appended as one JSON line during the run
statsd_addr: Option<String>StatsD / Datadog agent address (host:port, e.g. localhost:8125) for streaming datagram output
influxdb_addr: Option<String>InfluxDB line-protocol UDP address (host:port, e.g. localhost:8089) for streaming line-protocol datagrams
execution_segment: Option<String>Deterministic workload partition for this node, as “from:to”
(e.g. “0:1/3”) — k6 executionSegment. Combined with
–execution-segment-sequence this node runs only its fraction of
the workload (VUs/iterations/rate), scaled deterministically.
execution_segment_sequence: Option<String>Full sequence of segment boundaries shared by all cooperating
nodes, e.g. “0,1/3,2/3,1” — k6 executionSegmentSequence.
control_port: Option<u16>Port for the runtime control API (k6 REST parity). When set with
an externally-controlled executor, binds 127.0.0.1:
http_debug: Option<String>Log every HTTP request/response at debug level. Without =full,
prints the method, URL, status, timing, and body / header counts.
With --http-debug=full, also prints the request/response headers
and the first 1 KiB of the body. Equivalent to k6’s --http-debug
and --http-debug=full.
no_redirects: boolNever follow redirects: each 3xx response is returned to the script as-is and every redirect hop is counted as a request (default) — with this flag the 3xx itself IS the final response. k6 always follows redirects (up to maxRedirects); this opt-out is a Tropel extra.
no_thresholds: boolSkip all threshold evaluation — don’t fail the run even if thresholds would fail. Mid-run abortOnFail is also disabled. k6 has no equivalent; this pairs with –no-summary.
mode: Option<String>Run mode: constant-vus, ramping-vus, shared-iterations, arrival-rate
(optional — when absent, a k6 script’s own export const options
drives the load profile; passing this flag makes the CLI profile win)
subprocess_adapter: Vec<String>Subprocess adapter command (e.g. --subprocess-adapter "python3 my-adapter.py").
Runs the command for each detect/parse call, passing bytes on stdin
and reading a JSON Scenario from stdout.
The adapter is registered as subprocess:<cmd> (use with --format)
and is also probed during content auto-detection, like WASM plugins.
Each call is bounded by a 30s timeout and a 16 MiB output cap.
Extensions
List available input formats and their capabilities
Inspect
Inspect an input file without running it: shows how Tropel resolves it (driver or adapter), the parsed scenario summary (name, request count, methods, variables, auth), and any script-declared options.
Fields
Archive
Bundle a test into a self-contained directory: the input file plus its referenced dependencies (data file, env file, config file) and a manifest, so the test can be replayed on another machine without the original paths.
Fields
Build
Build a custom Tropel binary with extensions
Fields
with: Vec<String>Extension crates to include.
Forms: name or name@1.2.3 (crates.io), ./path (local dir),
https://host/user/repo or git@host:user/repo.git (git),
and git refs: git-url@main (branch), git-url@v1.2.3 (tag),
git-url@<sha> (rev).
Example: --with tropel-x-grpc --with ./my-ext --with https://github.com/u/r@v0.2.0
Version
Print the version and build information
New
Generate a new k6-style script template.
Agent
Run the localhost agent server (TR-405). knockport’s desktop transport reaches the same engine over this socket — one engine from Send to 10 000 VU. Localhost-only by default; refuses a non-loopback bind.
Fields
exit_with_parent: boolExit as soon as the process that spawned this agent is gone.
TR-471: a supervisor’s own cleanup does not run when it is SIGKILLed or crashes, and an agent left behind keeps a loopback port open with the variables and client secrets it was sent.
Detected by stdin EOF, so the spawning process MUST give the agent a stdin pipe and hold it open. With stdin on /dev/null or closed, the agent exits immediately (and says so).
allow_origin: Vec<String>Browser origin allowed to reach this agent, e.g.
--allow-origin https://app.knockport.dev. Repeatable.
TR-459: an ALLOWLIST, and empty by default, so a browser cannot
reach the agent at all unless a human names the page. The agent
holds collection variables and OAuth client secrets and will
execute any request handed to it — * would let any tab the user
has open drive it, and the token is no defence because a browser
attaches it automatically once CORS permits the call.
Trait Implementations§
Source§impl FromArgMatches for Commands
impl FromArgMatches for Commands
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Subcommand for Commands
impl Subcommand for Commands
Source§fn augment_subcommands<'b>(__clap_app: Command) -> Command
fn augment_subcommands<'b>(__clap_app: Command) -> Command
Source§fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Self can parse a specific subcommandAuto Trait Implementations§
impl Freeze for Commands
impl RefUnwindSafe for Commands
impl Send for Commands
impl Sync for Commands
impl Unpin for Commands
impl UnsafeUnpin for Commands
impl UnwindSafe for Commands
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more