霍格沃兹测试开发学社

《Python测试开发进阶训练营》(随到随学!)
2023年第2期《Python全栈开发与自动化测试班》(开班在即)
报名联系weixin/qq:2314507862

DeepSeek Harness + Playwright + MCP火了:还在背“自动化测试三件套”?这5个问题面试真能把人问懵

关注 霍格沃兹软件测试开发 公众号,回复「资料」, 领取人工智能测试开发技术合集

从元素定位、显式等待到Page Object:当AI Agent开始自己操作浏览器,传统自动化测试到底还有没有用?

如果现在让你回答一道测试开发面试题:

Selenium和Playwright有什么区别?

很多做过自动化测试的人应该都能说几句。

再问:

显式等待和隐式等待有什么区别?

背过面试题的人基本也能答。

但是今年如果面试官继续往下问一句:

如果不是你写Playwright脚本,而是让DeepSeek Harness里的Agent自己操作浏览器,你准备怎么保证它每次都操作正确?

很多人可能突然卡住。

因为这个问题已经从:

“你会不会写自动化脚本?”

变成了:

“你知不知道AI Agent到底是怎么执行自动化测试的?”

这两周爆火的DeepSeek Harness,真正值得测试工程师关注的地方,其实就在这里。

8月13日,DeepSeek正式开放DeepSeek Harness开发者预览,并同步开源。

它有一句非常重要的设计理念:

Everything is a plugin。

模型、Tools、Skills、Session、Sandbox、Storage、Loop、Scheduling甚至UI,都可以通过插件进行组合和替换。([DeepSeek][1])

这意味着什么?

以前我们理解一个AI产品:

大模型 ≈ AI。

现在越来越接近:

AI Agent = Model + Harness + Tools + Skills + Runtime。

这也是为什么最近技术圈突然开始疯狂讨论:

Harness、MCP、Agent Skills、Browser Agent。

对于测试工程师来说,这件事情尤其有意思。

因为其中一个最天然的应用,就是:

让AI自己做自动化测试。
一、先来一道最经典的面试题:为什么UI自动化最容易“偶现失败”?
假设你测试一个电商网站。

登录之后点击:

“加入购物车”

最简单的Playwright代码可能是:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
browser = p.chromium.launch()

page = browser.new_page()

page.goto("https://example.com")

page.fill("#username", "test_user")
page.fill("#password", "123456")

page.click("#login")

page.click("#add-cart")

browser.close()
代码没什么复杂的。

但真正做过UI自动化的人都知道:

线上项目绝对不会这么顺。

你可能遇到:

页面还没加载完成。

按钮被弹窗挡住。

接口还没返回。

元素重新渲染。

DOM发生变化。

定位表达式失效。

网络突然变慢。

于是你会看到测试平台里那个所有测试工程师都很熟悉的结果:

PASSED
PASSED
PASSED
FAILED
PASSED
PASSED
FAILED
开发问:

为什么失败?

测试回答:

偶现。

这两个字,大概是自动化测试领域最危险的两个字。

二、为什么Playwright越来越火?
原因之一就是:

它试图替你处理大量“等待”的问题。

例如:

page.locator("#submit").click()
看起来只是点一下。

但Playwright并不是看到DOM里存在这个元素就立即点击。

它会进行一系列Actionability检查。

例如元素是不是:

Visible

Stable

Enabled

以及是否真的可以接收事件。

所以很多以前Selenium时代需要自己处理的:

sleep(3)
正在被更智能的等待机制替代。

这里顺便说一道特别高频的面试题:

为什么不推荐大量使用time.sleep?

初级工程师最常见回答:

因为浪费时间。

只答这一句,其实是不够的。

真正的问题是:

time.sleep(5)
代表:

无论页面1秒加载完成,还是4秒加载完成,我都等5秒。

更麻烦的是:

如果页面第6秒才加载完成呢?

还是失败。

所以它同时带来了:

效率问题 + 稳定性问题。

这才是面试官真正想听的。

三、但是AI Agent来了以后,问题又变了
以前自动化脚本是:

工程师

编写代码

Playwright

浏览器
工程师已经明确告诉程序:

点击哪个按钮。

输入什么。

下一步做什么。

而Agent模式变成:

工程师

自然语言任务

LLM

Harness

Tool

Playwright

Browser
例如你只告诉Agent:

登录商城,搜索iPhone,把价格最低的一款加入购物车。

以前你可能需要写几十行甚至上百行代码。

现在Agent需要自己决定:

先找登录入口。

再输入账号。

再寻找搜索框。

输入iPhone。

分析搜索结果。

比较价格。

选择商品。

加入购物车。

于是一个非常重要的问题出现了:

Agent怎么知道网页上哪个按钮是“加入购物车”?

这就进入了Browser Agent真正有意思的部分。

四、面试题升级:XPath还要不要学?
这是我特别建议今年测试开发面试准备的一道题。

