# 测试与验收报告 验收日期:2026-10-06。环境:Windows、.NET SDK 10.0.401、ASP.NET Core / EF Core 10.0.12、SQL Server LocalDB。本地 HTTP 预览与隔离 SQLite 集成测试均已运行;没有配置真实高德密钥。 ## 自动化结果 Release 运行 **55 项全部通过,0 失败,0 跳过**。涵盖 Core 算法、MVC/JSON 集成、地图 HTTP 模拟和合成算法对比。 ~~~powershell dotnet test EARSystem.sln -c Release --logger 'trx;LogFileName=release-tests.trx' ~~~ 原始报告位于 tests/EARSystem.Tests/TestResults/release-tests.trx(本地忽略目录)。构建通过,无编译警告或错误;EF 检查确认模型与已提交迁移一致。发布目录可通过 dotnet publish 生成,未执行公网部署。 | 验收项 | 已验证 | |---|---| | 完整闭环 | 浏览器演示登录、日记、自动目标、推荐详情、收藏、体验同步日记、周报 | | 日情绪画像 | 同日取最后记录、同一记录时间按创建时间取最新、最近权重、最新加倍、过期及未来数据排除 | | 目标优先级 | 高压/低精力、活跃状态、已确认学习目的、本次覆盖 | | 多维算法 | 同距氛围、同氛围距离、低精力衰减、预算与缺失值、历史先验、类别多样性、按有效权重解释并提供两条理由 | | 文字规则 | 最长短语、不开心、不难过、否定程度词、反话与空文本 | | 个人边界 | 匿名 401、防伪失败 400、他人记录 404、普通用户不能进入管理后台 | | 并发版本 | 日记/体验过期版本不能编辑或删除,规则配置过期版本冲突 | | 体验事务 | 同步日记、每日唯一、收藏“去过”、同步评分回读与解除同步保留内容 | | 贡献更新 | 编辑、撤回、删除重算;正文不进入地点响应;不同日期按贡献人数去重 | | 来源隔离 | Demo 账号的反馈不进入 Collected 氛围;已有地点不能变更来源 | | 地图模拟 | WGS84 转换、GCJ02 不重复转换、去重、可选字段、错误脱敏、取消请求 | | 安全代理 | 白名单、固定上游、服务器密钥注入、覆盖客户端伪造参数、no-store | | 回顾口径 | 周报按日末记录、无数据留空、北京时间日/周边界 | | 管理与可靠性 | 管理员无日记正文入口、权重合法性、初始化完成后不重建已删除记录 | | 输入与展示 | 无效时间/分数、null 数组、纯文本日记输出、清空预算覆盖默认值 | 同源 JSON 写入都校验防伪令牌;测试账号来自隔离测试数据库,不操作用户的真实资料。 ## 推荐性能 在运行中的 Kestrel + LocalDB 上使用 20 个独立示例账号,60 个虚构地点。每个账号预热一次,然后 20 并发×5 轮,测量完整 HTTP 返回耗时,包括查询、排序和推荐历史写入。 | 指标 | 结果 | |---|---:| | 实测请求数 | 100 | | 失败 | 0 | | 平均 | 85.76 ms | | P50 | 85.23 ms | | P95 | **112.43 ms** | | 最大 | 113.30 ms | | 目标 | P95 < 1000 ms | 复现: ~~~powershell node tools/benchmark.mjs http://localhost:5188 ~~~ 仅允许本机地址,凭据从忽略的本地示例文件读取,不回显密码。数据快照为 benchmark-summary.json,原始最新输出 artifacts/benchmark.json。结果代表本机预热后的合成负载,生产硬件、数据规模和在线服务耗时需重新测量。 ## 三种排序的合成评估 60 个虚构地点,4 目标×5 查询中心,共 20 场景。候选过滤相同;类别相关性标签独立声明,详见 ALGORITHM.md。数据快照为 evaluation-summary.json。 | 方案 | Precision@5 | NDCG@5 | 前五类别数均值 | 模拟满意度 /5 | |---|---:|---:|---:|---:| | 按距离 | 0.5600 | 0.4747 | 3.40 | 3.13 | | 按综合评分 | 0.4500 | 0.4125 | 4.00 | 2.57 | | 多维匹配 | 0.9100 | 0.8828 | 2.40 | 4.41 | 多维排序符合本次人工设定的目标类别,但前五项类别覆盖低于两种基线。这是合成实验中的行为展示;“模拟满意度”来自公式,不能作为真实试用结论。真实用户满意度与相关性尚未采集。 ## 浏览器验收 使用本机内嵌浏览器实际点击与提交表单: - 文字“最近很疲惫,准备学习”产生提示,点击确认后自动推荐为专注学习。 - 打开书店详情,收藏并记录体验,选择同步日记后可见保存成功及关联状态。 - 回顾显示新体验和当日心情;周报更新到访数及满意度。 - 手机端实际保存日记;首页补记较早时间后,仍显示当天较新的自评,并保留“已保存”提示。 - 390×844 视口检查趋势、日历、推荐和表单,桌面检查左侧列表与右侧分布图。 - 示例地点持续注明“演示数据”;演示账号注明初始日记与体验是合成样本。 截图位于 screenshots/。验证为浏览器视口测试,并非实体手机或 IIS 远程设备测试。 ## 尚需真实环境验收 - 高德真实 Key、配额和瓦片加载;真实 HTTPS 浏览器授权/拒绝/超时定位,以及真实地址搜索和路线。 - IIS + SQL Server Express 部署、受信任证书和远程设备。 - 实际用户试用与独立报告。 这些路径已有实现、异常提示与部署说明;当前演示模式无需高德 Key,也无需外网,可完成核心业务闭环。