402 lines
13 KiB
JSON
402 lines
13 KiB
JSON
{
|
|
"reportName": "后台管理测试环境 HTTP API 验收",
|
|
"marker": "ADMIN-API-20260808123832880",
|
|
"gateway": "http://8.163.30.128:9000",
|
|
"generatedAt": "2026-08-08T12:38:35.384Z",
|
|
"startedAt": "2026-08-08T12:38:32.880Z",
|
|
"success": true,
|
|
"fatal": null,
|
|
"summary": {
|
|
"total": 19,
|
|
"passed": 19,
|
|
"failed": 0
|
|
},
|
|
"modules": [
|
|
{
|
|
"name": "supplemental-boundaries",
|
|
"startedAt": "2026-08-08T12:38:33.252Z",
|
|
"finishedAt": "2026-08-08T12:38:35.384Z",
|
|
"success": true,
|
|
"passed": 18,
|
|
"failed": 0,
|
|
"fatal": null
|
|
}
|
|
],
|
|
"scenarios": [
|
|
{
|
|
"name": "admin-boundary-automation",
|
|
"module": "supplemental-boundaries",
|
|
"success": true,
|
|
"deploymentBlocked": false,
|
|
"passed": 18,
|
|
"failed": 0
|
|
}
|
|
],
|
|
"deploymentBlockers": [],
|
|
"coverageGaps": [
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "resource-occupancy",
|
|
"name": "托盘/库位真实占用删除保护",
|
|
"reason": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源",
|
|
"category": "no-public-fixture-api"
|
|
}
|
|
],
|
|
"createdResources": {},
|
|
"excluded": [
|
|
{
|
|
"scope": "dashboard",
|
|
"reason": "首页为静态演示数据,不调用后端 API"
|
|
},
|
|
{
|
|
"scope": "hidden-prototypes",
|
|
"reason": "隐藏原型页面尚无已确认后端契约"
|
|
}
|
|
],
|
|
"securityNote": "报告不保存登录密码、Access Token、Refresh Token、图片二进制或 OCR 原文全文。",
|
|
"steps": [
|
|
{
|
|
"module": "authentication",
|
|
"scenario": null,
|
|
"name": "平台管理员登录",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/auth/login"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "7a4122c2-57cb-43a1-8f6c-8a0e0e001e08, 0e20722a-b785-40dd-8abd-e49b1b4bb541",
|
|
"traceId": "ca5a6a7db86f4c449f755bb3a906ef00",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T12:38:33.250Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "创建边界验收隔离仓库",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/warehouse-admin"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "68acea99-d807-4dfc-9f5e-ae7d4cd6537c, 3ab9ad21-b100-48b2-8fff-361fc59dd229",
|
|
"traceId": "e779ee6717044b50bcf2a680ddd65b78",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T12:38:33.978Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "创建边界验收隔离库位",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/locations?tenantId=0"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "50858329-b85d-4dfd-bb29-0740f5101567, 6754a5b0-2725-4ece-abac-72e394a827d5",
|
|
"traceId": "0d4cc4498ba14702a10892279f10b507",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T12:38:34.095Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "读取隔离库位版本",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/locations/2086069551981707265?tenantId=0&warehouseId=2086069551419670529"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "ec2e456d-660f-4368-86ea-6ea509c1591c, 5a6b624c-7db7-41a1-a985-9427c6441465",
|
|
"traceId": "eb59590f77724d9183cfea4d261e60e4",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T12:38:34.140Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "更新隔离库位以推进版本",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "PUT",
|
|
"path": "/api/platform/v1/locations/2086069551981707265?tenantId=0&warehouseId=2086069551419670529"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "faaddf3b-9280-490e-b424-68b48065d0d2, 7c81a029-31ce-4749-b51b-86d52ab8e518",
|
|
"traceId": "7885cc13944140c78f01ffc9ed830a30",
|
|
"evidence": "version=0",
|
|
"checkedAt": "2026-08-08T12:38:34.214Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "库位旧 version PUT 返回冲突",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "PUT",
|
|
"path": "/api/platform/v1/locations/2086069551981707265?tenantId=0&warehouseId=2086069551419670529"
|
|
},
|
|
"http": 200,
|
|
"code": "A0409",
|
|
"message": "库位已被其他操作修改,请刷新后重试",
|
|
"requestId": "c61bfeaf-c6d7-45b1-a819-149fccfc449b",
|
|
"traceId": "98cd3bf54e074a4eafff545932927d5a",
|
|
"evidence": "HTTP=200, code=A0409",
|
|
"checkedAt": "2026-08-08T12:38:34.271Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "冲突后回查库位",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/locations/2086069551981707265?tenantId=0&warehouseId=2086069551419670529"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "5daeea9d-1de6-49d9-af81-08c3cfe900ed, 08eb3a73-7dc6-4306-8880-6acd628f9439",
|
|
"traceId": "24bf5b3f0fd243d1a3955e42370dd718",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T12:38:34.314Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "库位冲突未造成部分更新",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/locations/2086069551981707265?tenantId=0&warehouseId=2086069551419670529"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "5daeea9d-1de6-49d9-af81-08c3cfe900ed, 08eb3a73-7dc6-4306-8880-6acd628f9439",
|
|
"traceId": "24bf5b3f0fd243d1a3955e42370dd718",
|
|
"evidence": "name=边界库位-编辑",
|
|
"checkedAt": "2026-08-08T12:38:34.314Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "import-boundaries",
|
|
"name": "仓库空文件安全失败且不模拟导入成功",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/warehouse-admin/import?tenantId=0&dryRun=true"
|
|
},
|
|
"http": 200,
|
|
"code": "A0422",
|
|
"message": "仓库导入文件校验失败",
|
|
"requestId": "2e8ad0c6-c08f-410e-8892-471ef98094b7",
|
|
"traceId": "1301488310ef422294f5f3522eb9ee92",
|
|
"evidence": "HTTP=200, code=A0422, bytes=0",
|
|
"checkedAt": "2026-08-08T12:38:34.365Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "import-boundaries",
|
|
"name": "仓库缺列伪 XLSX安全失败且不模拟导入成功",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/warehouse-admin/import?tenantId=0&dryRun=true"
|
|
},
|
|
"http": 200,
|
|
"code": "A0422",
|
|
"message": "仓库导入文件校验失败",
|
|
"requestId": "310528eb-14e9-4a13-a9cd-a448b749e550",
|
|
"traceId": "bfed5d5245de4d11991d66b2d4eb2e91",
|
|
"evidence": "HTTP=200, code=A0422, bytes=6",
|
|
"checkedAt": "2026-08-08T12:38:34.495Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "import-boundaries",
|
|
"name": "快递公司错误扩展名安全失败且不模拟导入成功",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/express-companies/import?tenantId=0"
|
|
},
|
|
"http": 200,
|
|
"code": "A0422",
|
|
"message": "快递公司导入文件校验失败",
|
|
"requestId": "66f6c744-a075-40dd-9433-aca813ff1ae0",
|
|
"traceId": "544a7ebdc4954baf8e678c684f7421fc",
|
|
"evidence": "HTTP=200, code=A0422, bytes=27",
|
|
"checkedAt": "2026-08-08T12:38:34.539Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "import-boundaries",
|
|
"name": "往来单位非 XLSX安全失败且不模拟导入成功",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/partners/import?tenantId=0"
|
|
},
|
|
"http": 200,
|
|
"code": "A0422",
|
|
"message": "往来单位导入文件校验失败",
|
|
"requestId": "f17bb5a5-f47e-4551-a007-e427e7d4b018",
|
|
"traceId": "a81168d94dde4eee89bd3fce348f3c91",
|
|
"evidence": "HTTP=200, code=A0422, bytes=27",
|
|
"checkedAt": "2026-08-08T12:38:34.582Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "错误客户海外仓费用 ID 安全失败",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/iam/tenants/999999999999999999/overseas-storage-fees"
|
|
},
|
|
"http": 200,
|
|
"code": "A0404",
|
|
"message": "海外仓费用不存在",
|
|
"requestId": "93257eb1-50e1-465b-8c60-a91839406f7c",
|
|
"traceId": "4f867f925be844308c4ac133fb14232a",
|
|
"evidence": "HTTP=200, code=A0404",
|
|
"checkedAt": "2026-08-08T12:38:34.678Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "库位列表未授权边界响应正确",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/locations?page=1&size=1&tenantId=0"
|
|
},
|
|
"http": 401,
|
|
"code": "A0401",
|
|
"message": "未登录或令牌已失效",
|
|
"requestId": "09a9dbb3-2492",
|
|
"traceId": null,
|
|
"evidence": "HTTP=401, code=A0401",
|
|
"checkedAt": "2026-08-08T12:38:34.702Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "下载中心非法页码边界响应正确",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/files/export-tasks?page=0&size=1"
|
|
},
|
|
"http": 200,
|
|
"code": "A0422",
|
|
"message": "page.page: must be greater than or equal to 1",
|
|
"requestId": "a424cdde-4050-4646-9629-73d9033232e6",
|
|
"traceId": "a807d130122c41fea37d6fdf77b6b319",
|
|
"evidence": "HTTP=200, code=A0422",
|
|
"checkedAt": "2026-08-08T12:38:35.009Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "船期价格非法状态边界响应正确",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=INVALID"
|
|
},
|
|
"http": 200,
|
|
"code": "A0400",
|
|
"message": "Bad request",
|
|
"requestId": "f6f27fe9-fe8d-40a8-8533-3839a10dd9ea",
|
|
"traceId": "543a3eb50f6040dd9db2ccd621634ff9",
|
|
"evidence": "HTTP=200, code=A0400",
|
|
"checkedAt": "2026-08-08T12:38:35.235Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "停用隔离库位以便清理",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "PATCH",
|
|
"path": "/api/platform/v1/locations/2086069551981707265/status?tenantId=0&warehouseId=2086069551419670529"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "b4db06df-896c-4cff-9a41-00fad82f1702, 3213100d-ef66-4484-8732-59406c57ef1e",
|
|
"traceId": "7f5423ff170849948dd98eb3d0047405",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T12:38:35.289Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "删除隔离库位",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "DELETE",
|
|
"path": "/api/platform/v1/locations/2086069551981707265?tenantId=0&warehouseId=2086069551419670529&version=2"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "293e1cd9-56b5-41a1-9679-65d9568f301f, 718b10c4-2980-41d2-9095-0c9989b4b108",
|
|
"traceId": "470c23f5d6f84f32adfd5d5e43478af2",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T12:38:35.326Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "停用隔离仓库",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "PATCH",
|
|
"path": "/api/platform/v1/warehouse-admin/2086069551419670529/status?tenantId=0&status=INACTIVE"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "f4aa5fb6-a1d8-4ce4-a9cb-ec8718a968c2, 46128fd3-7a3c-4c96-b3bb-0a11b375ed5b",
|
|
"traceId": "1e7e85e33f3f43db8e634ee6e5b8b3ab",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T12:38:35.384Z"
|
|
}
|
|
]
|
|
}
|