bw-mini-app-server/test/postman-collection.json

345 lines
12 KiB
JSON

{
"info": {
"name": "模板执行API测试集合",
"description": "测试原有API和新的统一异步架构API",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"variable": [
{
"key": "baseUrl",
"value": "http://localhost:3003",
"type": "string"
},
{
"key": "imageUrl",
"value": "https://cdn.roasmax.cn/upload/676d85ae7c6347f49700631c84a13051.jpg",
"type": "string"
},
{
"key": "authorization",
"value": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI5OWQ3ZGZmOS02YWEwLTRmMWEtODA3YS01OTQ4Mzg3YTljNjkiLCJ1bmlmaWVkVXNlcklkIjoidXNlcl8xNzU2OTg0ODA1Mjk5X3l0M2hkMHZvayIsInBsYXRmb3JtIjoiYnl0ZWRhbmNlIiwiaWF0IjoxNzU3MDU3MTYwLCJleHAiOjE3NTcxNDM1NjB9.C0RF3wGw-bjzaCCGUeu2KgOGFlIGkqFZe28KgxLgjqU",
"type": "string"
},
{
"key": "executionId",
"value": "",
"type": "string"
}
],
"item": [
{
"name": "1. 原有同步API",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// 检查响应状态",
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"// 检查响应时间",
"pm.test(\"Response time is less than 10000ms\", function () {",
" pm.expect(pm.response.responseTime).to.be.below(10000);",
"});",
"",
"// 检查响应结构",
"pm.test(\"Response has correct structure\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('code');",
" pm.expect(jsonData).to.have.property('message');",
" pm.expect(jsonData).to.have.property('data');",
"});",
"",
"// 记录响应时间",
"console.log('原有API响应时间: ' + pm.response.responseTime + 'ms');"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "{{authorization}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"imageUrl\": \"{{imageUrl}}\"\n}"
},
"url": {
"raw": "{{baseUrl}}/api/v1/templates/code/photo_restore_v1/execute",
"host": ["{{baseUrl}}"],
"path": ["api", "v1", "templates", "code", "photo_restore_v1", "execute"]
},
"description": "测试原有的同步模板执行API"
}
},
{
"name": "2. 新的异步API - 提交任务",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// 检查响应状态",
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"// 检查响应时间(应该很快)",
"pm.test(\"Response time is less than 1000ms\", function () {",
" pm.expect(pm.response.responseTime).to.be.below(1000);",
"});",
"",
"// 检查响应结构",
"pm.test(\"Response has correct async structure\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('code');",
" pm.expect(jsonData).to.have.property('data');",
" pm.expect(jsonData.data).to.have.property('executionId');",
" pm.expect(jsonData.data).to.have.property('auditTaskId');",
" pm.expect(jsonData.data).to.have.property('status');",
"});",
"",
"// 检查状态",
"pm.test(\"Status should be pending_audit\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData.data.status).to.equal('pending_audit');",
"});",
"",
"// 保存executionId用于后续查询",
"if (pm.response.code === 200) {",
" var jsonData = pm.response.json();",
" pm.collectionVariables.set('executionId', jsonData.data.executionId);",
" console.log('已保存executionId: ' + jsonData.data.executionId);",
"}",
"",
"// 记录响应时间",
"console.log('异步API响应时间: ' + pm.response.responseTime + 'ms');"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "{{authorization}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"imageUrl\": \"{{imageUrl}}\"\n}"
},
"url": {
"raw": "{{baseUrl}}/enhanced/templates/code/photo_restore_v1/execute",
"host": ["{{baseUrl}}"],
"path": ["enhanced", "templates", "code", "photo_restore_v1", "execute"]
},
"description": "测试新的异步模板执行API - 提交任务"
}
},
{
"name": "3. 查询执行状态",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// 检查响应状态",
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"// 检查响应结构",
"pm.test(\"Response has correct status structure\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('data');",
" pm.expect(jsonData.data).to.have.property('executionId');",
" pm.expect(jsonData.data).to.have.property('status');",
" pm.expect(jsonData.data).to.have.property('statusDescription');",
"});",
"",
"// 显示当前状态",
"if (pm.response.code === 200) {",
" var jsonData = pm.response.json();",
" console.log('当前状态: ' + jsonData.data.status);",
" console.log('状态描述: ' + jsonData.data.statusDescription);",
" ",
" if (jsonData.data.outputUrl) {",
" console.log('输出地址: ' + jsonData.data.outputUrl);",
" }",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "{{authorization}}"
}
],
"url": {
"raw": "{{baseUrl}}/enhanced/templates/{{executionId}}/status",
"host": ["{{baseUrl}}"],
"path": ["enhanced", "templates", "{{executionId}}", "status"]
},
"description": "查询异步任务的执行状态。需要先运行步骤2获取executionId。"
}
},
{
"name": "4. 获取模板列表",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test(\"Response is array\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData.data).to.be.an('array');",
"});",
"",
"// 显示可用模板",
"if (pm.response.code === 200) {",
" var jsonData = pm.response.json();",
" console.log('可用模板数量: ' + jsonData.data.length);",
" jsonData.data.forEach(function(template) {",
" console.log('- ' + template.code + ': ' + template.name);",
" });",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "{{authorization}}"
}
],
"url": {
"raw": "{{baseUrl}}/api/v1/templates",
"host": ["{{baseUrl}}"],
"path": ["api", "v1", "templates"]
},
"description": "获取所有可用的模板列表"
}
},
{
"name": "5. 错误测试 - 无效图片URL",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// 应该返回错误状态",
"pm.test(\"Should return error status\", function () {",
" pm.expect(pm.response.code).to.be.oneOf([400, 403, 422]);",
"});",
"",
"// 检查错误信息",
"pm.test(\"Should have error message\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('message');",
"});",
"",
"console.log('错误测试通过: 无效图片URL正确返回错误');"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "{{authorization}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"imageUrl\": \"https://invalid-domain.com/nonexistent.jpg\"\n}"
},
"url": {
"raw": "{{baseUrl}}/enhanced/templates/code/photo_restore_v1/execute",
"host": ["{{baseUrl}}"],
"path": ["enhanced", "templates", "code", "photo_restore_v1", "execute"]
},
"description": "测试无效图片URL的错误处理"
}
},
{
"name": "6. 错误测试 - 无效模板代码",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// 应该返回404错误",
"pm.test(\"Should return 404 status\", function () {",
" pm.response.to.have.status(404);",
"});",
"",
"console.log('错误测试通过: 无效模板代码正确返回404错误');"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Authorization",
"value": "{{authorization}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"imageUrl\": \"{{imageUrl}}\"\n}"
},
"url": {
"raw": "{{baseUrl}}/enhanced/templates/code/nonexistent_template/execute",
"host": ["{{baseUrl}}"],
"path": ["enhanced", "templates", "code", "nonexistent_template", "execute"]
},
"description": "测试无效模板代码的错误处理"
}
}
]
}