前言¶
在 DeepSeek Harness(DSH)里做验收或回归,常见做法是手写 curl、临时脚本,或让助手「猜」接口路径和期望。这类方式难留证据、难复现,也不方便区分是产品缺陷、用例问题还是环境故障。dsh-plugin-big-fat-fish(社区展示名:测试工程师 大肥鱼)把 HTTP 批量请求、本机浏览器 UI 流程和一套对话驱动的方法论 skill 打包进 Host,面向真实接口与真实页面做黑盒功能测试,状态只落在工作区 .ft/,不改项目源码。
这是什么¶
维护者 Utaoki-henji 在 GitHub 发布 Utaoki-henji/dsh-plugin-big-fat-fish,SkillHub 目录分类为工作流。插件是一个 DSH Host 组合包:注册 3 个执行工具 + 1 个方法论 skill functional-testing。Skill 负责「测什么、期望是什么、失败算谁的」;工具只执行并落盘证据,不猜测。
| 类型 | 名称 | 作用 |
|---|---|---|
| 工具 | ft_http_run |
批量发 HTTP 请求(套件或内联用例),断言 status / jsonPath / headers / latencyMs,提取变量,落盘证据 |
| 工具 | ft_ui_run |
用 playwright-core 驱动本机 Chrome/Edge:页面流程、选择器、等待、断言、截图、收集控制台报错与失败请求 |
| 工具 | ft_report |
从已落盘的 run 重新生成人读报告(单个或汇总,支持标记已知失败) |
| Skill | functional-testing |
需求 → 接口/UI 入口摸底 → 用例设计 → 数据确认 → 执行 → 归因 → 每轮档案与报告 |
许可证为 MIT(见仓库 LICENSE)。
核心功能¶
下面介绍插件在资料中明确写出的能力边界与擅长点。
真实环境黑盒验收
通过真实接口、真实页面做版本或模块验收与回归,不 mock、不改项目源码。执行层只有 HTTP 请求与真实浏览器 UI;没有单测执行、覆盖率或断点插桩。白盒部分仅限只读静态代码(例如 Java/Spring Controller、DTO、@Valid、Vue 路由与 API 层)用来推导期望,不执行项目代码。
登录档案复用
每个项目可在 .ft/logins/<project>.json 保存登录档案(接口、令牌路径、鉴权头、凭据环境变量名)。登录接口探明一次后,之后每轮默认「登录 + 本轮功能」联合测试;需要令牌时 skill 不猜登录路径。
可复现的每轮档案
每轮留下目标、覆盖范围、测试数据、异常复现方式;runs/<runId>/ 下有 results.jsonl、证据、截图与报告,便于他人按档案复现。
前后端一致性
同一份数据经接口与页面分别读取,可逐字段比对(模块测试场景)。
安全与写操作控制
对项目只读;只写工作区 .ft/。凭据来自环境变量或 .ft/credentials.local.json,日志与套件对敏感键脱敏。非 GET 用例须标 destructive: true 且被 .ft/config.json 放行。无遥测,仅访问你提供的目标地址。concurrency 固定为 1,并行请求按确认顺序串行执行。
安装与启用¶
需要带插件管理器的 DSH(Host bundle 支持)、Node.js 22+(ESM)。UI 测试还需本机装有 Chrome 或 Edge(直接驱动已装浏览器,不下载浏览器内核)。
从 GitHub 安装时,README 建议固定 tag 或 commit。官方示例命令如下:
dsh plugin add github:Utaoki-henji/dsh-plugin-big-fat-fish#v0.1.1
桌面端:打开 设置 → 插件 → 安装,填入上述 spec,或填 https://github.com/Utaoki-henji/dsh-plugin-big-fat-fish,然后重启 Harness。
离线 / 对话安装:使用发布包 dsh-plugin-big-fat-fish-v<version>.zip,由助手安装;发布包自带 node_modules/playwright-core,安装时可不联网。
安装后插件显示为 测试工程师 大肥鱼,并带 functional-testing skill。
插件以当前 DSH 进程权限运行,安装前应自行查看仓库源码与 MIT 许可证,确认符合团队安全策略。
典型用法¶
在对话里说「开始测试」「开始测试接口」「开始测试页面」,或英文 start testing、test this API、test this page。skill 会按顺序确认项目、测试类型(接口 / 页面 / 模块)、入口地址或路由、登录档案、只读代码得出的契约与分支清单、多接口执行逻辑(顺序/分支/并行及具体顺序)、测试数据确认卡,再先冒烟(约 3–5 条)后全量,最后输出每轮档案与报告。
工作区状态由 ensureWorkspaceState 初始化,并写入 .ft/.gitignore,避免 run、凭据进入你的仓库:
.ft/
config.json # 接口/UI 基址、允许的主机、写操作放行、响应体上限
credentials.local.json # 本地凭据库(被 gitignore,环境变量优先)
logins/<project>.json # 登录档案
suites/ # 可复用测试套件(凭据保留 ${env:...} 占位符)
runs/<runId>/ # results.jsonl、证据、截图、报告
适用场景与注意¶
适合谁
需要在 DSH 对话里驱动接口/UI 回归、留证据、区分失败归因的测试或开发同学;目标环境可访问,且能接受黑盒 + 只读读码推导期望的方式。
环境
能访问待测目标地址;ft_ui_run 依赖本机 Chrome 或 Edge,支持无头模式与登录态注入(storageState / cookies)。
生态说明
DSH 理念是「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系,不等同于官方应用商店。
结尾¶
dsh-plugin-big-fat-fish 把 ft_http_run、ft_ui_run、ft_report 与 functional-testing skill 合成一套对话驱动的黑盒功能测试工作流:真实接口与页面、登录档案复用、.ft/ 下可复现档案与报告。若要安装或读完整说明,见 SkillHub 目录 与 GitHub 仓库。