DSH Test Plugin
在 DeepSeek Harness 对话中,用自然语言完成测试规划、执行、证据采集和报告。
简体中文 · English
版本 v0.10.0 · 更新日志 · MIT 许可证 · 文档 · 问题反馈
DSH Test Plugin 是 DeepSeek Harness(DSH)的原生 TypeScript 插件,支持网页和 GET JSON 接口测试。它复用当前对话的模型、工具、审批及会话记录,通过可信观察与确定性比较给出断言结果,并生成可离线查看的 HTML 报告。
在 DSH 输入框中描述一条测试:
/test 访问ceshiren.com,搜索 agent,打开第一条搜索结果帖子,断言帖子的点赞数不为0
插件会展示文字计划,逐步执行、更新进度,最后给出测试结果和报告链接。需要先确认计划时,将 /test 改为 /test-plan。
当前为开发版本,适配 DSH
0.2.1-alpha.1。从下方 GitHub 地址安装即可,发行版本包含构建产物。网页内容和模型执行可能变化,最终结果以报告中的观察、断言及清理状态为准。
功能
| 功能 | 说明 |
|---|---|
| 自然语言规划 | 将任务拆成业务步骤和文字检查点;支持原生计划审核与修改 |
| 网页与接口测试 | 通过专用 Playwright MCP 操作网页;采集 GET JSON 响应并校验状态码和字段 |
| 可信断言 | 记录实际观察、预期及来源,用确定性比较判断结果 |
| 文件与参数化 | 导入 TXT、Markdown、JSON 用例;CSV 数据展开后先审核再执行 |
| 执行进度 | 展示当前操作、已结算数量和耗时;完整列表按需展开,支持长文字和多实例编号 |
| 浏览器实时画面 | 通过 Browscreen 显示无头浏览器画面;仅在当前页面 CDP 和有效首帧就绪后打开浮窗 |
| 浏览器录像 | 独立开关默认关闭;按浏览器实例归档 MP4,在报告中播放、拖动及下载;接口实例无媒体入口 |
| 报告与收尾 | 静态 HTML 报告包含步骤、断言及附件;支持停止、资源清理和隔离环境处置 |
实际效果
以下截图来自 0.9.1 的真实运行,示例任务是访问 ceshiren.com、搜索 agent、打开第一条结果并检查帖子正文不为空。网页内容、步骤拆分和耗时会随实际运行变化。
正在做哪一步,一眼就能看到。 进度区显示当前操作、已结算数量、总耗时和本步用时;完整步骤可以按需展开。

在同一对话里看执行过程和浏览器画面。 当前页面 CDP 和有效首帧就绪后,浮窗自动展示无头浏览器的实时画面;窗口可以移动、缩放和关闭。下图展示完整 DSH 页面,浮窗、对话记录和步骤进度同时可见。

结果有实际值、预期和证据。 报告按用例、步骤、断言及附件组织,能够核对“正文不为空”的实际比较结果,也可离线查看。

