Plugin directory / Automation / dsh-test-workbench
dsh-test-workbench
Verified · install-tested on dsh dmsobtl
What it does
Test workbench Profile based on DeepSeek Harness — out-of-the-box QA Agent.
Works — verified, early-stage project
Test workbench Profile based on DeepSeek Harness — out-of-the-box QA Agent. It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-test-workbench
基于 DeepSeek Harness 的测试工作台 Profile —— 开箱即用的 QA Agent。
组装了三个插件(UI 验证、会话分析、视觉路由)+ 预置 Skill + QA 测试人格。
快速开始
前提:三个业务插件
dsh-tool-app-verify/dsh-session-analyst/dsh-llm-vision-router
需要先发布到 npm(npm publish),否则下面的dsh plugin add找不到它们。
# 1. 安装 dsh
npm install -g @deepseek-ai/dsh
# 2. 把本仓库克隆成名为 workbench 的 profile(profile 必须放在 ~/.dsh/profiles/<name>/ 下)
mkdir -p ~/.dsh/profiles
git clone https://github.com/dmsobtl/dsh-test-workbench.git ~/.dsh/profiles/workbench
cd ~/.dsh/profiles/workbench
# 3. 安装插件依赖(把三个插件拉进该 profile 的 node_modules)
pnpm install
# 或逐个:dsh plugin add dsh-tool-app-verify dsh-session-analyst dsh-llm-vision-router
# 4. 配置 API Key
export DEEPSEEK_API_KEY=your-deepseek-key
export OPENAI_API_KEY=your-openai-key # 可选,用于有截图时切视觉模型
# 5. 启动(注意:profile 是名字,不是路径)
dsh --profile workbench "打开 https://example.com 并验证页面标题"
包含什么
插件
| 插件 | 功能 |
|---|---|
| dsh-tool-app-verify | 浏览器/Electron 操作 + UI 断言 + 视觉回归 |
| dsh-session-analyst | 会话质量分析 + 回归检测 |
| dsh-llm-vision-router | 有图片时自动切多模态模型 |
预置 Skill(位于 .agents/skills/,DSH 自动发现)
| Skill | 用途 |
|---|---|
| test-login-flow | 登录功能完整测试流程 |
| visual-regression | 视觉回归测试标准流程 |
| session-diagnosis | 测试会话效率诊断 |
QA 测试人格
Agent 默认以 QA 专家身份工作(见 cordis.patch.yml 中的 system-prompt persona)。
目录结构
dsh-test-workbench/
├── package.json # dsh.profile.bundles: dsh-base + dsh-headless(一次性任务模式)
├── cordis.patch.yml # 插入业务插件 + 覆盖 system-prompt 人格
├── pnpm-workspace.yaml # 供 pnpm 管理 out-of-tree 插件
├── .agents/skills/ # 项目级 skill(DSH 自动加载)
│ ├── test-login-flow.md
│ ├── visual-regression.md
│ └── session-diagnosis.md
├── baselines/ # 截图基线存储(gitignore)
└── README.md
配置定制
切换视觉模型
编辑 cordis.patch.yml 中 vision-router 的配置:
- insert:
- id: vision-router
name: dsh-llm-vision-router
config:
visionProvider: qwen # 换成通义千问
visionModel: qwen-vl-plus
同时把 llm-pi-ai 的 providers 改成对应 provider(或另配 adapter)。
切换 Electron 模式
- insert:
- id: app-verify
name: dsh-tool-app-verify
config:
mode: electron
添加新 Skill
在 .agents/skills/ 目录下添加 markdown 文件即可,DSH 会自动加载。
使用示例
# 快速验证一个页面
dsh --profile workbench "打开 http://localhost:3000,检查首页所有链接是否可点击"
# 登录流程测试
dsh --profile workbench "用 skill test-login-flow 测试 http://localhost:3000/login,账号 [email protected] / password123"
# 视觉回归(先建基线,再对比)
dsh --profile workbench "打开 http://localhost:3000,对首页、登录页分别截图保存基线"
dsh --profile workbench "对比首页、登录页的当前截图与基线,输出回归报告"
# 分析上次测试
dsh --profile workbench "分析最近一次测试会话的效率"
成本估算
| 场景 | DeepSeek 消耗 | Vision 消耗 |
|---|---|---|
| 5 页面功能验证(无截图) | ~50k tokens | 0 |
| 3 页面视觉回归 | ~30k tokens | ~3 次调用 |
| 完整登录流程测试 | ~80k tokens | ~2 次调用 |
Roadmap
-
dsh-tool-test-runner:结构化测试执行(解析 vitest/jest/pytest) -
dsh-tool-env-check:环境就绪度检查 -
dsh-tool-api-test:HTTP 接口测试 -
dsh-hook-test-report:turn 结束自动生成报告 - CI 集成模板(GitHub Actions)
- 定时巡检 + 钉钉推送
License
MIT
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-test-workbench for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:dmsobtl/dsh-test-workbench Headless (CLI) profile:
dsh plugin --profile headless add github:dmsobtl/dsh-test-workbench Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.
When to use it
Automate a repetitive job — scheduling, chaining tasks, or reacting to events — so it runs without you starting it.
Who it's for
Users with recurring work who want it cron-style and hands-off rather than manually triggered.
For developers — extending it
Triggers and task templates are the seams — add event-driven or file-watch triggers, and richer workflow composition.