param( [string]$BaseUrl = "http://127.0.0.1:4301" ) $ErrorActionPreference = "Stop" $reportDir = Join-Path $PSScriptRoot "reports" $logFile = Join-Path $reportDir "auto_test_log.txt" $summaryFile = Join-Path $reportDir "auto_test_summary.txt" New-Item -ItemType Directory -Path $reportDir -Force | Out-Null $oldErrorActionPreference = $ErrorActionPreference $ErrorActionPreference = "Continue" $output = powershell -ExecutionPolicy Bypass -File "$PSScriptRoot\servicepilot-ui-flow.ps1" -BaseUrl $BaseUrl 2>&1 $exitCode = $LASTEXITCODE $ErrorActionPreference = $oldErrorActionPreference $ansiPattern = "$([char]27)\[[0-9;]*m" $textOutput = $output | ForEach-Object { $_.ToString() -replace $ansiPattern, "" } $textOutput | Set-Content -Path $logFile -Encoding UTF8 $textOutput | ForEach-Object { Write-Host $_ } $result = "PASS" if ($exitCode -ne 0) { $result = "FAIL" } @( "ServicePilot 自动化测试执行记录", "执行时间:$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')", "测试地址:$BaseUrl", "测试范围:dashboard、tickets、sla、knowledge、files、reviews、test-plan 七个前端页面", "预期标准:页面 HTTP 200、截图文件生成成功、截图大小大于 10KB", "执行结果:$result", "详细日志:$logFile", "截图与 JSON 结果:$(Join-Path $PSScriptRoot 'artifacts')" ) | Set-Content -Path $summaryFile -Encoding UTF8 Write-Host "自动化测试日志已生成:$logFile" Write-Host "自动化测试摘要已生成:$summaryFile" if ($exitCode -ne 0) { exit $exitCode }