计划审核、完整步骤、预览设置和断言细节的截图见使用说明。
快速开始
1. 准备环境
- Node.js 22.19+,pnpm 11.7.0。
- 已安装并配置可用模型的 DeepSeek Harness 0.2.1-alpha.1,独立 CLI 或源码安装均可。
- 网页测试需要专用 Playwright MCP 和 Chromium;仅做接口测试可跳过浏览器安装。
宿主安装先按 DSH 自身文档完成。更换宿主或 MCP 版本后需要重新验证兼容性。
2. 从 GitHub 安装并启用
在 DSH 插件管理页填写下面的仓库地址,安装后启用插件:
https://github.com/Pegasus-Yang/DSH-Test-Plugin.git#v0.10.0
也可以在 DSH 源码目录 使用终端安装:
pnpm dsh plugin --profile web add github:Pegasus-Yang/DSH-Test-Plugin#v0.10.0
pnpm dsh web
已有独立 CLI 时,使用 dsh plugin --profile web add github:Pegasus-Yang/DSH-Test-Plugin#v0.10.0 和 dsh web。CLI 安装前正常停止原服务,随后启动同一 profile 并刷新网页。使用自定义 DSH_HOME 时,安装与启动须使用同一个目录。
Git 发行版本包含 dist,安装不执行插件构建脚本,不需要克隆源码、link-host 或本机调试文件。随后按安装与运维配置 native 工具模式及专用 Playwright MCP;设置页可选启用实时预览。
3. 卸载和源码开发
停用或卸载可在插件管理页进行。终端卸载时,先正常停止宿主,再执行:
pnpm dsh plugin --profile web remove dsh-test-plugin
0.9.1 的预览接入只影响 MCP 运行参数;停用恢复原始浏览器配置,卸载后重启不再引用插件文件。工作区报告和用户保存的偏好保留。旧版已经写入的预览覆盖,按故障速查一次恢复。
需要修改源码或生成本地安装包时再执行:
git clone https://github.com/Pegasus-Yang/DSH-Test-Plugin.git
cd DSH-Test-Plugin
pnpm install
pnpm build
pnpm pack --out artifacts/package/dsh-test-plugin.tgz
开发依赖使用公开 npm 的 DSH SDK,可直接构建。调试未发布的宿主改动时,才可选运行 node scripts/link-host.mjs /绝对路径/deepseek-harness;本机路径保存在被 Git 忽略的 .local/ 中。每次源码修改后重建并提交 dist,CI 会核对源码与发行产物一致。
网页测试还需在插件根目录执行:
node scripts/install-browser.mjs
本地 tgz 仍支持通过公开 CLI 安装:
pnpm dsh plugin --profile web add /绝对路径/DSH-Test-Plugin/artifacts/package/dsh-test-plugin.tgz
使用本地 tgz 时保留安装包文件;profile 使用 file: 依赖。同路径升级按更新流程先 remove 再 add,完成安装后再启动。
4. 在对话中执行测试
以下命令输入 DSH 对话框,不是终端。请逐条执行:
/test-plan 发送GET请求到 https://httpbin.org/get?keyword=agent,验证HTTP状态码为200、返回的keyword为agent
/test-run examples/httpbin-cases.md
/test-data examples/httpbin-parameters.csv --file examples/httpbin-parameterized.md
示例文件路径相对于插件配置的 workspace;使用其他工作区时,先将 examples 中的文件复制过去。完整输入格式、审核过程和参数规则见使用说明。
浏览器实时预览与录像
0.10.0 提供独立录像开关及报告视频回放,可直接使用上方 GitHub 标签安装。已有安装先移除旧包,再安装新标签并重启同一 profile。
先在 DSH 宿主安装 PyPI 的 browscreen[video]==0.3.0(Python ≥3.14,支持稳定版本 >=0.3.0,<0.4.0)。在 设置 → 测试插件 → 浏览器预览与录像 中启用、检测安装、选择采集端口及专用 Playwright MCP 并保存。命令默认是 browscreen,高级设置可填完整可执行文件路径;无需下载源码或提前启动服务。
录像开关与实时预览独立,默认关闭。勾选“录制浏览器操作视频”后,关闭浮窗或 DSH 网页也会继续后台录制,宿主需保持运行。MP4 按实例保存到运行目录,报告提供“操作录像”和下载;纯接口及混合批次中的接口实例不显示媒体区域。缺少视频依赖时提示原因与安装命令。录像安装与使用。
浮窗等待当前页面 CDP 和有效首帧;接口测试、没有 CDP 或画面尚未就绪时,不出现空浮窗。首次依赖准备、可编辑 MCP 注册及设置步骤见逐步配置指南。
常用命令与报告
以下为 0.10.0 的命令与界面操作;历史变化见版本变更记录。
| 命令 | 用途 |
|---|---|
/test <任务> |
展示计划后直接执行 |
/test-plan <任务> |
先审核计划,再执行 |
/test-run <文件> |
执行 TXT、Markdown 或 JSON 用例 |
/test-data <CSV> --file <用例文件> |
展开参数数据,审核后执行 |
命令只保留上面的四个入口。输入框上方显示步骤与耗时;需要中途停止时,点击 DSH 原生“停止生成”。实时画面按钮在“显示实时画面”和“隐藏实时画面”之间切换,同一对话最多显示一个画面浮窗。
最终回复提供报告链接及保存位置。运行结束后可在进度区点击“重建报告”;历史运行也可进入 设置 → 测试插件 → 测试报告,填写运行 ID 后重建,留空使用当前所选对话的报告。报告为静态 HTML,可通过 DSH 登录态在线查看,也可随运行目录离线保存。进度说明 · 报告与运行数据 · 常见问题速查
环境未释放时,先进入 设置 → 测试插件 → 测试环境,确认旧操作已停止后按提示处置,再重新提交用例。无法自动关闭浏览器时,在同一设置页展开“高级处置:提交实际处置证据”,填写工作区内的 JSON 文件路径,确认后提交。详见环境恢复指南。
当前支持范围
- 仅支持 DSH native 工具模式;共享环境串行运行。多对话独立浏览器并行执行属于后续优化。
- 接口可信采集目前支持 GET JSON;浏览器自动预览使用本机 Chromium Playwright MCP,当前支持单活动页面。
- JSON 用例执行仍参与模型循环;报告重建可以不调用模型,不代表无模型测试回放。
- 报告界面及部分命令提示以中文为主。取消、证据缺失、工具错误或必要清理失败不会算作通过。
开发与贡献
完成依赖安装和 link-host 后,在插件根目录运行:
pnpm typecheck
pnpm build
pnpm test:unit
pnpm test:integration
隔离开发服务和真实验收方法见安装与运维。提交问题时请说明插件、DSH、Node.js 和 MCP 版本、复现步骤及已脱敏的错误信息;提交改动前完成相关检查并更新受影响文档。
本地凭据、认证地址、日志、未脱敏截图和原始运行报告应保存在 .local/ 或 artifacts/,不要加入公开提交。公开说明截图经过检查后放在 doc/user-guide/images/,文档使用相对路径引用。发布新版本时按版本发布与 Git 标签创建附注标签。
文档
| 文档 | 内容 |
|---|---|
| 完整文档导航 | 使用、部署、设计和历史验收记录 |
| 使用说明 | 命令、输入、参数、断言和报告 |
| 浏览器录像与报告 | 安装视频依赖、开关、回看、下载与离线保存 |
| 安装与运维 | 构建、安装、配置、升级及独立开发环境 |
| 常见问题速查 | 环境残留、预览、安装和报告问题 |
| 当前架构 | 模块职责与执行链路 |
| 开发与验收记录 | 实测范围和历史问题 |
许可证
本项目采用 MIT 许可证。第三方依赖及图标许可见 THIRD_PARTY_NOTICES.md。
No comments yet. Be the first to write one.