Skip to content

AIGC 全链路集成测试体系

概述

本文档介绍了项目中的 AIGC 全链路集成测试体系,该体系用于验证火山引擎、阿里云 ICE 等 AIGC 服务的完整业务流程。

目录


测试架构设计

核心设计理念

本测试体系采用"序列化巡检测试"(Pipeline Testing)的设计模式,模拟前端真实调用时序,确保完整的业务流程能够正确执行。

主要特点

  1. 链路时序传递 - 测试用例不是孤立的,而是有状态流转的
  2. 真实接口调用 - 通过 HTTP 请求直接调用后端 API
  3. 长轮询支持 - 适配 AIGC 服务的异步特性
  4. 结果验证 - 验证最终生成的图片、视频、文案等资源

测试文件结构

api/tests/api/
├── AigcImagePipelineTest.php    # 火山生图链路测试
├── AigcVideoPipelineTest.php    # 阿里云 IMS 混剪链路测试
├── AigcCopyPipelineTest.php     # 大模型文案生成链路测试
├── StoryboardWebApiTest.php     # Storyboard Web API 测试
├── test_route_simple.php        # 简单路由测试
└── test_workflow.php            # 工作流测试

测试分类

1. 火山生图链路测试 (AigcImagePipelineTest)

文件: AigcImagePipelineTest.php

包含测试:

  • 完整的图片生成流程测试
  • 模型列表接口测试
  • TTS 语音合成连通性测试

测试流程:

提交任务 → 提取 taskId → 轮询结果 → 验证图片链接 → 验证可访问性

2. 阿里云 IMS 混剪链路测试 (AigcVideoPipelineTest)

文件: AigcVideoPipelineTest.php

包含测试:

  • 完整的视频混剪流程测试
  • ICE 历史记录列表测试
  • 预签名 URL 生成测试

测试流程:

获取STS Token → 素材注册 → 创建剪辑工程 → 提交混剪任务 → 轮询结果 → 获取预签名URL

3. 大模型文案生成链路测试 (AigcCopyPipelineTest)

文件: AigcCopyPipelineTest.php

包含测试:

  • 营销文案生成测试
  • 评价回复生成测试
  • 多平台文案生成测试
  • 火山引擎 ARK 连通性测试

测试流程:

构建提示词 → 调用 LLM → 获取生成结果 → 验证文案内容

快速开始

前置要求

  1. PHP 8.0+
  2. Composer 依赖已安装
  3. API 服务器正在运行(默认:http://localhost:8000

安装依赖

bash
cd api
composer install

配置环境

编辑 phpunit.xml 中的 API 基础 URL:

xml
<php>
    <env name="API_BASE_URL" value="http://localhost:8000"/>
</php>

或通过环境变量设置:

bash
export API_BASE_URL=http://your-api-server:port

运行测试

运行所有测试

bash
vendor/bin/phpunit tests/

仅运行 AIGC E2E 测试

bash
vendor/bin/phpunit --group aigc-e2e

运行特定测试套件

bash
vendor/bin/phpunit --testsuite "AIGC E2E Tests"

运行单个测试文件

bash
vendor/bin/phpunit tests/api/AigcImagePipelineTest.php

运行单个测试方法

bash
vendor/bin/phpunit tests/api/AigcImagePipelineTest.php --filter testVolcengineImageGenerationPipeline

详细文档


测试分组

所有 AIGC E2E 测试都标记为 @group aigc-e2e,这样可以:

  1. 日常开发时只运行快速单元测试
  2. 需要验收时才运行长耗时的 AIGC 测试
  3. CI/CD 流水线中选择性执行

注意事项

⚠️ 重要提醒:

  1. 成本考虑 - AIGC 接口调用会产生费用,请勿频繁运行完整测试
  2. 耗时较长 - 某些测试可能需要数分钟才能完成
  3. 网络依赖 - 需要能够访问火山引擎和阿里云服务
  4. 认证要求 - 某些接口可能需要有效的认证令牌

贡献指南

如需添加新的测试用例,请遵循以下原则:

  1. 测试文件命名:{功能}PipelineTest.php
  2. 测试方法命名:test{描述性名称}
  3. 添加 @group aigc-e2e 注解
  4. 提供详细的注释和文档
  5. 遵循现有测试的代码风格

相关链接


许可证

本测试体系遵循项目主许可证。