test(deploy): 记录转换服务测试发布与浏览器验收
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 232 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 185 KiB |
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"passed": true,
|
||||
"environment": "test",
|
||||
"url": "https://demo.51easyai.com/ai/canvas/6ac046133db0eda177a9896e",
|
||||
"projectId": "6ac046133db0eda177a9896e",
|
||||
"nodeId": "model-conversion-deployment-acceptance",
|
||||
"apiVersion": "3.23.0.20261003.1",
|
||||
"standingHeight": 1.72,
|
||||
"lightweight": true,
|
||||
"quality": "performance",
|
||||
"importedDimensions": {
|
||||
"width": "20.00",
|
||||
"height": "0.20",
|
||||
"depth": "20.00"
|
||||
},
|
||||
"uncachedUploadEvidence": "uncached-import.json",
|
||||
"scaleChecks": [
|
||||
{
|
||||
"scale": 0.05,
|
||||
"width": 1.0,
|
||||
"height": 0.01,
|
||||
"depth": 1.0
|
||||
},
|
||||
{
|
||||
"scale": 10.0,
|
||||
"width": 200.0,
|
||||
"height": 2.0,
|
||||
"depth": 200.0
|
||||
},
|
||||
{
|
||||
"scale": 20.0,
|
||||
"width": 400.0,
|
||||
"height": 4.0,
|
||||
"depth": 400.0
|
||||
},
|
||||
{
|
||||
"scale": 1.0,
|
||||
"width": 20.0,
|
||||
"height": 0.2,
|
||||
"depth": 20.0
|
||||
}
|
||||
],
|
||||
"scaleChecksEvidence": "transform-save.json",
|
||||
"savedResource": {
|
||||
"resourceId": "c459455a-7479-4310-8b66-3da706dfc513",
|
||||
"selected": "lightweight",
|
||||
"format": "obj",
|
||||
"sceneBytes": 3239,
|
||||
"containsBase64": false
|
||||
},
|
||||
"reopenedDimensions": {
|
||||
"width": 20,
|
||||
"height": 0.2,
|
||||
"depth": 20
|
||||
},
|
||||
"errors": [],
|
||||
"requests": [
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugins/runtime-manifest"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/runtime-snapshots"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/upload/files/2026-10-04%2F6937758647fc2fff48b99759%2Fupload%2Fdirector-3d-model-conversion-deployme-3sfggu.png"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/resource-actions"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 163 KiB |
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"passed": true,
|
||||
"source": "captured live Playwright import, scale and UI save run",
|
||||
"scaleChecks": [
|
||||
{
|
||||
"scale": 0.05,
|
||||
"width": 1.0,
|
||||
"height": 0.01,
|
||||
"depth": 1.0
|
||||
},
|
||||
{
|
||||
"scale": 10.0,
|
||||
"width": 200.0,
|
||||
"height": 2.0,
|
||||
"depth": 200.0
|
||||
},
|
||||
{
|
||||
"scale": 20.0,
|
||||
"width": 400.0,
|
||||
"height": 4.0,
|
||||
"depth": 400.0
|
||||
},
|
||||
{
|
||||
"scale": 1.0,
|
||||
"width": 20.0,
|
||||
"height": 0.2,
|
||||
"depth": 20.0
|
||||
}
|
||||
],
|
||||
"savedResourceId": "c459455a-7479-4310-8b66-3da706dfc513",
|
||||
"saveBehavior": "Save persists sceneState and closes editor; no extra Close click is needed",
|
||||
"logExcerpt": "stage: 'saved',\n scaleChecks: [\n { scale: 0.05, width: 1, height: 0.01, depth: 1 },\n { scale: 10, width: 200, height: 2, depth: 200 },\n { scale: 20, width: 400, height: 4, depth: 400 },\n { scale: 1, width: 20, height: 0.2, depth: 20 }\n ],\n resourceId: 'c459455a-7479-4310-8b66-3da706dfc513'"
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"passed": true,
|
||||
"standingHeight": "1.72",
|
||||
"lightweight": true,
|
||||
"quality": "performance",
|
||||
"dimensions": {
|
||||
"width": "20.00",
|
||||
"height": "0.20",
|
||||
"depth": "20.00"
|
||||
},
|
||||
"errors": [],
|
||||
"requests": [
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugins/runtime-manifest"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/runtime-snapshots"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/resource-actions"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"status": 201,
|
||||
"path": "https://demo.51easyai.com/api/model-conversion/resources/source-upload"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/file/upload/presigned"
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"status": 201,
|
||||
"path": "https://demo.51easyai.com/api/model-conversion/resources/complete"
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"status": 201,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/execute"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/tasks/6ac1e6066b4e2617cabdafa5"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/plugin-installations/snapshot"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/tasks/6ac1e6066b4e2617cabdafa5"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"status": 200,
|
||||
"path": "https://demo.51easyai.com/api/canvas-workflow/tasks/6ac1e6066b4e2617cabdafa5"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"environment": "test",
|
||||
"trigger": {
|
||||
"entry": "/ai/canvas/:projectId",
|
||||
"file": "stage-20m.obj",
|
||||
"sourceUnit": "m",
|
||||
"lightweight": true,
|
||||
"quality": "performance",
|
||||
"storage": "local presigned upload with optional headers omitted"
|
||||
},
|
||||
"before": {
|
||||
"sourceUploadHTTP": 201,
|
||||
"headersPresent": false,
|
||||
"putAttempted": false,
|
||||
"completeAttempted": false,
|
||||
"exception": "TypeError: Cannot convert undefined or null to object",
|
||||
"uiMessage": "模型未能加载,当前场景保持不变。请检查文件后重试。",
|
||||
"screenshot": "import-failed.png"
|
||||
},
|
||||
"cause": {
|
||||
"frontend": "Object.entries(upload.headers)",
|
||||
"api": "ModelConversionService.prepareSource returned optional storage headers without normalizing its required browser response field",
|
||||
"storageContract": "OssService.getPreSignedUrlS3 headers is optional; local storage intentionally omits it"
|
||||
},
|
||||
"fix": {
|
||||
"backendSource": "be56a7e0ec79d1a1e7420d870709014ed4bf010a",
|
||||
"apiVersion": "3.23.0.20261003.1",
|
||||
"change": "Return upload.headers ?? {} in model-conversion source-upload API; leave supplied signature headers unchanged",
|
||||
"scope": "Model conversion upload plan only; generic storage behavior unchanged"
|
||||
},
|
||||
"regression": {
|
||||
"before": {
|
||||
"tests": 2,
|
||||
"failed": 1,
|
||||
"passed": 1,
|
||||
"seconds": 0.579,
|
||||
"failure": "browserPlan.upload.headers expected {} but received undefined"
|
||||
},
|
||||
"after": {
|
||||
"modelConversionTests": 13,
|
||||
"modelConversionSeconds": 0.84,
|
||||
"nxElapsedSeconds": 2.38,
|
||||
"storageTests": 27,
|
||||
"storageSeconds": 0.638,
|
||||
"storageNxElapsedSeconds": 1.87
|
||||
},
|
||||
"sharedBuildSeconds": 0.66,
|
||||
"apiNxBuildSeconds": 20.83
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user