编辑 | blame | 历史 | 原始文档

功能测试报告_一键启停脚本与桌面入口_2026-09-19

一、功能说明

  1. 新增 stop-dev.ps1(项目根目录):与既有 start-dev.ps1 配套的一键停止脚本。
  • 按「启动用的 cmd 父进程」整树结束:cmd.exe /c mvn.cmd ... spring-boot:run、cmd.exe /c npm.cmd run serve,
    用 taskkill /T /F 连带子进程(maven java → app java;npm node → cmd → vue-cli-service node);
  • 兜底再按命令行特征精确匹配孤儿进程:java.exe 含 TrafficAuditApplication、node.exe 含 vue-cli-service;
  • 结束后校验 8090/8080 是否已释放;
  • 明确不碰其它 node/java 进程(如 Codex 的 node_repl)与用户自己开的 cmd 窗口。
  1. 桌面一键入口(工作区外,不入库):
  • D:\桌面\启动交通审核系统.bat:调用 start-dev.ps1(已在跑则跳过、不在跑则拉起并等待就绪),最后打开 http://localhost:8080;
    带参数 nobrowser 可只启服务不弹浏览器。
  • D:\桌面\停止交通审核系统.bat:调用 stop-dev.ps1。

二、测试环境

项 值
日期 2026-09-19 00:4x–00:5x
项目 D:\文档\ChatGPT\traffic-audit
服务 后端 8090(Spring Boot)、前端 8080(Vue)、MySQL 3308
脚本编码 .ps1 = UTF-8 with BOM;.bat = GBK(936) + CRLF,首行 chcp 936

三、用例表

编号 用例 输入/操作 预期 实际 结论
T01 已在运行时启动(正向·幂等) 服务在跑时执行 启动交通审核系统.bat nobrowser 跳过启动,不新建重复进程 打印「后端已在运行(8090 有监听),跳过启动。」「前端已在运行(8080 有监听),跳过启动。」,随后校验「后端: OK,已就绪」「前端: OK,已就绪」 ✅ 通过
T02 未运行时启动(正向) 服务已停时执行 启动交通审核系统.bat nobrowser 拉起前后端并等待就绪 新建后端链(cmd PID 8964 → java → app java)与前端链(cmd PID 26024 → node → cmd → node);backend.log 出现 Tomcat started on port(s): 8090 与 Started TrafficAuditApplication(00:48:33) ✅ 通过
T03 停止服务(正向) 执行 停止交通审核系统.bat 两个进程树被结束,端口释放 后端 5 个进程、前端 5 个进程被结束;打印「端口 8090:已释放」「端口 8080:已释放」 ✅ 通过
T04 启停闭环可用性(正向) 停 → 启 之后访问页面接口 前端 8080、后端接口均正常 前端 HTTP 200;后端 /api/import/batches HTTP 200(能取到最近「市州单表批量导入(物流(物流园区)/8月)」批次) ✅ 通过
T05 不误杀(负向) 执行停止脚本期间观察 Codex 自身 Codex 内核 node_repl 与其它 cmd 窗口不受影响 停止脚本仍在正常运行(本会话工具调用未中断),全程未匹配 node_repl ✅ 通过

四、发现的问题与处置

编号 问题 根因 处置
P01 第一版 .bat 运行时大量报 'xx' is not recognized as an internal or external command,且命令行被截断(如 'xecutionPolicy') 批处理文件必须使用 CRLF 换行,首版写成了 LF,cmd 逐行解析错位 改为按行数组 -join "\r`n"写出,复测正常 | | P02 | 首版stop-dev.ps1报UnexpectedToken/「字符串缺少终止符」,中文提示被读成乱码 | Windows PowerShell 5.1 读取**无 BOM** 的 UTF-8 脚本时按 ANSI(936) 解释,多字节序列被打断 | 改写为 **UTF-8 with BOM**(与既有start-dev.ps1一致),复测正常 | | P03 | 停止脚本按名称模糊停进程有误杀风险 | —— | 只按「启动用的 cmd 父进程 + 精确命令行特征」匹配,taskkill /T` 结束整树,不按进程名批量杀

五、遗留与说明

  1. 两个桌面 .bat 位于工作区外(D:\桌面),**不入 git**;stop-dev.ps1 已入库,与 start-dev.ps1 配套。
  2. 服务仍以 cmd /c ... > log 方式常驻:**关掉启动窗口会带走服务**(本次报错即由此而来)。日常用桌面「启动」入口双击即可恢复。
  3. 若端口未完全释放(极端情况),停止脚本会提示「仍在监听,请重跑一次」。

六、结论

5 条用例全部通过:启动脚本幂等跳过、停止脚本按 PID 整树结束并释放 8090/8080、
启停闭环后页面与接口均正常,且不影响 Codex 自身进程。两个编码问题(LF 换行、缺 BOM)已定位并修复复测。