很多人觉得:

AI来了以后XPath没用了。

实际上没这么简单。

传统UI自动化可能写:

page.locator(
"//button[contains(text(),'加入购物车')]"
).click()
但是页面稍微改一下:

你的定位方式可能就需要调整。

Playwright更推荐利用用户可感知的信息:

page.get_by_role(
"button",
name="加入购物车"
).click()
这件事情到了Agent时代更加重要。

因为AI并不像传统脚本那样永远依赖一个写死的XPath。

它更希望理解:

“页面上有一个用户认为是加入购物车的按钮。”

所以未来UI自动化可能越来越从:

DOM定位

走向:

语义定位。

但注意。

这并不意味着CSS、XPath、DOM不用学了。

恰恰相反。

如果Agent定位失败,你作为测试开发工程师需要知道:

到底为什么失败。

AI可以帮你写Locator。

但是出了问题之后:

你得能Debug。

人工智能技术学习交流群
伙伴们,对AI测试、大模型评测、质量保障感兴趣吗?我们建了一个 「人工智能测试开发交流群」,专门用来探讨相关技术、分享资料、互通有无。无论你是正在实践还是好奇探索,都欢迎扫码加入,一起抱团成长!期待与你交流!👇

image

五、这就是DeepSeek Harness真正值得测试工程师关注的地方
DeepSeek Harness的插件化设计意味着:

你完全可以把测试能力变成Agent能够调用的Tool。

例如:

def open_page(url):
page.goto(url)

def click_button(name):
page.get_by_role(
"button",
name=name
).click()

def input_text(selector, value):
page.locator(selector).fill(value)
然后向Agent暴露:

open_page

click_button

input_text
于是Agent不需要知道Playwright所有API。

它只需要理解:

什么时候应该调用哪个工具。

这其实就是现在Agent工程里一个特别核心的问题:

Tool Calling。
六、MCP为什么突然火了?
理解完上一段,MCP就很好理解了。

很多初级工程师背MCP定义:

MCP是Model Context Protocol……

然后就没了。

面试官如果继续问:

它解决什么问题?

又卡住。

可以用一个特别简单的方式理解。

假设你有:

DeepSeek
Claude
GPT
Gemini
同时企业内部有:

Jira
GitLab
数据库
Playwright
测试平台
日志平台
如果每一个模型都分别写一套接入:

4个模型 × 6个系统
连接关系会越来越复杂。

MCP想解决的问题之一,就是:

让AI调用外部工具和数据时拥有更加标准化的接口方式。

所以你可以把Playwright封装成Tool。

把数据库查询封装成Tool。

把Jira创建Bug封装成Tool。

最终:

┌─ Playwright

LLM → MCP ───┼─ MySQL

├─ Jira

└─ GitLab
这时候一个AI测试Agent就可以做非常有意思的事情。

七、举个测试工程师每天都会遇到的场景
比如:

测试登录功能。

你告诉Agent:

测试商城登录功能,发现问题后创建Bug。

Agent可能执行:

  1. 打开测试环境

  2. 输入正常账号

  3. 验证登录成功

  4. 输入错误密码

  5. 验证错误提示

  6. 输入不存在账号

  7. 检查异常处理

  8. 查看Network请求

  9. 查询日志

  10. 发现异常

  11. 创建Jira Bug
    背后可能调用:

Playwright Tool

API Tool

Log Tool

Jira Tool
以前需要测试工程师在四个平台之间来回切换。

现在Agent理论上可以自己串起来。

这才是:

AI测试智能体。

而不是让ChatGPT帮你生成几条测试用例。

八、但是这里藏着一道更狠的面试题
面试官:

Agent说测试通过了,你相信吗?

很多人第一反应:

当然不信。

那么继续:

怎么证明?

这就进入AI测试真正的核心问题。

传统自动化:

assert actual == expected
例如:

expect(
page.get_by_text("登录成功")
).to_be_visible()
结果相对确定。

但是Agent可能告诉你:

任务执行成功。
你不能直接把:

Agent自己说成功

当成:

测试真的成功。

所以必须建立独立验证机制。

例如购物车任务:

expected_count = 1

actual_count = page.locator(
".cart-item"
).count()

assert actual_count == expected_count
这件事情特别重要。

未来测试Agent不能只有:

Executor
还需要:

Evaluator
也就是:

执行Agent负责干活。

评估系统负责判断它到底干没干对。

九、这又撞上了昨天AI圈另一个热点:Agent Skills怎么测?
NVIDIA昨天刚刚公开介绍了一个很有意思的方向:

SkillEvaluator。

它研究的核心问题就是:

给Agent加了一个Skill之后,它到底有没有变强?([NVIDIA Developer][3])

这其实特别符合测试思维。

假设:

Agent A
没有测试Skill。

完成100个任务:

成功:63
失败:37
增加:

Web Testing Skill
之后:

成功:84
失败:16
你至少可以计算:

