Harness Engineering 测试 AgentWeb自动化测试落地方案目标打造一套自动执行 智能分析 自动决策 持续优化的 Web 测试体系场景Web 应用前端 API自动化测试一、核心一句话 Harness负责流程自动化 发布控制 Agent负责测试智能化 分析 决策二、通俗理解必须搞懂1️⃣ 什么是 Harness EngineeringHarness 的理念把“人判断发布”的过程 → 变成“系统自动判断”传统流程写代码 → 跑测试 → 人看报告 → 决定上线现在工程化写代码 → 自动测试 → Agent分析 → 自动上线/阻断2️⃣ 什么是测试 Agent Agent “会思考的测试程序”相比传统自动化测试多了✔ 智能选测不再全量跑✔ 自动分析失败原因✔ 自动给出发布建议✔ 自愈修复 flaky 测试三、整体架构Web测试┌──────────────┐ │ Git 提交 │ └──────┬───────┘ ↓ ┌──────────────────────┐ │ Harness Pipeline │ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ CI 构建前后端 │ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ 测试执行Playwright│ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ 测试 Agent核心 │ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ 风险评分 建议 │ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ Harness 发布决策 │ └──────────────────────┘四、核心能力拆解1️⃣ 智能选测效率提升关键问题 每次 CI 都全量跑测试 → 慢Agent 解决方案根据Git diff改动文件接口依赖关系历史失败数据 自动筛选测试用例示例defselect_tests(changed_files):tests[]iflogininchanged_files:tests.append(test_login)iforderinchanged_files:tests.append(test_order)returntests ⸻ 效果 • 测试时间 ↓50%~80%• 发布速度 ↑ ⸻2️⃣ 自动化测试执行基础能力 推荐工具 • UIPlaywright/Cypress • APIpytestrequests ⸻ 示例Playwright test(login test,async({page}){awaitpage.goto(/login);awaitpage.fill(#username,test);awaitpage.fill(#password,123456);awaitpage.click(#submit);awaitexpect(page).toHaveURL(/home);});⸻3️⃣ Agent 智能分析核心 ⸻ 输入数据{test_results:...,logs:...,response_time:1200,error_rate:0.08}⸻ 分析逻辑 ✔ 失败原因分析defanalyze_failure(logs):iftimeoutinlogs:returnperformance_issueif500inlogs:returnbackend_errorreturnunknown⸻ ✔ 性能判断defcheck_performance(response_time):ifresponse_time1000:returnslowreturnok⸻ ✔ 错误率判断defcheck_error_rate(rate):ifrate0.05:returnhighreturnnormal⸻4️⃣ 风险评分模型关键defrisk_score(data):score100ifdata[error_rate]0.05:score-30ifdata[response_time]1000:score-20ifdata[failures]0:score-40returnscore ⸻ 输出结果{score:65,risk:medium,suggestion:canary_release}⸻5️⃣ Harness 自动决策核心价值 ⸻ 决策逻辑defdecide(score):ifscore85:returnreleaseelifscore60:returncanaryelse:returnblock⸻ 执行动作 决策 行为 release 直接上线 canary 灰度发布 block 阻断上线 ⸻6️⃣ 发布后监控质量保障关键 ⸻ 数据来源 • API监控 • 前端埋点 • 错误日志 ⸻ Agent 判断defmonitor(error_rate,latency):iferror_rate0.1orlatency1500:returnrollbackreturnhealthy⸻ Harness 自动执行 • 回滚版本 • 通知开发 ⸻7️⃣ 自愈机制高级能力 ⸻ flaky 测试处理iffailandretry_pass:mark_flaky()allow_pass()⸻ 自动重试 pytest--reruns2⸻ UI 自动修复思路 • selector 失效 → 自动寻找相似元素 • XPath → CSS fallback ⸻ 五、Harness Pipeline 示例可落地 pipeline:name:web-test-pipeline stages:-stage:build steps:-run:npm install-run:npm run build-stage:test steps:-run:npx playwright test-run:python agent.py-stage:decision steps:-run:python decision.py ⸻ 六、完整执行流程串起来看 代码提交 ↓ Harness CI 构建 ↓ 执行自动化测试 ↓ Agent 分析结果 ↓ 输出风险评分 ↓ Harness 决策发布/阻断 ↓ 上线后持续监控 ↓ 异常 → 自动回滚 ⸻ 七、效率提升的本质 能力 提升点 智能选测 减少测试量 自动分析 减少人工 自动决策 减少等待 自愈 减少误报 ⸻ 八、质量提升的本质 • 持续监控不是一次性测试 • 自动回滚避免事故扩大 • 降低人为误判 ⸻ 九、落地实施步骤 十、一句话总结 Harness Engineering 让“发布流程自动化可控”