{% set nav_active = 'test' %}{% include "_nav.html" %}
{% if results %}
{{ total }}
样本总数
{{ pass_count }}
检测通过 ✅
{{ fail_count }}
检测未通过 ❌
🔄 重新扫描
📦 当前策略:{{ policy_version or '-' }} {% if last_run_at %} 🕐 上次运行:{{ last_run_at|bj_time("%m-%d %H:%M:%S") }} {% else %} ⚠️ 从未运行过 —— 点「重新扫描」开始检测 {% endif %} {% if rescan %}✅ 本次为实时全量扫描结果{% endif %}
{% if results[0].clamav_error %}
⚠️ ClamAV 引擎不可用(本地未起 clamd)—— 部分 verdict 显示为 error (ClamAV 不可用), 但 YARA / structure / documents / keywords 引擎已正常工作。生产环境 docker compose 起 ClamAV 后会自动加载。
{% endif %} {% for r in results %} {% endfor %}
用例编号 # 结果 样本文件 层 期望裁决 · 规则 检测结论 · 规则 方向 规则 Score 耗时 Findings
{% if r.case_id %} {{ r.case_id }} {% else %} — {% endif %} {{ loop.index }} {% if r.overall_ok %}✅{% else %}❌{% endif %}
{{ r.filename }}
{{ r.description }}
{{ r.category }} {% set exp_v = r.expected_verdict or '' %} {% if exp_v in ('reject', 'malicious') %} 拦截 {{ exp_v }} {% elif exp_v == 'suspicious' %} 可疑 {% elif exp_v == 'pass' or exp_v == 'clean' %} 放行 {{ exp_v }} {% else %} {{ exp_v or '未设' }} {% endif %} {% if r.expected_rules %}
{% for rule in r.expected_rules %} {{ rule_labels.get(rule, rule) }} {% endfor %}
{% endif %}
{{ r.actual_verdict|cn_verdict }} {% if r.clamav_error %}
ClamAV 不可用
{% endif %} {% if r.actual_rules %}
{% for rule in r.actual_rules %} {{ rule_labels.get(rule, rule) }} {% endfor %}
{% elif r.actual_verdict in ('pass', 'clean') %}
(无规则命中)
{% else %}
⚠️ 无规则
{% endif %}
{% if r.verdict_match %} ✅ {% else %} ❌ {% endif %} {% if r.rule_hit %} ✅ {% else %} ❌ {% endif %} {{ "%.0f"|format(r.score) }} {{ r.duration_ms }}ms
{{ r.findings_count }} 条 {% if r.findings %} {% for f in r.findings %} {% endfor %}
引擎规则严重度权重细节
{{ f.engine }} {{ f.rule }} {{ f.severity }} {{ f.weight }} {{ f.detail }}
{% endif %}
{% else %}
测试样本目录不存在:{{ samples_dir }}
请运行:python scripts/generate_test_samples.py
{% endif %}