| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- param(
- [string]$BaseUrl = "http://127.0.0.1:4301"
- )
- $ErrorActionPreference = "Stop"
- $artifactDir = Join-Path $PSScriptRoot "artifacts"
- New-Item -ItemType Directory -Path $artifactDir -Force | Out-Null
- $cases = @(
- @{ Id = "AUTO-001"; Route = "/dashboard" },
- @{ Id = "AUTO-002"; Route = "/tickets" },
- @{ Id = "AUTO-003"; Route = "/sla" },
- @{ Id = "AUTO-004"; Route = "/knowledge" },
- @{ Id = "AUTO-005"; Route = "/files" },
- @{ Id = "AUTO-006"; Route = "/reviews" },
- @{ Id = "AUTO-007"; Route = "/test-plan" }
- )
- $results = @()
- foreach ($case in $cases) {
- $url = "$BaseUrl$($case.Route)"
- $response = Invoke-WebRequest -Uri $url -UseBasicParsing
- if ($response.StatusCode -ne 200) {
- throw "$($case.Id) $($case.Route) unexpected HTTP status: $($response.StatusCode)"
- }
- $safeName = $case.Route.TrimStart("/").Replace("/", "_")
- if ([string]::IsNullOrWhiteSpace($safeName)) {
- $safeName = "home"
- }
- $screenshot = Join-Path $artifactDir "$($case.Id)-$safeName.png"
- npx.cmd --yes playwright screenshot --viewport-size=1440,1000 $url $screenshot | Out-Host
- if (!(Test-Path $screenshot)) {
- throw "$($case.Id) $($case.Route) screenshot was not created"
- }
- $fileInfo = Get-Item $screenshot
- if ($fileInfo.Length -lt 10240) {
- throw "$($case.Id) $($case.Route) screenshot file is too small"
- }
- $results += [pscustomobject]@{
- id = $case.Id
- route = $case.Route
- status = $response.StatusCode
- result = "PASS"
- screenshot = $screenshot
- }
- Write-Host "$($case.Id) $($case.Route) PASS"
- }
- $results | ConvertTo-Json -Depth 4 | Set-Content -Path (Join-Path $artifactDir "auto-test-result.json") -Encoding UTF8
|