Execution Timing Metrics

ReṼoman captures detailed execution timing metrics for each sub-step of the Step Procedure. These metrics help you identify performance bottlenecks, track response times, and analyze time spent in different phases of your API workflow.

Each StepReport includes an exeTimings map that records the Duration for each executed sub-step:

exeTimings: Map<ExeType, Duration>

Sub-step Types (ExeType): * PRE_REQ_JS — Time spent executing Pre-request JavaScript * UNMARSHALL_REQUEST — Time spent unmarshalling and transforming the request (including regex replacements) * PRE_STEP_HOOK — Time spent executing Pre-step hooks * HTTP_REQUEST — Total HTTP round-trip time (includes both request and response, combining HTTP_REQUEST + HTTP_STATUS) * POST_RES_JS — Time spent executing Post-response JavaScript (tests) * UNMARSHALL_RESPONSE — Time spent unmarshalling the response * POST_STEP_HOOK — Time spent executing Post-step hooks * POLLING — Time spent in polling logic (if configured)

  • Only sub-steps that actually execute are included in the timing map

  • If a step fails early, subsequent sub-steps won’t have timing entries

  • The HTTP_REQUEST timing captures the complete HTTP round-trip, measuring from just before the request is fired until the response is received

  • All timings are captured using java.time.Duration for precision

JSON Serialization

When serializing a Rundown to JSON using toJson(), execution timings are included at STANDARD verbosity level and above:

{
  "stepReports": [
    {
      "stepName": "Create User",
      "exeTimings": {
        "pre-req-js": 5,
        "unmarshall-request": 12,
        "http-request": 234,
        "post-res-js": 3,
        "unmarshall-response": 8,
        "post-step-hook": 15
      },
      ...
    }
  ]
}
  • Keys use kebab-case format (e.g., "pre-req-js", "http-request")

  • Values are in milliseconds

  • Timings are not included in SUMMARY verbosity