【无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(改动文件)
- 接口依赖关系
- 历史失败数据
👉 自动筛选测试用例
示例
def select_tests(changed_files):
tests = []
if "login" in changed_files:
tests.append("test_login")
if "order" in changed_files:
tests.append("test_order")
return tests
⸻
效果
• 测试时间 ↓ 50%~80%
• 发布速度 ↑
⸻
2️⃣ 自动化测试执行(基础能力)
推荐工具
• UI:Playwright / Cypress
• API:pytest + requests
⸻
示例(Playwright)
test('login test', async ({ page }) => {
await page.goto('/login');
await page.fill('#username', 'test');
await page.fill('#password', '123456');
await page.click('#submit');
await expect(page).toHaveURL('/home');
});
⸻
3️⃣ Agent 智能分析(核心)
⸻
输入数据
{
"test_results": "...",
"logs": "...",
"response_time": 1200,
"error_rate": 0.08
}
⸻
分析逻辑
✔ 失败原因分析
def analyze_failure(logs):
if "timeout" in logs:
return "performance_issue"
if "500" in logs:
return "backend_error"
return "unknown"
⸻
✔ 性能判断
def check_performance(response_time):
if response_time > 1000:
return "slow"
return "ok"
⸻
✔ 错误率判断
def check_error_rate(rate):
if rate > 0.05:
return "high"
return "normal"
⸻
4️⃣ 风险评分模型(关键)
def risk_score(data):
score = 100
if data["error_rate"] > 0.05:
score -= 30
if data["response_time"] > 1000:
score -= 20
if data["failures"] > 0:
score -= 40
return score
⸻
输出结果
{
"score": 65,
"risk": "medium",
"suggestion": "canary_release"
}
⸻
5️⃣ Harness 自动决策(核心价值)
⸻
决策逻辑
def decide(score):
if score >= 85:
return "release"
elif score >= 60:
return "canary"
else:
return "block"
⸻
执行动作
决策 行为
release 直接上线
canary 灰度发布
block 阻断上线
⸻
6️⃣ 发布后监控(质量保障关键)
⸻
数据来源
• API监控
• 前端埋点
• 错误日志
⸻
Agent 判断
def monitor(error_rate, latency):
if error_rate > 0.1 or latency > 1500:
return "rollback"
return "healthy"
⸻
👉 Harness 自动执行:
• 回滚版本
• 通知开发
⸻
7️⃣ 自愈机制(高级能力)
⸻
flaky 测试处理
if fail and retry_pass:
mark_flaky()
allow_pass()
⸻
自动重试
pytest --reruns 2
⸻
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:
让“发布流程自动化 + 可控”
更多推荐




所有评论(0)