Current section
Files
Jump to
Current section
Files
examples/ws_echo.ex
defmodule WS.Echo.Scenario do
use Chaperon.Scenario
def init(session) do
session
|> assign(counter: 0)
|> ok
end
def run(session) do
iterations = session |> config([:echo, :iterations])
session
|> ws_connect("/")
|> repeat_traced(:echo, iterations)
|> log_info("Echo finished after #{iterations} iterations")
|> ws_close
end
def echo(session) do
msg = "Echo ##{session.assigned.counter}"
session
|> ws_send(msg)
|> ws_await_recv(msg)
|> update_assign(counter: &(&1 + 1))
end
end
defmodule WS.Echo.LoadTest do
use Chaperon.LoadTest
def default_config,
do: %{
base_url: "wss://echo.websocket.org",
merge_scenario_sessions: true
}
def scenarios,
do: [
{{100, WS.Echo.Scenario},
%{
echo: %{
iterations: 10
}
}}
]
end
Chaperon.run_load_test(WS.Echo.LoadTest)