DeepSeek Harness火了,但你知道怎么用它生成测试用例吗?

举报
霍格沃兹测试学社 发表于 2026/09/11 16:11:57 2026/09/11
【摘要】 DeepSeek Harness是开源AI测试助手,一行命令即可启动。它能自动解析API文档,10分钟生成50+覆盖等价类、边界值与异常场景的测试用例,准确率高但需人工复核8条左右。专为测试工程师设计,大幅提升用例设计效率,降低重复劳动。

一行命令装好,它10分钟帮我生成了50多条用例——然后我花了半小时改其中8条

大家好,我是某互联网公司的测试架构师。

上周,团队里一个做了3年功能测试的同事找我聊天,说了一句让我印象很深的话:“我在GitHub上看到DeepSeek Harness 12小时拿了5万星,但点进去看了半天,还是不知道这玩意儿到底能不能帮我写用例。”

我说:“你不是有库存管理API的接口文档吗?打开终端,我给你演示一下。”

20分钟后,他面前跑着一份覆盖等价类、边界值、异常场景的完整用例集。

他盯着屏幕看了一会儿,说:“就这?”

对,就这。

一、先搞清楚:Harness和模型到底是什么关系?

很多人第一次看DeepSeek Harness的文档,会被“Agent运行框架”“一切皆插件”这些词绕晕。

DeepSeek官方给了一个非常干脆的等式:Agent = Model + Harness。模型是“大脑”,负责推理和生成。Harness是“手脚和神经系统”——工具调用、任务规划、执行调度、沙箱、存储、循环,所有让模型“能干活”的工程活儿,全包了。

用一句话说清楚Harness在测试场景里的角色:它让AI不再只是“回答你的问题”,而是“自己读文档、自己提取规则、自己生成用例”。

这里要先破一个误解。很多人以为Harness是“又一个AI编程工具”。不完全是。官方定位是开发者底层工具——给你一套能自己搭Agent技术栈的底座,而不是一个开箱即用的终端助手。

但也正因如此,它在测试用例生成这个场景里,比很多成品工具都灵活

二、安装:一行命令,2分钟

前置条件只有一个:Node.js 22或更新版本

检查一下:

node --version

看到v22.x.x或更高就行。没有的话去官网装一下。

然后一行命令启动:

npx @deepseek-ai/dsh web

这条命令会自动下载并启动Harness的Web UI,默认在http://127.0.0.1:3080打开。

打开后,在Settings → Models里填入DeepSeek API Key。Harness本身免费开源,模型调用按Token收费。如果你想省钱,新用户通常有赠送额度,跑一轮用例生成的成本不到一块钱。

Windows用户注意:如果终端提示找不到命令,关掉终端重新打开一次。很多时候只是环境变量没刷新。

三、实战:用Harness生成库存管理API的测试用例

下面用一套真实的库存管理API来走完整流程。接口有三个:录入库存、查询库存、出库。

第一步:把文档和代码放进工作区

Harness需要一个工作区才能读到你的项目文件。在Web UI里选择一个目录,然后把接口文档(Word/PDF/Markdown都行)和代码放进这个目录。

我们当时的目录结构是这样的:

inventory-api/
├── docs/
│   └── api-spec.md        # 接口文档
└── app/
    └── inventory.py        # 库存管理代码

关键点:Harness的用例设计能力,很大程度上取决于你喂给它的“素材”质量。 文档写得越清楚,生成结果越准确。

第二步:给Harness下任务

在对话框里输入下面这段话:

阅读 ./docs 下的接口文档和 ./app 下的代码,提取测试需求。输出用例设计要点:包含等价类划分、边界值和异常场景,逐条列出,每条写清楚前置条件、操作步骤和预期结果。

这条提示词不是随便写的。它做了三件事:

限定范围——明确告诉Harness读哪些文件,不读哪些。
定义输出结构——等价类、边界值、异常场景,三类都要覆盖。
约束格式——每条用例必须有前置条件、操作步骤、预期结果。

用实测数据来说,这个环节的提示词效果是这样的:用例设计是Harness全链路里最出彩的一环,评级“强” 。它给的不是“测试正常流程”这种正确的废话,而是具体可执行的用例描述。边界值会主动凑成对——刚好等于阈值、刚过阈值各一条。异常场景也知道往负数、超长字符串、缺字段上想。

第三步:看看它生成了什么

等了一分钟左右,Harness输出了下面这份用例集。我挑几个有代表性的:

正常流程:

用例编号 测试场景 前置条件 操作步骤 预期结果
TC-001 正常录入库存 商品ID存在、数量为正整数 1.调用录入接口 2.传入商品ID和数量100 返回200,库存数量增加100
TC-002 正常出库 库存充足 1.调用出库接口 2.传入商品ID和数量50 返回200,库存数量减少50

边界值(它主动凑成了对):

用例编号 测试场景 前置条件 操作步骤 预期结果
TC-003 出库数量刚好等于库存 库存数量=100 1.调用出库接口 2.传入数量100 返回200,库存变为0
TC-004 出库数量刚超过库存 库存数量=100 1.调用出库接口 2.传入数量101 返回400,提示“库存不足”

异常场景:

