目录
[2.1 硬件](#2.1 硬件)
[2.2 软件(全开源)](#2.2 软件(全开源))
[3.1 推荐模型(全开源、可商用)](#3.1 推荐模型(全开源、可商用))
[3.2 用 Ollama 一键本地部署(最简单)](#3.2 用 Ollama 一键本地部署(最简单))
[4.1 选框架(推荐 3 种,全开源)](#4.1 选框架(推荐 3 种,全开源))
[4.2 最简测试 Agent 代码(Python)](#4.2 最简测试 Agent 代码(Python))
[5.1 UI 测试(Web):Playwright(微软开源)](#5.1 UI 测试(Web):Playwright(微软开源))
[5.2 API 测试:requests + pytest](#5.2 API 测试:requests + pytest)
[5.3 移动端:Appium(开源)](#5.3 移动端:Appium(开源))
[5.4 报告:Allure(开源,美观)](#5.4 报告:Allure(开源,美观))
[6.1 流程](#6.1 流程)
[6.2 代码示例(RAG)](#6.2 代码示例(RAG))
[7.1 反思流程](#7.1 反思流程)
[7.2 反思 Agent(AutoGen 多智能体示例)](#7.2 反思 Agent(AutoGen 多智能体示例))
[8.1 单机部署(小团队)](#8.1 单机部署(小团队))
[8.2 分布式部署(大团队,Test-Agent 架构)](#8.2 分布式部署(大团队,Test-Agent 架构))
[九、推荐开源项目(直接参考 / 二次开发)](#九、推荐开源项目(直接参考 / 二次开发))
下面我给你一套从零搭建、全开源免费、可落地 的软件测试智能体(Test Agent)完整构建流程。整体采用:大模型(本地开源)+ Agent 编排 + 自动化测试工具 + 向量知识库 + 反思闭环,全程不依赖商业 API。
一、整体架构
测试智能体核心是:理解需求 → 生成用例 → 自动执行 → 分析结果 → 自我优化。 采用分层设计(全部开源):
- 模型层(LLM):本地部署开源大模型(代码能力强)
- 智能体编排层:LangChain / AutoGen / Dify(选一个)
- 工具执行层:Playwright / Selenium / Appium / pytest / requests
- 知识管理层:Chroma / FAISS(向量库)+ 测试知识库
- 反思优化层:结果分析 → 缺陷聚类 → 用例迭代
核心循环:规划(Plan)→ 执行(Execute)→ 反思(Reflect)→ 优化(Optimize)
二、环境准备(全免费)
2.1 硬件
- 最低:16GB 内存 + 支持 CUDA 的 GPU(RTX 3090/4090 或 A10)
- 推荐:32GB 内存 + 24GB VRAM(本地跑 7B--13B 模型)
2.2 软件(全开源)
bash
# Python
pip install python==3.10
# 核心框架
pip install langchain autogen dify
# 本地模型部署(关键,不用OpenAI)
pip install ollama llama.cpp vllm
# 自动化测试工具
pip install playwright selenium requests pytest allure-pytest
# 向量库
pip install chromadb faiss-cpu
# 其他
pip install pandas numpy transformers
三、第一步:本地部署开源代码大模型(免费、私有)
测试智能体需要懂代码、会写用例、能分析日志的 LLM。
3.1 推荐模型(全开源、可商用)
- CodeLlama-7B/13B(Meta,代码能力强)
- DeepSeek-Coder-7B(国内,中文 + 代码好)
- StarCoder2-7B(Hugging Face)
- TestGPT-7B(专门针对测试场景优化)
3.2 用 Ollama 一键本地部署(最简单)
bash
# 安装ollama(跨平台)
curl -fsSL https://ollama.com/install.sh | sh
# 拉取代码模型(自动下载+配置)
ollama run deepseek-coder:6.7b
# 测试是否可用
ollama run deepseek-coder:6.7b "写一个登录接口的pytest用例"
Ollama 会暴露本地 API:http://localhost:11434,LangChain 可直接调用。
四、第二步:搭建测试智能体核心(Agent)
4.1 选框架(推荐 3 种,全开源)
- LangChain:最成熟、自定义强,适合从零开发
- AutoGen :微软开源,多智能体协作强(生成 Agent + 执行 Agent + 反思 Agent)
- Dify:低代码 / 无代码,快速搭建工作流,适合非开发人员
下面以 LangChain + Ollama(本地 LLM) 为例写最简可运行代码。
4.2 最简测试 Agent 代码(Python)
python
from langchain.llms import Ollama
from langchain.agents import Tool, initialize_agent
from langchain.tools import ShellTool
# 1. 连接本地模型(Ollama)
llm = Ollama(model="deepseek-coder:6.7b", temperature=0.1)
# 2. 定义测试工具(Agent能调用的能力)
tools = [
ShellTool(description="执行命令行:运行pytest、启动服务、查看日志"),
Tool(
name="Playwright",
func=lambda cmd: f"执行UI操作:{cmd}",
description="网页自动化:打开页面、点击、输入、截图"
),
Tool(
name="API测试",
func=lambda cmd: f"调用接口:{cmd}",
description="发送HTTP请求,验证响应"
)
]
# 3. 初始化Agent(核心)
agent = initialize_agent(
tools, llm, agent="zero-shot-react-description", verbose=True
)
# 4. 测试:给自然语言,Agent自动规划+执行
result = agent.run("测试登录功能:用户admin/密码123,成功后截图;失败则查看日志并生成缺陷报告")
print(result)
运行后,Agent 会自动拆解任务 → 调用 Playwright 打开页面 → 输入账号密码 → 判断结果 → 截图 / 查日志 → 输出报告。
五、第三步:集成自动化测试工具链(全开源)
5.1 UI 测试(Web):Playwright(微软开源)
bash
# 安装浏览器驱动
playwright install
# Agent可直接调用:打开、点击、输入、截图、断言
5.2 API 测试:requests + pytest
Agent 自动生成并执行类似用例:
bash
def test_login():
res = requests.post("/api/login", json={"user":"admin","pwd":"123"})
assert res.status_code == 200
5.3 移动端:Appium(开源)
5.4 报告:Allure(开源,美观)
bash
pytest --alluredir=reports
allure serve reports
六、第四步:构建测试知识库(RAG,提升准确性)
让 Agent学习你的项目需求、接口文档、历史用例、缺陷,避免幻觉。
6.1 流程
- 把需求文档、API 文档、历史用例 → 转成文本
- 用 Chroma/FAISS 做向量存储
- Agent 回答前先检索相关知识,再生成结果
6.2 代码示例(RAG)
bash
from langchain.vectorstores import Chroma
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.document_loaders import TextLoader
# 1. 加载测试文档
loader = TextLoader("test_docs/login_api.md")
docs = loader.load()
# 2. 向量化+入库
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
db = Chroma.from_documents(docs, embeddings, persist_directory="./chroma_db")
# 3. 检索相关知识后再问Agent
retriever = db.as_retriever()
# 后续Agent会自动结合检索结果生成用例,更准、更少幻觉
七、第五步:加入反思闭环(自我优化,关键)
普通 Agent 是 "做完就完";测试智能体必须会反思:
- 用例失败 → 分析原因(是 Bug 还是用例错)
- 覆盖不全 → 补充场景
- 重复用例 → 去重优化
7.1 反思流程
执行用例 → 结果(Pass/Fail)→ LLM分析日志/截图 → 输出结论 → 自动修改用例/新增用例
7.2 反思 Agent(AutoGen 多智能体示例)
- 生成 Agent(TGA):写用例
- 执行 Agent(EAA):跑用例、收集结果
- 反思 Agent(ROA):分析、优化、反馈
八、第六步:部署与运行(全免费、可分布式)
8.1 单机部署(小团队)
- Ollama(模型)+ LangChain(Agent)+ 测试工具(本地)
- 启动:
python test_agent.py
8.2 分布式部署(大团队,Test-Agent 架构)
- Controller(控制器):任务调度、负载均衡
- Model Worker(模型节点):多 GPU 部署多个 LLM 实例
- Web UI:用 Gradio/Streamlit 做界面(开源)
bash
# 启动控制器
python -m chat.server.controller
# 启动模型节点(多机可部署多个)
python -m chat.server.model_worker --model-path models/TestGPT-7B --device cuda
九、推荐开源项目(直接参考 / 二次开发)
- Test-Agent:开源测试智能体,含控制器 + 工作节点 + WebUI
- TestZeus Hercules:多 Agent、支持 UI/API/ 安全测试、Gherkin 语言
- hello-agents:Datawhale 开源,从零教你做 Agent,含测试场景
- browser-use:AI 驱动浏览器,自然语言操作网页
十、成本与效果(全免费)
- 模型:本地开源,0 费用
- 框架 / 工具:全开源,0 费用
- 硬件:旧 GPU 也能跑(7B 模型最低 10GB VRAM)
- 效果 :
- 自动生成 80%+ 基础用例
- UI/API 自动化执行
- 自动分析结果、生成报告
- 持续优化用例库