乐于分享
好东西不私藏

测试用例生成Agent【附带源码】

测试用例生成Agent【附带源码】

随着软件系统复杂度不断提升,测试用例编写已成为测试团队的核心工作负担。传统人工编写方式不仅耗时耗力,还容易出现场景遗漏、覆盖率不足等问题,难以满足快速迭代的研发需求。

测试用例生成Agent系统基于大语言模型技术,通过4个智能Agent协同工作,实现从PRD需求文档到完整测试用例的全流程自动化。系统能够自动解析需求、识别测试场景、生成详细用例并准备测试数据,显著提升测试效率和质量。核心价值在于:将测试人员从重复性工作中解放出来,聚焦于更高价值的测试策略设计;通过系统化的场景识别方法,确保测试覆盖的全面性和规范性;支持云端和本地双后端,灵活适配不同使用场景,为测试团队提供智能化、标准化的测试用例生成解决方案。

作者:百度  谭文涛

系统概述

基于大语言模型的智能测试用例生成系统,输入PRD需求文档,自动输出完整的测试用例和测试数据。

核心能力:需求文档解析 → 测试场景识别 → 测试用例生成 → 测试数据准备

适用场景:测试团队测试用例编写

核心价值:自动化测试用例生成,提升测试覆盖率

系统架构

┌─────────────────────────────────────────────────────────────┐
│                    main.py (入口)                            │
│  参数解析 → 读取PRD → 启动编排器                             │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│              orchestrator.py (编排器)                         │
│  串行流水线: Agent1 → Agent2 → Agent3 → Agent4 → 报告生成    │
└──────┬──────────┬──────────┬──────────┬─────────────────────┘
       │          │          │          │
  ┌────▼───┐ ┌───▼────┐ ┌──▼───┐ ┌───▼──────┐
  │需求解析 │ │场景识别 │ │用例生成│ │数据准备   │  (agents/)
  │.py+.md │ │.py+.md │ │.py+.md│ │.py+.md   │
  └────┬───┘ └───┬────┘ └──┬───┘ └───┬──────┘
       │         │         │         │
  ┌────▼─────────▼─────────▼─────────▼──────┐
  │        LLM Client (双后端路由)            │  (clients/)
  │  qianfan (云端)  ←→  ollama (本地)        │
  └─────────────────────────────────────────┘
                       │
  ┌────────────────────▼────────────────────┐
  │       HTML Report Generator             │  (utils/)
  │  结构化数据 → f-string模板 → 独立HTML    │
  └─────────────────────────────────────────┘

4个Agent详解

Agent 1: 需求解析Agent

维度
说明
职责
将PRD文档文本解析为结构化需求JSON
输入
PRD文档文本(.md/.txt)
输出
结构化需求JSON(用户故事/功能需求/验收标准/边界条件/非功能需求)
核心逻辑
1) 文本截断保护 2) LLM解析提取 3) JSON结构化输出
提示词prompt/requirement_parser.md

Agent 2: 测试场景识别Agent

维度
说明
职责
从结构化需求中系统性地识别和设计测试场景
输入
需求解析Agent输出的结构化需求JSON
输出
测试场景列表(含覆盖矩阵)
核心逻辑
等价类划分→边界值分析→错误推测→状态转换→正交组合
提示词prompt/scenario_identifier.md

Agent 3: 测试用例生成Agent

维度
说明
职责
将测试场景细化为完整、规范、可执行的测试用例
输入
测试场景列表 + 结构化需求摘要
输出
详细测试用例列表(步骤/数据/预期结果/自动化标记)
核心逻辑
场景→步骤细化→测试数据占位→预期结果量化→自动化评估
提示词prompt/testcase_generator.md

Agent 4: 测试数据准备Agent

维度
说明
职责
根据测试用例需求设计全面、真实的测试数据集
输入
测试用例列表 + 外部依赖信息
输出
测试数据集(实体定义/数据记录/依赖关系/环境要求)
核心逻辑
实体字段→正常/边界/异常样本→数据关联→环境要求
提示词prompt/testdata_generator.md

协作模式

串行流水线:4个Agent按序执行,下游Agent消费上游Agent的输出

PRD文本
  ↓
[Agent1: 需求解析] → 结构化需求JSON
  ↓
[Agent2: 场景识别] → 测试场景列表(含覆盖矩阵)
  ↓
[Agent3: 用例生成] → 详细测试用例(含步骤/数据/预期)
  ↓
[Agent4: 数据准备] → 测试数据集(实体/记录/环境)
  ↓
HTML可视化报告 + JSON数据文件

快速开始

前置条件

pip install requests

运行

# 使用默认PRD示例
python main.py

# 指定PRD文件
python main.py /path/to/your/prd.md

# 切换Ollama后端
LLM_PROVIDER=ollama python3 main.py /path/to/prd.md

输出

  • output/testcase_report_*.html
     — HTML可视化测试报告
  • output/testcase_data_*.json
     — 完整结构化JSON数据

目录结构

testcase-generator-mas/
├── main.py              # 主入口
├── orchestrator.py      # 编排器(串行流水线)
├── config.py            # 全局配置(LLM后端/API密钥/路径)
├── agents/              # 4个Agent实现
│   ├── requirement_parser_agent.py
│   ├── scenario_identifier_agent.py
│   ├── testcase_generator_agent.py
│   └── testdata_generator_agent.py
├── clients/             # 外部服务客户端
│   └── llm_client.py    # LLM双后端(千帆+Ollama)
├── prompt/              # 提示词Markdown文件
│   ├── requirement_parser.md
│   ├── scenario_identifier.md
│   ├── testcase_generator.md
│   └── testdata_generator.md
├── utils/               # 工具模块
│   └── html_generator.py # HTML报告生成器
├── output/              # 输出目录
└── data/                # 示例数据目录

LLM后端配置

配置项
千帆(默认)
Ollama
LLM_PROVIDER
qianfan
ollama
模型
ernie-x1-turbo-32k
qwen2.5:7b
环境变量
QIANFAN_API_KEY
OLLAMA_BASE_URL
适用
生产/云端
本地/离线

技术亮点

  1. 提示词外置
    :4个Agent的提示词独立为Markdown文件,便于迭代优化
  2. 双后端透明切换
    :千帆(OAuth2/BCE-V3) / Ollama(OpenAI兼容) 一键切换
  3. 全链路JSON结构化
    :Agent间通过结构化JSON传递数据,保证数据一致性
  4. 覆盖率矩阵
    :自动生成用户故事→功能需求→测试场景的覆盖追踪
  5. HTML可视化报告
    :专业测试报告,含覆盖率矩阵、用例详情、测试数据
项目源码

通过网盘分享的文件:testcase-generator-mas.zip

链接: https://pan.baidu.com/s/1k1Xjp67fGENUgkFTrVN2sg?pwd=c5uf 提取码: c5uf 

--来自百度网盘超级会员v4的分享