{{ run.suite_name }} · {{ run.started_at[:19] if run.started_at else "" }}
| # | 步骤名称 | 期望操作 | 操作参数 | 结果 | 耗时 | 证据 / 错误 |
|---|---|---|---|---|---|---|
| {{ step.step_index }} | {{ step.name or "-" }} |
动作
{{ step.action }}
{% if step.step_def %}
{% if step.step_def.get("assert") %}
断言
{% for a in step.step_def.get("assert", []) %}
{{ a.type }}{% if a.get("contains") %}: {{ a.contains }}{% endif %}{% if a.get("equals") %}: {{ a.equals }}{% endif %}{% if a.get("negate") %} (取反){% endif %}
{% endfor %}
{% endif %}
{% endif %}
|
{% if step.step_def %}
{% set ns = [] %}
{% if step.step_def.get("selector") %}
{% if ns.append("selector") %}{% endif %}
选择器
{% for k, v in step.step_def["selector"].items() %}
{% if v is not none and v != [] %}
{{ k }}={{ v }}
{% endif %}
{% endfor %}
{% endif %}
{% if step.step_def.get("value") %}值 {% endif %}
{% if step.step_def.get("items") %}{{ step.step_def["value"] }}菜单路径 {% endif %}
{% if step.step_def.get("key") %}{{ step.step_def["items"] | join(' → ') }}按键 {% endif %}
{% if step.step_def.get("text") %}{{ step.step_def["key"] }}文本 {% endif %}
{% if step.step_def.get("args") %}{{ step.step_def["text"] }}参数 {% endif %}
{% if step.step_def.get("service") %}{{ step.step_def["args"] | join(', ') }}服务 {% endif %}
{% if step.step_def.get("method") %}{{ step.step_def["service"] }}方法 {% endif %}
{% if step.step_def.get("wait_after") %}{{ step.step_def["method"] }}等待 {% endif %}
{% else %}
-
{% endif %}
{{ step.step_def["wait_after"] }}ms |
{% if step.status == "passed" %} ✓ {% elif step.diagnostic %} ! {% else %} ✗ {% endif %} | {{ step.duration_ms }}ms |
{% if step.evidence %}
{{ step.error }}
{% endif %}
|