success_rate = success / total

print(success_rate)
但还不够。

因为成功率提高的同时可能:

Token翻倍。

执行时间翻倍。

成本翻倍。

于是AI测试真正要看的可能是:

result = {
"success_rate": 0.84,
"avg_latency": 12.6,
"avg_tokens": 4380,
"cost": 0.032
}
这才开始接近:

Agent Evaluation。

十、为什么这对初级测试工程师特别重要?
因为最近很多人特别焦虑:

AI是不是要把自动化测试干掉?

我觉得这个问题问反了。

真正发生的是:

自动化测试正在成为AI Agent的一种基础能力。

以前你学习:

Selenium。

Playwright。

Appium。

Pytest。

接口自动化。

未来它们可能不会消失。

而是变成:

AI Agent可以调用的测试基础设施。
所以现在最值得初级测试工程师升级的,并不是把原来的技能全部扔掉。

而是在原来的:

Python
+
接口测试
+
Playwright
+
Pytest
上面增加:

LLM
+
Prompt
+
Tool Calling
+
MCP
+
Agent
+
Harness
最后形成:

AI测试开发
十一、最后留5道面试题,看看你能回答几道
如果你今年准备测试开发、自动化测试或者AI测试开发岗位,可以试着不查资料回答下面5个问题:

1、为什么UI自动化不推荐大量使用sleep?Playwright的自动等待解决了什么问题?

2、XPath、CSS Selector和语义定位各有什么优缺点?Agent时代XPath还有必要学吗?

3、MCP和普通API调用到底有什么区别?为什么Agent需要MCP?

4、如果让DeepSeek Harness调用Playwright完成Web自动化测试,你会怎么设计Tool?

5、Agent告诉你“测试执行成功”,为什么不能直接相信?你会怎么设计Evaluator?

如果前两道能回答,说明传统自动化基础还可以。

如果3、4、5也能讲明白:

你其实已经开始进入:

AI测试开发的能力范围了。

写在最后
DeepSeek Harness最近为什么值得测试工程师关注?

并不是因为测试行业又多了一个需要背的AI名词。

真正值得关注的是:

AI Agent终于开始从“聊天”走向“干活”。

DeepSeek Harness把Model、Tool、Skill、Sandbox、Session、Agent Loop这些能力拆成可组合的插件;而多模态、Agent Skills、MCP和Browser Agent又正在快速往这个体系里汇合。([DeepSeek][1])

于是测试工程师正在看到一个非常有意思的变化:

过去我们写:

test_login()
未来可能是:

“帮我完整测试一下登录模块,
发现问题自动分析日志并提交Bug。”
表面上看:

代码少了。

但背后对测试工程师的要求反而变高了。

因为你必须知道:

Agent为什么选择这个Tool?

为什么定位到了这个元素?

为什么认为测试成功?

失败以后怎么恢复?

如何避免误操作?

如何衡量100次任务到底成功了多少次?

怎么控制Token和执行成本?

会写自动化脚本,正在逐渐成为基础。

能把自动化能力变成AI可以调用、可以评估、可以治理的测试能力,才可能是下一阶段真正值钱的东西。

这可能也是DeepSeek Harness真正值得测试工程师研究的原因。

推荐学习
DeepSeek Harnesst智能体公开课,8月20日20:00开讲:

🔥 DeepSeek Agent架构深度拆解——“一切皆插件”到底怎么实现
🔥 四大主流Agent横向对比:Opencode/Codex/Claude Code/Openclaw
🔥 Harness插件体系全解析:Web自动化+App自动化+视觉驱动自动化

一夜5万星的Agent框架,到底能做什么?一次讲透。

扫码进群,报名学习!

image

关于我们
霍格沃兹测试开发学社,隶属于 测吧(北京)科技有限公司,是一个面向软件测试爱好者的技术交流社区。

学社围绕现代软件测试工程体系展开,内容涵盖软件测试入门、自动化测试、性能测试、接口测试、测试开发、全栈测试,以及人工智能测试与 AI 在测试工程中的应用实践。

我们关注测试工程能力的系统化建设,包括 Python 自动化测试、Java 自动化测试、Web 与 App 自动化、持续集成与质量体系建设,同时探索 AI 驱动的测试设计、用例生成、自动化执行与质量分析方法,沉淀可复用、可落地的测试开发工程经验。

在技术社区与工程实践之外,学社还参与测试工程人才培养体系建设,面向高校提供测试实训平台与实践支持,组织开展 “火焰杯” 软件测试相关技术赛事,并探索以能力为导向的人才培养模式,包括高校学员先学习、就业后付款的实践路径。

同时,学社结合真实行业需求,为在职测试工程师与高潜学员提供名企大厂 1v1 私教服务,用于个性化能力提升与工程实践指导。

posted @ 2026-08-24 11:11  霍格沃兹测试开发学社  阅读(2)  评论(0)    收藏  举报