102 行
6.7 KiB
PowerShell
102 行
6.7 KiB
PowerShell
# ==============================================================================
|
||
# BTP-16 访客端 AI 顾问浮层流式咨询与高意向留资表单联动端到端自动化测试
|
||
# ==============================================================================
|
||
$session = "btp16"
|
||
$evidenceDir = "docs/test-evidence/round-4"
|
||
$screenshotPath = "$evidenceDir/btp-16-ai-lead.png"
|
||
$cardListScreenshot = "$evidenceDir/btp-16-card-list.png"
|
||
$conciergeScreenshot = "$evidenceDir/btp-16-ai-concierge.png"
|
||
$initScript = "docs/test-evidence/round-4/browser-init.js"
|
||
|
||
Write-Host "=================================================================="
|
||
Write-Host "【BTP-16】AI 顾问浮层流式咨询与高意向留资表单联动测试 (P0)"
|
||
Write-Host "Session ID: $session"
|
||
Write-Host "Screenshot: $screenshotPath"
|
||
Write-Host "=================================================================="
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 步骤一:登录系统
|
||
# ------------------------------------------------------------------------------
|
||
Write-Host "`n>>> [步骤一/4] 登录系统 http://localhost:5173/login ..."
|
||
agent-browser --session $session open "http://localhost:5173/login" --init-script $initScript
|
||
agent-browser --session $session wait 1500
|
||
agent-browser --session $session click "button.arco-btn-primary"
|
||
agent-browser --session $session wait 2500
|
||
$loginUrl = agent-browser --session $session get url
|
||
Write-Host "登录成功,当前 URL: $loginUrl"
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 步骤二:名片列表验证 (Alex Morgan, published)
|
||
# ------------------------------------------------------------------------------
|
||
Write-Host "`n>>> [步骤二/4] 导航至名片列表页 http://localhost:5173/card/list ..."
|
||
agent-browser --session $session open "http://localhost:5173/card/list" --init-script $initScript
|
||
agent-browser --session $session wait 2500
|
||
$listSnapshot = agent-browser --session $session snapshot -i
|
||
Write-Host "--- 名片列表 DOM 快照 ---"
|
||
Write-Host $listSnapshot
|
||
|
||
$hasAlex = $listSnapshot -match "Alex Morgan"
|
||
$hasPublished = ($listSnapshot -match "Published") -or ($listSnapshot -match "published")
|
||
Write-Host "名片 Alex Morgan 存在性: $(if ($hasAlex) { '[PASS] 已检测到 Alex Morgan' } else { '[FAIL] 未检测到' })"
|
||
Write-Host "名片状态 published: $(if ($hasPublished) { '[PASS] 已检测到 Published 状态标签' } else { '[FAIL] 未检测到' })"
|
||
agent-browser --session $session screenshot $cardListScreenshot
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 步骤三:AI 顾问配置页验证 (关联名片、开场白欢迎语)
|
||
# ------------------------------------------------------------------------------
|
||
Write-Host "`n>>> [步骤三/4] 导航至 AI 顾问配置页 http://localhost:5173/ai/concierge ..."
|
||
agent-browser --session $session open "http://localhost:5173/ai/concierge" --init-script $initScript
|
||
agent-browser --session $session wait 3000
|
||
$conciergeSnapshot = agent-browser --session $session snapshot -i
|
||
Write-Host "--- AI 顾问配置 DOM 快照 ---"
|
||
Write-Host $conciergeSnapshot
|
||
|
||
$hasCardOption = ($conciergeSnapshot -match "Alex Morgan") -or ($conciergeSnapshot -match "Card #1") -or ($conciergeSnapshot -match "#1")
|
||
$hasWelcomeMsg = ($conciergeSnapshot -match "国际业务顾问") -or ($conciergeSnapshot -match "Welcome") -or ($conciergeSnapshot -match "顾问")
|
||
Write-Host "顾问关联名片选择项: $(if ($hasCardOption) { '[PASS] 已正确关联名片 Alex Morgan (#1)' } else { '[FAIL] 未检测到' })"
|
||
Write-Host "顾问开场白欢迎语: $(if ($hasWelcomeMsg) { '[PASS] 已检测到专属国际业务顾问欢迎语' } else { '[FAIL] 未检测到' })"
|
||
agent-browser --session $session screenshot $conciergeScreenshot
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 步骤四:Bento 构建器验证 (表单类卡片 / AI 浮层与属性面板联动)
|
||
# ------------------------------------------------------------------------------
|
||
Write-Host "`n>>> [步骤四/4] 打开 Bento 构建器 http://localhost:5173/card/builder?id=1 ..."
|
||
agent-browser --session $session open "http://localhost:5173/card/builder?id=1" --init-script $initScript
|
||
agent-browser --session $session wait 3000
|
||
|
||
# 点击选中 Phone canvas 中第 5 个留资表单卡片
|
||
Write-Host "`n>>> 交互测试:点击选中 Phone canvas 中第 5 块留资表单卡片..."
|
||
agent-browser --session $session eval "const cards = Array.from(document.querySelectorAll('div[class*=\"phone\"] > div')); if (cards.length >= 5) { cards[4].click(); 'selected card 5'; } else { 'cards count: ' + cards.length; }"
|
||
agent-browser --session $session wait 1500
|
||
|
||
$builderSnapshot = agent-browser --session $session snapshot -i
|
||
Write-Host "--- Bento 构建器选中表单卡片后的 DOM 快照 ---"
|
||
Write-Host $builderSnapshot
|
||
|
||
$hasFormInPalette = ($builderSnapshot -match 'button "Form"') -or ($builderSnapshot -match 'button "表单"')
|
||
$hasFormInCanvas = ($builderSnapshot -match 'Partnership Form') -or ($builderSnapshot -match 'form / colSpan')
|
||
$hasFormInProps = ($builderSnapshot -match 'High-Intent') -or ($builderSnapshot -match 'Form')
|
||
|
||
Write-Host "Bento 组件库表单组件 (Form): $(if ($hasFormInPalette) { '[PASS] 组件库包含 Form 表单类卡片构建按钮' } else { '[FAIL] 未检测到' })"
|
||
Write-Host "Bento 手机画布表单卡片: $(if ($hasFormInCanvas) { '[PASS] 手机画布中已成功载入留资表单卡片 (form 类型块)' } else { '[FAIL] 未检测到' })"
|
||
Write-Host "画布与右侧属性表单联动: $(if ($hasFormInProps) { '[PASS] 属性面板与选中的 Form 卡片成功联动' } else { '[FAIL] 未检测到联动' })"
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 截取最终测试证据截图
|
||
# ------------------------------------------------------------------------------
|
||
Write-Host "`n>>> 截取测试证据截图至 $screenshotPath ..."
|
||
agent-browser --session $session screenshot --full $screenshotPath
|
||
Write-Host "截图完成: $screenshotPath"
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 最终结论判定
|
||
# ------------------------------------------------------------------------------
|
||
$passAll = $hasAlex -and $hasPublished -and $hasCardOption -and $hasWelcomeMsg -and $hasFormInPalette -and $hasFormInCanvas
|
||
Write-Host "`n=================================================================="
|
||
if ($passAll) {
|
||
Write-Host "【BTP-16 测试结论】: [PASS] 访客端 AI 顾问浮层流式咨询与高意向留资表单联动测试全部通过!"
|
||
} else {
|
||
Write-Host "【BTP-16 测试结论】: [FAIL] 存在未通过项,请检查日志!"
|
||
}
|
||
Write-Host "=================================================================="
|