用例编号 测试场景 前置条件 操作步骤 预期结果
TC-005 出库数量为负数 1.调用出库接口 2.传入数量-10 返回400,提示“数量必须为正整数”
TC-006 缺少必填参数 1.调用出库接口 2.不传商品ID 返回400,提示“商品ID不能为空”
TC-007 库存为零时出库 库存数量=0 1.调用出库接口 2.传入数量1 返回400,提示“库存不足”

一共生成了50多条用例。 从生成到输出,用了不到10分钟。

四、但等等——它生成的东西,真的能用吗?

这正是我那位同事后来花了半小时做的事情。

50多条用例里,有8条需要修正。

三种典型问题:

第一种:它“编”了不存在的接口。 有一条用例调用了一个叫/api/v1/inventory/adjust的接口——我们的文档里根本没有这个接口。AI在缺乏明确信息的时候,会用“合理的猜测”填补空白。

第二种:隐性业务规则它不知道。 我们的库存系统有一条规则——“VIP用户的库存预占不受上限限制”——这条规则只存在于产品经理的脑子里,没写进文档。Harness不知道,生成的用例就缺了这一块。

第三种:返回结构假设错了。 有一条异常用例的预期结果写的是“返回400,error字段为‘库存不足’”,但实际接口返回的是message字段,不是error

这三种问题的本质是一样的:Harness不会凭空知道“没写进文档的东西” 。它做的是“翻译”——把文档和代码里的规则翻译成用例。翻译的完整性,取决于原文的完整性。

所以正确的用法不是“生成完直接用”,而是 “生成完人工过一遍” 。实测数据也印证了这一点:脚本编写环节,Harness偶尔会臆造接口,“每一条都要人看”。我们的做法是——生成完先跑一遍,红的先人工分类——是代码错还是用例错——再决定改哪边。

五、进阶:用现成的Skill一键生成用例

上面的流程需要你手写提示词。如果你想要更“傻瓜式”的体验,可以直接装一个社区已经封装好的Skill。

GitHub上有个开发者发布了function-testing插件,专门做功能测试用例生成。它的能力是:根据PRD、Git提交记录或用户故事生成功能测试用例,输出Excel风格的测试报告。

安装只有一条命令:

dsh plugin --profile web add "github:addxing/function-testing#main"

装好之后,你不需要再手写那段提示词了。直接在对话框里输入:

用 function-testing 为库存管理API生成功能测试用例,输出Excel风格报告。

Harness会自动加载这个Skill的规则,按标准流程生成用例。

Skill的本质是把“方法论”封装起来。 你今天花10分钟装一个Skill,以后每个项目都能用同一套标准流程生成用例——格式一致、覆盖标准一致、输出结构一致。不会因为今天心情好就多写几条、明天赶时间就少写几条。

六、避坑指南

坑一:文档质量决定用例质量

Harness的用例设计能力很强,但它强在“翻译”,不强在“补充”。文档里没写的规则,它不会凭空知道。

解法: 把隐性规则写进文档。哪怕只是一句“VIP用户不受库存上限限制”,写进去,Harness就能覆盖到。

坑二:把它当“全自动”用

Harness能替你完成80%的基础工作,但剩下20%需要你的业务判断。它偶尔会“编”接口,偶尔会假设错返回结构。

解法: 生成完必须人工过一遍。审核50条用例,比从零写50条用例,省下来的时间不是一星半点。

坑三:一次跑太多任务

实测发现,Harness在执行调度这个环节是短板——“任务一长就容易卡壳打转,响应慢还费钱”。

解法: 把大任务拆成小段下发。先让它生成用例,再让它写脚本,最后让它跑测试。不要一口气全丢给它。

坑四:忽略它的“开发者预览版”身份

官方明确说当前是developer preview,会有破坏性变更。不要把它直接用在生产环境的测试流程里。

解法: 先在本地或测试环境跑通流程,验证效果后再考虑接入正式流程。

七、实测数据:Harness到底能替测试开发干多少活?

最后说一组实测数据。

有团队把测试开发日常工作拆成五个环节,逐项交给Harness做,然后打分:

环节 评级 一句话结论
需求解析 可用偏上 能提取输入输出与规则,隐性规则会漏
用例设计 等价类、边界、异常覆盖较全,全链路最出彩
脚本编写 可用偏上 pytest形态良好、断言明确,偶尔臆造接口
执行调度 响应偏慢,长任务稳定性不足
缺陷定位 可用 能从日志圈出可疑点,确认靠人

用例设计是Harness表现最强的环节。 这也是为什么我建议测试人从“用Harness生成用例”这个场景切入——它在这个环节的性价比最高,上手门槛最低。

扣掉评审时间,AI大概能替代一半到三分之二的重复劳动。它替的是重复劳动,不是判断力。

最后

传统写用例的路径是这样的: 啃PRD(半天)→ 画脑图(半天)→ 写用例(1-2天)→ 人工评审(半天)→ 修改(半天)——总计3-4天

Harness的路径是这样的: 装环境(2分钟)→ 放文档(2分钟)→ 输入提示词(1分钟)→ 生成用例(10分钟)→ 人工审核补充(30分钟)——总计45分钟

这中间差的不只是时间,差的是“敢不敢开始”的门槛。

Harness从来不是让测试工程师失业的工具。它是让测试工程师从“手写用例”的重复劳动中解放出来的加速器。

下次你拿到一份接口文档的时候,别打开Excel了。打开终端,输入那条命令:

npx @deepseek-ai/dsh web

10分钟后,你会看到结果。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。