Events¶
You can register one or several functions to receive events
emited during the load test. You just need to decorate the function
with the molotov.events()
fixture described below:
- molotov.events()¶
Called everytime Molotov sends an event
Arguments received by the decorated function:
event Name of the event
extra argument(s) specific to the event
The decorated function should be a coroutine.
IMPORTANT This function will directly impact the load test performances
Current supported events and their keyword arguments:
sending_request: session, request
response_received: session, response, request
current_workers: workers
scenario_start: scenario, wid
scenario_success: scenario, wid
scenario_failure: scenario, exception, wid
The framework will gradually get more events triggered from every step in the load test cycle.
In the example below, all events are printed out:
"""
This Molotov script demonstrates how to hook events.
"""
import molotov
@molotov.events()
async def print_request(event, **info):
if event == "sending_request":
print("=>")
@molotov.events()
async def print_response(event, **info):
if event == "response_received":
print("<=")
@molotov.scenario(100)
async def scenario_one(session):
async with session.get("http://localhost:8080") as resp:
res = await resp.json()
assert res["result"] == "OK"
assert resp.status == 200