# 前端契约回归:模拟 demo 页面加载时的全部自动请求,验证后端链路 $base = "http://127.0.0.1:8081" $userId = "739564171091247104" $out = @() function Check($label, $resp, $extra) { $ok = $resp.success $line = "[{0}] {1} code={2} ok={3} {4}" -f $(if($ok){"OK"}else{"FAIL"}), $label, $resp.code, $ok, $extra $script:out += $line Write-Output $line } # 0. 登录 $tok = (Invoke-RestMethod -Method Get -Uri "$base/api/auth/debug/token?userId=$userId" -TimeoutSec 30).data $h = @{ Authorization = "Bearer $tok" } $out += "[token] len=$($tok.Length)" # 1. 省份 $r1 = Invoke-RestMethod -Method Get -Uri "$base/api/rule/region/level?level=1" -Headers $h -TimeoutSec 30 Check "region/level(level=1)" $r1 ("省数=" + $r1.data.Count) $firstProvId = $r1.data[0].id # 2. 市级联 $r2 = Invoke-RestMethod -Method Get -Uri "$base/api/rule/region/list?parentId=$firstProvId" -Headers $h -TimeoutSec 30 Check "region/list(parentId=$firstProvId)" $r2 ("市数=" + $r2.data.Count) # 3. 字典4组 foreach ($g in @("lead_source","brand","product","scene")) { $rd = Invoke-RestMethod -Method Get -Uri "$base/api/dict/item/enabled-list?groupCode=$g" -Headers $h -TimeoutSec 30 Check "dict/enabled-list($g)" $rd ("项数=" + $rd.data.Count) } # 4. 公海池 $rp = Invoke-RestMethod -Method Post -Uri "$base/api/rule/pool/page" -Headers $h -ContentType "application/x-www-form-urlencoded" -Body "current=1&size=50" -TimeoutSec 30 Check "rule/pool/page" $rp ("total=" + $rp.data.total + " 池数=" + $rp.data.content.Count) # 5. 部门树 $rd2 = Invoke-RestMethod -Method Get -Uri "$base/api/system/depts/tree" -Headers $h -TimeoutSec 30 $cnt = 0; function Walk($n){ $script:cnt++; if($n.children){ $n.children | ForEach-Object { Walk $_ } } } $rd2.data | ForEach-Object { Walk $_ } Check "system/depts/tree" $rd2 ("节点数=" + $cnt) # 6. 用户列表 $ru = Invoke-RestMethod -Method Post -Uri "$base/api/system/users/page" -Headers $h -ContentType "application/x-www-form-urlencoded" -Body "current=1&size=5" -TimeoutSec 30 Check "system/users/page" $ru ("total=" + $ru.data.total + " 本页=" + $ru.data.content.Count) # 7. 线索列表(MANAGE) $rl = Invoke-RestMethod -Method Post -Uri "$base/api/lead/page" -Headers $h -ContentType "application/x-www-form-urlencoded" -Body "current=1&size=10&viewType=MANAGE" -TimeoutSec 30 Check "lead/page(MANAGE)" $rl ("total=" + $rl.data.total + " 本页=" + $rl.data.content.Count) # 8. 线索统计三视图 foreach ($v in @("MANAGE","PUBLIC_POOL","MY_LEAD")) { $rs = Invoke-RestMethod -Method Post -Uri "$base/api/lead/stats" -Headers $h -ContentType "application/x-www-form-urlencoded" -Body "viewType=$v" -TimeoutSec 30 Check "lead/stats($v)" $rs ("data=" + ($rs.data | ConvertTo-Json -Compress)) } $pass = ($out | Where-Object { $_ -like "[FAIL]*" }).Count $out += "==== SUMMARY: FAIL=$pass / total=$($out.Count-1) ====" $out | Out-File -Encoding utf8 "d:\code\crm-backend-matt\tmp\frontend-verify-out.txt"