chore: 会话存档集中到 sessions/,整目录忽略提交 把两个会话存档目录(20260911_1.3.3公告问题核查、20260911_1.3.4智能助手功能核查) 移到统一的 sessions/ 下,.gitignore 由「按目录命名规则匹配」改为直接忽略 sessions/, 规则更简单直观。 移动 57 个文件(含 32 张截图),内容不变 修正会话 README 里的相对路径引用(../ → ../../,共 4 处) 同步顶层 README 的目录结构与说明 .gitignore 用 git check-ignore 验证:sessions/ 及其全部子目录均被忽略 此后新增会话一律建在 sessions/ 下,无需再改 .gitignore。
chore: 会话存档集中到 sessions/,整目录忽略提交
把两个会话存档目录(20260911_1.3.3公告问题核查、20260911_1.3.4智能助手功能核查) 移到统一的 sessions/ 下,.gitignore 由「按目录命名规则匹配」改为直接忽略 sessions/, 规则更简单直观。
git check-ignore
此后新增会话一律建在 sessions/ 下,无需再改 .gitignore。
Web 应用的前端操控 / 截图工具。用裸 Chrome DevTools Protocol 驱动无头浏览器, 完成「注入登录态 → 导航 → 执行 JS → 截图」的自动化验证与取证。
放在被测试项目仓库之外,避免测试脚本污染主仓历史。
cdp-driver/ 前端操控 / 截图工具(通用,可跨项目复用)──【入库】 drive.mjs 交互式 CDP 驱动(主力) shot.mjs 纯截图(轻量) get-token.sh 登录并写 .token README.md 用法 + 踩坑记录(用之前先看) sessions/ 会话存档(本地数据,不入库)──【.gitignore 已忽略】 <YYYYMMDD>_<主题>/ README.md 这次查了什么、结论、对应 commit actions/ 本次运行的前端操控脚本(按执行顺序编号) shots/ 截图存档
cd cdp-driver ./get-token.sh # 登录,写 .token(服务重启后需重跑) node drive.mjs "<页面URL>" <actions.json> [out.png] [waitMs]
actions.json 是声明式用例,加测试 = 加一个 JSON 文件,不用写代码:
actions.json
[ {"eval": "document.getElementById('notifBell').click(); 'clicked'"}, {"sleep": 2500}, {"eval": "location.pathname + location.search"}, {"shot": "_rerun/after-click.png"} ]
换测试环境只改环境变量:HUISHI_BASE=http://<host>:8001 node drive.mjs ...
HUISHI_BASE=http://<host>:8001 node drive.mjs ...
WebSocket
npm install
Runtime.evaluate
Page.captureScreenshot
sleep
本仓库只跟踪 cdp-driver/ 与本文档,可跨项目、跨版本长期复用。
cdp-driver/
会话存档不入库:所有会话统一放在 sessions/ 下,该目录已整体列入 .gitignore, 一律留在本地磁盘——里面含被测系统的真实数据与内部信息,不适合随仓库扩散。
sessions/
.gitignore
看历史结论请在本地打开对应会话目录;需要复现时按其 README 重跑 actions/ 里的用例。
actions/
.token
.chrome-profile/
_rerun/
改脚本或复用时值得回顾(详见 cdp-driver/README.md 的踩坑清单):
cdp-driver/README.md
cache-control
undefined
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
huishi_tools
Web 应用的前端操控 / 截图工具。用裸 Chrome DevTools Protocol 驱动无头浏览器, 完成「注入登录态 → 导航 → 执行 JS → 截图」的自动化验证与取证。
放在被测试项目仓库之外,避免测试脚本污染主仓历史。
目录
快速开始
actions.json是声明式用例,加测试 = 加一个 JSON 文件,不用写代码:换测试环境只改环境变量:
HUISHI_BASE=http://<host>:8001 node drive.mjs ...为什么用裸 CDP 而不是 Playwright
WebSocket,复用本机 Chrome,不需要npm install、 不需要下载浏览器内核(目标环境常常装不了依赖,或网络受限)Runtime.evaluate取任意 JS 表达式返回值、Page.captureScreenshot截图, 正是「埋点验证 + 取证」需要的两件事sleep兜底维护约定
仓库只收录工具
本仓库只跟踪
cdp-driver/与本文档,可跨项目、跨版本长期复用。会话存档不入库:所有会话统一放在
sessions/下,该目录已整体列入.gitignore, 一律留在本地磁盘——里面含被测系统的真实数据与内部信息,不适合随仓库扩散。看历史结论请在本地打开对应会话目录;需要复现时按其 README 重跑
actions/里的用例。会话存档的两条原则
已忽略(保留在本地磁盘)
sessions/.token.chrome-profile/_rerun/相关经验
改脚本或复用时值得回顾(详见
cdp-driver/README.md的踩坑清单):cache-control→ 浏览器启发式缓存会让验证出假阴性(改了 HTML 却加载旧版)undefined,极易误判成代码 bug