{% macro render_step(step) %}
  • {% if step.steps or step.attachments or step.func_name or step.args or step.return_value %} {% if step.status == 'failed' %}−{% else %}+{% endif %} {% else %} {% endif %} {% if step.status == 'passed' %}✓{% else %}✗{% endif %} {{ step.name }}
    {{ formatter.format_duration(step.duration) }}
    {% if step.code %}
    PYTHON SOURCE CODE - {% if step.status == 'passed' %}PASSED (✅){% else %}FAILED (❌){% endif %}
    {{ step.code|escape }}
    {% endif %} {% if step.func_name or step.args or step.return_value %}
    def {% if step.class_name %}{{ step.class_name }}.{% endif %}{{ step.func_name or step.name }}:
    {% if step.args %}
    📥 Arguments (Request / Inputs):
    {% for name, val in step.args.items() %} {% endfor %}
    {{ name }} {{ val|escape }}
    {% endif %} {% if step.return_value %}
    📤 Return (Response / Output):
    {{ step.return_value|escape }}
    {% endif %}
    {% endif %} {% if step.status == 'failed' and step.exception_message %}
    Error: {{ step.exception_message }}
    {% if step.traceback %}
    {{ step.traceback }}
    {% endif %} {% endif %} {% if step.steps %} {% endif %} {% if step.attachments %} {% set has_images = namespace(value=False) %} {% for att in step.attachments %} {% if 'image' in att.mime_type %} {% set has_images.value = True %} {% endif %} {% endfor %} {% if has_images.value %}
    {% for att in step.attachments %} {% if 'image' in att.mime_type %}
    {{ att.name }}
    {{ att.name }}
    {% endif %} {% endfor %}
    {% endif %} {% for att in step.attachments %} {% if 'image' not in att.mime_type %}
    📄 {{ att.name }}
    {{ att.content|escape }}
    {% endif %} {% endfor %} {% endif %}
  • {% endmacro %}

    {{ run.title }}

    HIGH PERFORMANCE AUTOMATION INTERFACE
    Generated: {{ generated_at }}

    Passed Rate

    0%
    {{ run.passed }} / {{ run.total }} successful
    0%

    Test Suites

    {{ run.suites|length }} Suites
    {{ run.test_cases|length }} test cases executed

    Total Duration

    {{ formatter.format_duration(run.duration) }}
    Avg: {{ formatter.format_duration(run.duration / run.total if run.total > 0 else 0) }} per test

    📈 Performance & Execution Analytics

    🧪 Test Status Breakdown by Suite

    ⏱️ Top 10 Slowest Tests

    📊 Test Duration Distribution

    {% if run.skipped > 0 %} {% endif %} {% if run.error > 0 %} {% endif %}
    {% for suite in run.suites %}
    {{ suite.name }}
    {{ suite.passed }}/{{ suite.total }}
    {% for tc in suite.test_cases %}
    {{ tc.name }} ⏱️ {{ tc.status }}
    Line {{ tc.line_number }} ⏱️ {{ formatter.format_duration(tc.duration) }}
    {% endfor %}
    {% endfor %}

    No Test Selected

    Click on a test case from the list on the left to see full details, steps, screenshots, and logs.

    {% for tc in run.test_cases %} {% endfor %}

    ⚙️ System Environment Metrics

    {% for k, v in run.environment.items() %}
    {{ k }} {{ v }}
    {% endfor %}
    🤖 POWERED BY APMT REPORTERS • ALL RIGHTS RESERVED © 2026.