当前位置: 首页 > news >正文

【无Harness Engineering + 测试 Agent(Web自动化测试落地方案Harness Engineerin

Harness Engineering + 测试 Agent(Web自动化测试落地方案)

目标:打造一套自动执行 + 智能分析 + 自动决策 + 持续优化的 Web 测试体系
场景:Web 应用(前端 + API)自动化测试


一、核心一句话

👉 Harness:负责流程自动化 + 发布控制
👉 Agent:负责测试智能化 + 分析 + 决策


二、通俗理解(必须搞懂)

1️⃣ 什么是 Harness Engineering

Harness 的理念:

把“人判断发布”的过程 → 变成“系统自动判断”


传统流程:

写代码 → 跑测试 → 人看报告 → 决定上线


现在(工程化):

写代码 → 自动测试 → Agent分析 → 自动上线/阻断


2️⃣ 什么是测试 Agent

👉 Agent = “会思考的测试程序”

相比传统自动化测试,多了:

  • ✔ 智能选测(不再全量跑)
  • ✔ 自动分析失败原因
  • ✔ 自动给出发布建议
  • ✔ 自愈(修复 flaky 测试)

三、整体架构(Web测试)

┌──────────────┐ │ Git 提交 │ └──────┬───────┘ ↓ ┌──────────────────────┐ │ Harness Pipeline │ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ CI 构建(前后端) │ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ 测试执行(Playwright)│ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ 测试 Agent(核心) │ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ 风险评分 + 建议 │ └──────┬───────────────┘ ↓ ┌──────────────────────┐ │ Harness 发布决策 │ └──────────────────────┘

四、核心能力拆解


1️⃣ 智能选测(效率提升关键)

问题

👉 每次 CI 都全量跑测试 → 慢


Agent 解决方案

根据:

  • Git diff(改动文件)
  • 接口依赖关系
  • 历史失败数据

👉 自动筛选测试用例


示例

defselect_tests(changed_files):tests=[]if"login"inchanged_files:tests.append("test_login")if"order"inchanged_files:tests.append("test_order")returntests ⸻ 效果 • 测试时间 ↓50%~80%• 发布速度 ↑ ⸻2️⃣ 自动化测试执行(基础能力) 推荐工具 • UI:Playwright/Cypress • API:pytest+requests ⸻ 示例(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):if"timeout"inlogs:return"performance_issue"if"500"inlogs:return"backend_error"return"unknown"⸻ ✔ 性能判断defcheck_performance(response_time):ifresponse_time>1000:return"slow"return"ok"⸻ ✔ 错误率判断defcheck_error_rate(rate):ifrate>0.05:return"high"return"normal"4️⃣ 风险评分模型(关键)defrisk_score(data):score=100ifdata["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):ifscore>=85:return"release"elifscore>=60:return"canary"else:return"block"⸻ 执行动作 决策 行为 release 直接上线 canary 灰度发布 block 阻断上线 ⸻6️⃣ 发布后监控(质量保障关键) ⸻ 数据来源 • API监控 • 前端埋点 • 错误日志 ⸻ Agent 判断defmonitor(error_rate,latency):iferror_rate>0.1orlatency>1500:return"rollback"return"healthy"⸻ 👉 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: 让“发布流程自动化+可控”
http://www.jsqmd.com/news/626254/

相关文章:

  • 线上出了Bug,全组排查到凌晨三点。最后发现是我改公共类导致的。检讨书写到一半,隔壁老兵说了句话,让我从“背锅侠“变成了“改革者“
  • # 理论驱动的工具设计:三大公理体系如何推导出6表单全链路工程化开发体系
  • 2026年OpenClaw如何安装?京东云4分钟超简单搭建OpenClaw,千问大模型搭建步骤
  • 调参像炒菜——火候、盐量都得试
  • MoveIt! 控制器配置实战:从“Unable to identify any set of controllers”报错到Gazebo仿真成功
  • 从SolidWorks模型到MoveIt仿真:一条龙搞定机械臂的URDF与配置助手
  • Android Studio中文语言包终极指南:3分钟快速汉化教程
  • iOS审核 4.3a - Design - Spam 终于解决了!!!
  • MPXH6115A压力传感器嵌入式驱动库设计与应用
  • OpenClaw 大结局——接入个人微信紊
  • 推荐系统中 Q 值的设计:从训练目标到推理信号特
  • 告别USB线!HarmonyOS开发者必看:5分钟搞定hdc远程网络连接(含5.0版本新坑指南)
  • 5分钟部署bge-large-zh-v1.5:手把手教你搭建中文语义搜索服务
  • 别再手动拼URL了!用Python脚本一键获取百度千帆Access Token(附完整代码)
  • Android设备搭建本地RTSP服务器(基于live)古
  • MeteorSeed币
  • MeteorSeed繁
  • 2026年榧塑膳食是什么:植物榧塑膳食、榧塑膳食产品、榧塑膳食代餐、榧塑膳食搭配、榧塑膳食组合、营养榧塑膳食、香榧价值选择指南 - 优质品牌商家
  • 2025届学术党必备的五大降AI率网站推荐榜单
  • FreakStudio炮
  • 一文学习 Spring 声明式事务源码全流程总结融
  • ESP32_ISR定时器PWM库:16路同步软件PWM实现
  • 嵌入式无阻塞LED蜂鸣器驱动:状态机+时间戳轮询实现
  • ArduMotor跨平台电机控制库:从Arduino到KL46Z的嵌入式驱动抽象
  • 聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?敖
  • 平时没感觉突然痛到动不了,颈椎病腰间盘突出早有潜伏信号,成因症状与防护干货速收藏
  • 机器学习流水线工业化落地指南(从Jupyter Notebook到SLO达标SLA的4级跃迁路径)
  • 【论文复现】一种基于价格弹性矩阵的居民峰谷分时电价激励策略【需求响应】(Matlab代码实现)
  • Hi3559AV100开发板网络调试实录:YT8521SH PHY芯片百兆通千兆不通,我是这样解决的
  • 5步解决Sunshine游戏流媒体常见问题:终极诊断指南