124 lines
5.3 KiB
PowerShell
124 lines
5.3 KiB
PowerShell
$ErrorActionPreference = "Continue"
|
|
$BaseUrl = "http://localhost:17861/modelTF"
|
|
$Token = "platform-token-u_admin.sess_665d17a01f05"
|
|
$Headers = @{ Authorization = "Bearer $Token" }
|
|
|
|
$results = @()
|
|
$passCount = 0
|
|
$failCount = 0
|
|
|
|
function Test-Api {
|
|
param(
|
|
[string]$Name,
|
|
[string]$Method = "GET",
|
|
[string]$Url,
|
|
[object]$Body = $null,
|
|
[string]$ContentType = "application/json"
|
|
)
|
|
try {
|
|
$params = @{
|
|
Uri = "$BaseUrl$Url"
|
|
Method = $Method
|
|
Headers = $Headers
|
|
ContentType = $ContentType
|
|
ErrorAction = "Stop"
|
|
}
|
|
if ($Body -and $Method -ne "GET") {
|
|
$params.Body = if ($Body -is [string]) { $Body } else { $Body | ConvertTo-Json -Depth 5 }
|
|
}
|
|
$resp = Invoke-RestMethod @params
|
|
$code = $resp.code
|
|
$msg = $resp.message
|
|
$dataLen = if ($resp.data) {
|
|
if ($resp.data -is [array]) { "$($resp.data.Count) items" }
|
|
elseif ($resp.data -is [string]) { "str(len=$($resp.data.Length))" }
|
|
else { "obj" }
|
|
} else { "null" }
|
|
$status = if ($code -eq 0) { "PASS" } else { "FAIL(code=$code)" }
|
|
if ($code -eq 0) { $script:passCount++ } else { $script:failCount++ }
|
|
$script:results += [PSCustomObject]@{
|
|
Module = ($Name -split '/')[0]
|
|
Name = $Name
|
|
Method = $Method
|
|
Url = $Url
|
|
Status = $status
|
|
Message = $msg
|
|
DataLen = $dataLen
|
|
}
|
|
}
|
|
catch {
|
|
$script:failCount++
|
|
$errMsg = $_.Exception.Message.Substring(0, [Math]::Min(120, $_.Exception.Message.Length))
|
|
$script:results += [PSCustomObject]@{
|
|
Module = ($Name -split '/')[0]
|
|
Name = $Name
|
|
Method = $Method
|
|
Url = $Url
|
|
Status = "ERROR"
|
|
Message = $errMsg
|
|
DataLen = "-"
|
|
}
|
|
}
|
|
}
|
|
|
|
# ==================== 1. 基础 ====================
|
|
Test-Api "基础/健康检查" -Url "/health"
|
|
Test-Api "基础/系统信息" -Url "/system-info"
|
|
Test-Api "基础/当前用户" -Url "/me"
|
|
Test-Api "基础/Dashboard总览" -Url "/dashboard/overview"
|
|
Test-Api "基础/Dashboard统计" -Url "/dashboard/stats"
|
|
|
|
# ==================== 2. 用户管理 ====================
|
|
Test-Api "用户管理/用户列表" -Url "/users"
|
|
Test-Api "用户管理/创建用户" -Method POST -Url "/users" -Body @{ username="test_user_$([DateTime]::Now.Ticks)"; password="Test1234!"; display_name="Test User"; role="viewer" }
|
|
Test-Api "用户管理/修改密码" -Method POST -Url "/users/me/password" -Body @{ old_password="admin123"; new_password="admin123" }
|
|
|
|
# ==================== 3. 模型管理 ====================
|
|
Test-Api "模型管理/模型列表" -Url "/model-manage"
|
|
Test-Api "模型管理/本地模型" -Url "/model-manage/local-models"
|
|
Test-Api "模型管理/训练产出模型" -Url "/model-manage/trained-models"
|
|
Test-Api "模型管理/导出任务" -Url "/model-manage/export-jobs"
|
|
Test-Api "模型管理/创建模型" -Method POST -Url "/model-manage" -Body @{ name="test_model_$([DateTime]::Now.Ticks)"; source="local"; model_path="/tmp/test"; description="test model" }
|
|
|
|
# ==================== 4. 数据集管理 ====================
|
|
Test-Api "数据集/数据集列表" -Url "/dataset-manage"
|
|
Test-Api "数据集/创建数据集" -Method POST -Url "/dataset-manage" -Body @{ name="test_dataset_$([DateTime]::Now.Ticks)"; description="test dataset" }
|
|
|
|
# ==================== 5. 模型训练 ====================
|
|
Test-Api "模型训练/训练任务列表" -Url "/fine-tune"
|
|
Test-Api "模型训练/名称检查" -Url "/fine-tune/check-name?name=test_task"
|
|
Test-Api "模型训练/预检" -Method POST -Url "/fine-tune/preflight" -Body @{ model_id="m_test"; dataset_id="ds_test"; epochs=1 }
|
|
|
|
# ==================== 6. 模型评测 ====================
|
|
Test-Api "模型评测/评测任务列表" -Url "/model-eval"
|
|
Test-Api "模型评测/评测维度列表" -Url "/dimension"
|
|
|
|
# ==================== 7. 模型推理/对比 ====================
|
|
Test-Api "模型推理/对比列表" -Url "/model-compare"
|
|
Test-Api "模型推理/本地状态" -Url "/model-chat/local/status"
|
|
|
|
# ==================== 8. 数据处理 ====================
|
|
Test-Api "数据处理/任务列表" -Url "/data-process"
|
|
Test-Api "数据处理/算力节点" -Url "/compute/nodes"
|
|
|
|
# ==================== 9. 算力节点 ====================
|
|
Test-Api "算力节点/GPU列表" -Url "/compute/gpus"
|
|
Test-Api "算力节点/任务队列" -Url "/compute/queue"
|
|
Test-Api "算力节点/同步任务" -Url "/compute/sync-jobs/sync_test"
|
|
|
|
# ==================== 10. 治理/审计 ====================
|
|
Test-Api "治理/操作日志" -Url "/log-files"
|
|
Test-Api "治理/训练日志" -Url "/training-log-files"
|
|
Test-Api "治理/Web日志" -Method POST -Url "/web-log" -Body @{ level="info"; message="test log entry" }
|
|
|
|
# ==================== 11. 数据转换 ====================
|
|
Test-Api "数据转换/任务列表" -Url "/data-convert"
|
|
|
|
# ==================== 输出结果 ====================
|
|
Write-Host ""
|
|
Write-Host "========== Test Summary =========="
|
|
Write-Host "PASS: $passCount FAIL: $failCount TOTAL: $($passCount + $failCount)"
|
|
Write-Host ""
|
|
|
|
$results | Format-Table -AutoSize -Property Module, Name, Method, Status, DataLen, Message | Out-String -Width 200
|