关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集

从数据库读取到结构化入库:企业级测试智能体的工程化实现

企业真正关心的不是模型能写多少内容,而是:

  • 是否能读取真实数据库

  • 是否能保证结果可控

  • 是否可以嵌入现有系统

  • 是否支持批量执行

  • 是否具备安全校验

本文拆解一套基于 数据库 + 双智能体 + 校验层 的测试用例生成方案,并给出核心实现代码。


目录

  1. 企业真实需求模型

  2. 为什么纯 RAG 不够

  3. 双智能体架构设计

  4. SQL 智能体实现(含代码)

  5. 用例生成智能体实现(含代码 + 时序图)

  6. 三层校验机制

  7. API 封装与系统集成

  8. 生产环境风险控制

  9. 测试工程师能力升级


一、企业真实需求模型

典型企业场景:

  • 需求存储在数据库

  • 希望一键生成测试用例

  • 输出必须结构化

  • 可自动入库

  • 可定时批量执行

核心不是“生成文本”,而是:

构建一条自动读取 → 自动生成 → 自动校验 → 自动入库的工程链路。


二、为什么纯 RAG 不够?

RAG 适合知识召回,但企业需求场景涉及:

  • 强结构依赖

  • 表间关联

  • 条件过滤

  • 精确字段访问

因此需要:

  • Text-to-SQL

  • 数据库直连

  • 智能体调度

  • 校验层


三、双智能体架构设计

采用职责分离:

  • SQL Agent:读取需求

  • Case Agent:生成用例

整体结构:

图片


四、SQL 智能体实现

1.定义结构化返回模型

from pydantic import BaseModel
from typing import List, Any

class SQLResult(BaseModel):
    sql: str
    explanation: str
    data: List[Any]

2.构建 SQL Agent

from pandect import agent

@agent(
    model=deepseek_model,
    result_type=SQLResult,
    dependencies=[db_connection]
)
def sql_agent(user_query: str):

    return f"""
    根据用户请求生成SQL查询语句。

    数据库结构:
    {schema_info}

    用户请求:
    {user_query}

    返回:
    - SQL语句
    - SQL解释
    - 查询结果
    """

3.SQL 校验层

from pandect import result_validator

@result_validator(sql_agent)
def validate_sql_result(result: SQLResult):

    forbidden = ["delete", "update", "insert", "drop"]

    for word in forbidden:
        if word in result.sql.lower():
            raise ValueError("检测到危险SQL操作")

    if result.data isNone:
        raise ValueError("未返回数据")

    return result

执行链路:

图片

五、用例生成智能体实现

这是系统真正产生业务价值的部分。


1.定义测试用例结构

from pydantic import BaseModel
from typing import List

class TestCase(BaseModel):
    title: str
    steps: List[str]
    expected: str

class CaseResult(BaseModel):
    cases: List[TestCase]

2. Case Agent 构建

@agent(
    model=deepseek_model,
    result_type=CaseResult
)
def case_agent(requirements: list):

    return f"""
    根据以下需求生成测试用例。

    要求:
    1. 每条用例必须包含 title、steps、expected
    2. 输出必须为 JSON
    3. 包含正常流程与边界条件
    4. 不得生成与需求无关内容

    需求列表:
    {requirements}
    """

3. 用例生成图

图片

这张图体现的是:

  • 智能体协作

  • 数据流方向

  • 职责分离

  • 可替换性


4. 用例校验层

@result_validator(case_agent)
def validate_case_result(result: CaseResult):

    if len(result.cases) == 0:
        raise ValueError("未生成测试用例")

    for case in result.cases:
        if not case.steps:
            raise ValueError("步骤不能为空")
        if not case.expected:
            raise ValueError("预期结果不能为空")

    return result

六、完整执行链路

图片

三层结构:

  1. 数据访问层

  2. 生成层

  3. 校验层


七、API 封装与系统集成

推荐方式:

  • 封装为 REST API

  • 输入需求ID

  • 返回 JSON

  • 由现有系统入库

图片


八、生产环境风险控制

必须增加:

  • 数据库只读权限

  • SQL 白名单

  • JSON Schema 校验

  • 敏感字段脱敏

  • 日志隔离

智能体是可控组件。 权限设计才是风险核心。


九、趋势与能力升级

企业落地后:

  • 70%~80% 用例自动生成

  • 人工转向复杂逻辑与风险设计

测试工程师的能力边界正在变化:

  • 从执行者 → 架构设计者

  • 从写脚本 → 设计规则系统

  • 从工具使用 → 构建智能体链路

未来真正稀缺的能力,是:

设计一个可控、可验证、可扩展的智能体系统。

图片

关于我们

霍格沃兹测试开发学社,隶属于 测吧(北京)科技有限公司,是一个面向软件测试爱好者的技术交流社区。

学社围绕现代软件测试工程体系展开,内容涵盖软件测试入门、自动化测试、性能测试、接口测试、测试开发、全栈测试,以及人工智能测试与 AI 在测试工程中的应用实践

我们关注测试工程能力的系统化建设,包括 Python 自动化测试、Java 自动化测试、Web 与 App 自动化、持续集成与质量体系建设,同时探索 AI 驱动的测试设计、用例生成、自动化执行与质量分析方法,沉淀可复用、可落地的测试开发工程经验。

在技术社区与工程实践之外,学社还参与测试工程人才培养体系建设,面向高校提供测试实训平台与实践支持,组织开展 “火焰杯” 软件测试相关技术赛事,并探索以能力为导向的人才培养模式,包括高校学员先学习、就业后付款的实践路径。

同时,学社结合真实行业需求,为在职测试工程师与高潜学员提供名企大厂 1v1 私教服务,用于个性化能力提升与工程实践指导。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