# ============================================================================== # 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 "=================================================================="