427 lines
14 KiB
JSON
427 lines
14 KiB
JSON
{
|
|
"reportName": "后台管理测试环境 HTTP API 验收",
|
|
"marker": "ADMIN-API-20260808053940400",
|
|
"gateway": "http://8.163.30.128:9000",
|
|
"generatedAt": "2026-08-08T05:39:42.568Z",
|
|
"startedAt": "2026-08-08T05:39:40.400Z",
|
|
"success": false,
|
|
"fatal": null,
|
|
"summary": {
|
|
"total": 20,
|
|
"passed": 14,
|
|
"failed": 6
|
|
},
|
|
"modules": [
|
|
{
|
|
"name": "supplemental-boundaries",
|
|
"startedAt": "2026-08-08T05:39:40.888Z",
|
|
"finishedAt": "2026-08-08T05:39:42.568Z",
|
|
"success": false,
|
|
"passed": 13,
|
|
"failed": 6,
|
|
"fatal": null
|
|
}
|
|
],
|
|
"scenarios": [
|
|
{
|
|
"name": "admin-boundary-automation",
|
|
"module": "supplemental-boundaries",
|
|
"success": false,
|
|
"deploymentBlocked": true,
|
|
"passed": 13,
|
|
"failed": 6
|
|
}
|
|
],
|
|
"deploymentBlockers": [
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "托盘/库位真实占用删除保护自动化缺口",
|
|
"evidence": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源",
|
|
"code": null,
|
|
"requestId": null,
|
|
"traceId": null
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "船期价格非法状态边界响应正确",
|
|
"evidence": "HTTP=503, code=missing",
|
|
"code": null,
|
|
"requestId": "8588809e-50",
|
|
"traceId": null
|
|
}
|
|
],
|
|
"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": "59e62f5a-a19a-481e-a9ef-4e7da203bad0, c17f4a61-3a7b-4c0d-9e81-3b4991ce3c40",
|
|
"traceId": "190e5ac2b5be439b9d19e56d06eb0246",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T05:39:40.886Z"
|
|
},
|
|
{
|
|
"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": "9e6150b0-9cb4-4c92-b78b-9077c673108b, c864a23e-4c96-4e70-a8de-1aba95ee0b62",
|
|
"traceId": "38f6146c977e4b62b3d8c1c1c63d4c9e",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T05:39:41.092Z"
|
|
},
|
|
{
|
|
"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": "129bf3a7-b7fa-459e-86f6-def0a3c4b9ea, d547468c-6949-4fa9-b211-f2cfe54dc813",
|
|
"traceId": "c2b5020e43884096840999908cc41d12",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T05:39:41.193Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "读取隔离库位版本",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "8f4bfb34-ba8c-446d-9306-9e46bf42a940, 8f51b111-9683-4ef6-9a67-b1cf1478105b",
|
|
"traceId": "7174f84fdd8d4fbaa73728f35b2835a5",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T05:39:41.247Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "更新隔离库位以推进版本",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "PUT",
|
|
"path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "1a2c4f72-7904-47b4-aedc-e4fad8fc439b, d4a63cbf-2fb1-4ce4-a68c-8fa22b8823da",
|
|
"traceId": "f8d11c13de5c4dfc973c447a537a0af3",
|
|
"evidence": "version=0",
|
|
"checkedAt": "2026-08-08T05:39:41.313Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "库位旧 version PUT 返回冲突",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "PUT",
|
|
"path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874"
|
|
},
|
|
"http": 200,
|
|
"code": "A0409",
|
|
"message": "库位已被其他操作修改,请刷新后重试",
|
|
"requestId": "c431047d-9ae5-4884-b697-e0aa4e7efa81",
|
|
"traceId": "c0bed96d902b4f85b921bd2a75f7502c",
|
|
"evidence": "HTTP=200, code=A0409",
|
|
"checkedAt": "2026-08-08T05:39:41.365Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "冲突后回查库位",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "9ed0db1a-7baf-40c7-9fa2-25171421f0cf, cba60cdf-3160-49a7-86e1-b7c9f1a12774",
|
|
"traceId": "6223aae1c5e547b18e1f9851aaae822a",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T05:39:41.415Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "库位冲突未造成部分更新",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "9ed0db1a-7baf-40c7-9fa2-25171421f0cf, cba60cdf-3160-49a7-86e1-b7c9f1a12774",
|
|
"traceId": "6223aae1c5e547b18e1f9851aaae822a",
|
|
"evidence": "name=边界库位-编辑",
|
|
"checkedAt": "2026-08-08T05:39:41.415Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "托盘/库位真实占用删除保护自动化缺口",
|
|
"passed": false,
|
|
"deploymentBlocker": true,
|
|
"request": null,
|
|
"http": null,
|
|
"code": null,
|
|
"message": null,
|
|
"requestId": null,
|
|
"traceId": null,
|
|
"evidence": "当前公共验收 API 未提供可安全构造并释放占用关联的独立 fixture;未操作历史资源",
|
|
"checkedAt": "2026-08-08T05:39:41.415Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "import-boundaries",
|
|
"name": "仓库空文件安全失败且不模拟导入成功",
|
|
"passed": false,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/warehouse-admin/import?tenantId=0&dryRun=true"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "43673cd0-7cfa-4df8-979d-69811460f20a, 4fe85980-bff6-4efd-abd6-12731c0dbc64",
|
|
"traceId": "31abe2fc66c042149a2c27f9212b5d0d",
|
|
"evidence": "HTTP=200, code=200, bytes=0",
|
|
"checkedAt": "2026-08-08T05:39:41.486Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "import-boundaries",
|
|
"name": "仓库缺列伪 XLSX安全失败且不模拟导入成功",
|
|
"passed": false,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/warehouse-admin/import?tenantId=0&dryRun=true"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "29f0d6a5-c5a3-4be7-bc4b-2e2dc78e9e61, e2d41aa3-dfaa-4297-85fc-d7262cb28979",
|
|
"traceId": "d0276db3a031414bb66659d5a35f75c5",
|
|
"evidence": "HTTP=200, code=200, bytes=6",
|
|
"checkedAt": "2026-08-08T05:39:41.612Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "import-boundaries",
|
|
"name": "快递公司错误扩展名安全失败且不模拟导入成功",
|
|
"passed": false,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/express-companies/import?tenantId=0"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "0df47055-d23d-4d2a-a4d0-d273c043beaa, 491dab6e-0fcf-41dd-9bbc-90726e9b8081",
|
|
"traceId": "77cb6c065dbc4c808c481ddcc40bd4c1",
|
|
"evidence": "HTTP=200, code=200, bytes=27",
|
|
"checkedAt": "2026-08-08T05:39:41.651Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "import-boundaries",
|
|
"name": "往来单位非 XLSX安全失败且不模拟导入成功",
|
|
"passed": false,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/platform/v1/partners/import?tenantId=0"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "bd5fd0ad-a772-4141-8e62-7900e689a801, 6bf285d4-f212-4697-bb67-8be0b4f062a1",
|
|
"traceId": "bb9116a22f144153a6ba6b2c4062465b",
|
|
"evidence": "HTTP=200, code=200, bytes=27",
|
|
"checkedAt": "2026-08-08T05:39:41.686Z"
|
|
},
|
|
{
|
|
"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": "S0500",
|
|
"message": "Internal server error",
|
|
"requestId": "27956363-1cd8-49c9-9c5c-f2e3a172bdab",
|
|
"traceId": "5c1894c4d5af4633b201b5bdfc0d9cc8",
|
|
"evidence": "HTTP=200, code=S0500",
|
|
"checkedAt": "2026-08-08T05:39:41.729Z"
|
|
},
|
|
{
|
|
"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": "8588809e-48",
|
|
"traceId": null,
|
|
"evidence": "HTTP=401, code=A0401",
|
|
"checkedAt": "2026-08-08T05:39:41.763Z"
|
|
},
|
|
{
|
|
"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": "62163d22-4c08-4f42-8f41-b37a9e030479",
|
|
"traceId": "1969a2349eda4dc487aae32454b81665",
|
|
"evidence": "HTTP=200, code=A0422",
|
|
"checkedAt": "2026-08-08T05:39:42.210Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "船期价格非法状态边界响应正确",
|
|
"passed": false,
|
|
"deploymentBlocker": true,
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/platform/v1/fba-pricing/carrier-rates/price-books?status=INVALID"
|
|
},
|
|
"http": 503,
|
|
"code": null,
|
|
"message": null,
|
|
"requestId": "8588809e-50",
|
|
"traceId": null,
|
|
"evidence": "HTTP=503, code=missing",
|
|
"checkedAt": "2026-08-08T05:39:42.325Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "停用隔离库位以便清理",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "PATCH",
|
|
"path": "/api/platform/v1/locations/2085964137512353794/status?tenantId=0&warehouseId=2085964137071951874"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "6866d82d-457a-4270-bc94-81a25f14caef, 33e987a8-7b79-4dcb-a3a9-8930683cc200",
|
|
"traceId": "86ee5c486dd24e8392296db09e07d8f8",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T05:39:42.410Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "删除隔离库位",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "DELETE",
|
|
"path": "/api/platform/v1/locations/2085964137512353794?tenantId=0&warehouseId=2085964137071951874&version=2"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "7f84fc98-7a21-4748-b605-b4ae4dd4b9f2, 4f3fdb6e-fda6-4781-9c09-19b32517061e",
|
|
"traceId": "752b78a1938845eb99d4a9970b16b871",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T05:39:42.496Z"
|
|
},
|
|
{
|
|
"module": "supplemental-boundaries",
|
|
"scenario": "admin-boundary-automation",
|
|
"name": "停用隔离仓库",
|
|
"passed": true,
|
|
"deploymentBlocker": false,
|
|
"request": {
|
|
"method": "PATCH",
|
|
"path": "/api/platform/v1/warehouse-admin/2085964137071951874/status?tenantId=0&status=INACTIVE"
|
|
},
|
|
"http": 200,
|
|
"code": "200",
|
|
"message": "success",
|
|
"requestId": "44111f4f-669b-4c90-84cb-1328d0431543, 486b37d3-b302-4bdf-9c1b-62edc6621831",
|
|
"traceId": "150ae3f066df4da8b4c56fa5fa5c46f2",
|
|
"evidence": "",
|
|
"checkedAt": "2026-08-08T05:39:42.568Z"
|
|
}
|
|
]
|
|
}
|