chaperon v0.1.3 Chaperon View Source
Chaperon is a HTTP service load & performance testing tool.
Link to this section Summary
Functions
Connect the current node to a Chaperon cluster without taking on any work (not running any load test Session tasks)
Runs a given load_test module’s scenarios concurrently, outputting metrics at the end
Called when an application is started
Link to this section Functions
connect_to_master(atom) :: :ok | {:error, any}
connect_to_master_without_work(atom) :: :ok | {:error, any}
Connect the current node to a Chaperon cluster without taking on any work (not running any load test Session tasks).
Useful if you want to connect to a running cluster for inspecting running load tests and kicking off new ones without performing any load testing work on the connecting node.
Runs a given load_test module’s scenarios concurrently, outputting metrics at the end.
lt_mod
LoadTest module to be executedoptions
List of options to be used. Valid values are::print_results
If set totrue
, will print all action results.:encode
Can be set to:json
, defaults to:csv
:output
Can be set to a file path:tag
Can be set to be used when using the default export filename. Allows adding a custom ‘tag’ string as a prefix to the generated result output filename.
Example
alias Chaperon.Export.JSON
Chaperon.run_load_test MyLoadTest, print_results: true
# => Prints results & outputs metrics in CSV (default) format at the end
Chaperon.run_load_test MyLoadTest, export: JSON
# => Doesn't print results & outputs metrics in JSON format at the end
Chaperon.run_load_test MyLoadTest, output: "metrics.csv"
# => Outputs metrics in CSV format to metrics.csv file
Chaperon.run_load_test MyLoadTest, export: JSON, output: "metrics.json"
# => Outputs metrics in JSON format to metrics.json file
Chaperon.run_load_test MyLoadTest, tag: "master"
# => Outputs metrics in CCSV format to "results/<date>/MyLoadTest/master-<timestamp>.csv"
Chaperon.run_load_test MyLoadTest, export: JSON, tag: "master"
# => Outputs metrics in JSON format to "results/<date>/MyLoadTest/master-<timestamp>.json"
Called when an application is started.
This function is called when an application is started using
Application.start/2
(and functions on top of that, such as
Application.ensure_started/2
). This function should start the top-level
process of the application (which should be the top supervisor of the
application’s supervision tree if the application follows the OTP design
principles around supervision).
start_type
defines how the application is started:
:normal
- used if the startup is a normal startup or if the application is distributed and is started on the current node because of a failover from another node and the application specification key:start_phases
is:undefined
.{:takeover, node}
- used if the application is distributed and is started on the current node because of a failover on the nodenode
.{:failover, node}
- used if the application is distributed and is started on the current node because of a failover on nodenode
, and the application specification key:start_phases
is not:undefined
.
start_args
are the arguments passed to the application in the :mod
specification key (e.g., mod: {MyApp, [:my_args]}
).
This function should either return {:ok, pid}
or {:ok, pid, state}
if
startup is successful. pid
should be the PID of the top supervisor. state
can be an arbitrary term, and if omitted will default to []
; if the
application is later stopped, state
is passed to the stop/1
callback (see
the documentation for the c:stop/1
callback for more information).
use Application
provides no default implementation for the start/2
callback.
Callback implementation for Application.start/2
.