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