chaperon v0.1.0 Chaperon View Source

Chaperon is a HTTP service load & performance testing tool.

Link to this section Summary

Functions

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

Link to this function connect_to_master(node_name) View Source
connect_to_master(atom) :: :ok | {:error, any}
Link to this function run_load_test(lt_mod, options \\ []) View Source

Runs a given load_test module’s scenarios concurrently, outputting metrics at the end.

  • lt_mod LoadTest module to be executed
  • options List of options to be used. Valid values are:

    • :print_results If set to true, will print all action results.
    • :encode Can be set to :json, defaults to :csv
    • :output Can be set to a file path, defaults to :stdio
    • :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

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 node node.
  • {:failover, node} - used if the application is distributed and is started on the current node because of a failover on node node, 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.

Link to this function write_output(lt_mod, output, path) View Source