A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
欢迎大家提issue。 AI Test Agent 是一个基于人工智能的自动化测试平台,利用大语言模型(LLM)和浏览器自动化技术,实现测试用例的智能生成、自动执行、Bug 分析和报告生成。 Enterprise_AI_QA_Agent
AI Test Agent 是一个基于人工智能的自动化测试平台,利用大语言模型(LLM)和浏览器自动化技术,实现测试用例的智能生成、自动执行、Bug 分析和报告生成。平台采用 适配器模式(Adapter Pattern) 重构了底层模型架构,支持 15+ 主流大模型供应商,并内置了智能止损、模糊匹配、Agent 判定优先、瞬态 UI 感知、用例间状态隔离等策略,大幅提升了测试的稳定性和效率。
平台还内置了 页面知识库(RAG 记忆层),使用 Qdrant 向量数据库存储页面结构知识,在一键测试时优先命中已有知识跳过浏览器探索,并通过 Diff Engine 自动检测页面变更、推荐回归测试范围。
如果只把 AI Test Agent 理解成“让大模型帮我测网页”,它确实会和 Claude Code + 测试 Skills 这类通用方案显得相似。
但本项目真正解决的问题不是“AI 能不能测”,而是“AI 测试能不能更低成本、更稳定、可复用、可持续地运行”。
适合比赛展示的定位不是“又一个通用测试 Agent”,而是“面向真实回归场景的 AI 测试执行内核”。
更完整的比赛答辩话术、演示主线和对比思路见:比赛答辩定位与路演策略.md
done(success=True/False) 判定优先于关键词匹配和 browser-use 内置 judge 的判定success 语义为"实际结果是否符合预期结果":异常场景测试(如错误密码登录)预期失败且确实失败 → success: trueextract/run_javascript 搜索已消失的瞬态 DOM 元素parse_json_response() 方法,针对各模型输出特点进行专门处理<think> 推理标签、markdown 代码块、前后缀文字_find_matching_brace)"value"\n"key" → "value",\n"key")json-repair 库作为最终 fallback(所有 Provider 统一集成)LLMWrapper 内置 DEFAULT_ACTION_ALIASES(20+ 映射),自动将模型返回的非标准 action 名称转换为 browser-use 0.11.1 的标准名称(如 evaluate → run_javascript、scroll_down → scroll、click_element → click)get_browser_use_llm() 可传入额外的 provider-specific 别名映射- **路径**: /v1/xxx)、Markdown 表格、全文正则扫描兜底test_records → 自动生成 test_reports → 失败用例创建 bug_reports → 自动邮件通知 auto_receive_bug=1 联系人env_info,包含 target_url / login_url / username / password / extra_credentials / env_name,避免重复拼装测试数据forms / tables / buttons / links / page_sections / dialogs 等结构化能力信息,用于后续子任务规划和用例生成cancelled / 已取消 终态,停止轮询并关闭前端 loadingauto_receive_bug=1 的联系人GITHUB_PROXY 代理配置).md 文件安装(适用于无法访问 GitHub 的网络环境)<think> 推理标签处理、R1 专用 ChatOpenAI 实现<think> 标签处理parse_json_response() + json-repair 库 fallbackdont_force_structured_output + add_schema_to_system_promptainvoke,处理消息格式转换、JSON 清洗(_clean_llm_json_output)、action 格式修正(_fix_action_format)、别名映射ModelAutoSwitcher,当模型遇到 429 限流、超时或连续失败时,自动切换到下一个可用模型Email_manage/sender.py),新增服务商只需注册一行,无需修改任何调用方auto_receive_bug=1 的联系人Exploration.browser_use_agent_explorer 执行forms / tables / buttons / links / page_sections / dialogs 等字段,便于后续 RAG 检索与 Diffqdrant_collection_config 表,支持"初始化 Collection"和"强制重建"两种操作模式localhost/127.0.0.1 加入 NO_PROXY,防止 Windows 系统代理拦截 Python httpx 到本地 Qdrant 的请求基于 PentAGI 架构的完整复刻,实现了多 Agent 协作的智能渗透测试系统,当前完成度 85%,核心功能已可用。
security_scan_tasks 表)pentest_subtasks 表)terminal:命令执行(支持 Docker 容器内执行)file:文件读写(支持容器内外文件复制)browser:网页抓取(基于 requests/httpx)duckduckgo:DuckDuckGo 搜索(已实现)google、tavily、perplexity:需要 API Key 配置sploitus:Exploit 情报搜索(待实现)search_in_memory:语义检索历史测试结果store_guide / search_guide:存储和检索测试指南store_answer / search_answer:存储和检索问答知识store_code / search_code:存储和检索测试脚本pentester:委托 Pentester Agent 执行渗透测试searcher:委托 Searcher Agent 搜索信息coder:委托 Coder Agent 编写代码installer:委托 Installer Agent 安装工具adviser:委托 Adviser Agent 提供建议memorist:委托 Memorist Agent 管理记忆done:标记任务完成ask:请求用户输入(Flow 进入 Waiting 状态)hack_result、search_result、code_result 等 18 种工具结果自动存储到向量数据库vxcontrol/kali-linux(Kali Linux 全工具镜像,预装 Nmap、Nuclei、SQLMap、Metasploit 等)NET_RAW、NET_ADMIN 能力(用于网络扫描)docker exec 执行命令Page_Knowledge/vector_store.py 和 Page_Knowledge/embedding.pyqdrant_collection_config 表读取 Qdrant 连接参数和 Embedding 配置project_idproject_id + doc_type + content_hash 生成确定性 point_iddoc_type 过滤(如 guide、answer、code、hack_result)pentest_message_chains 表)../save_floder/pentest/screenshots/)# 创建 Flow
POST /api/pentest/flows
{
"user_id": 1,
"project_id": 1,
"input": "测试 example.com 的 SQL 注入漏洞",
"provider_name": "openai",
"provider_config": {
"model": "gpt-4",
"temperature": 0.7
}
}
# 查询 Flow 状态
GET /api/pentest/flows/{flow_id}
# 提交用户输入(当 Subtask 调用 ask 工具时)
POST /api/pentest/flows/{flow_id}/input
{
"input": "继续执行"
}
# 停止 Flow
POST /api/pentest/flows/{flow_id}/stop
# 完成 Flow
POST /api/pentest/flows/{flow_id}/finish
所有配置从环境变量加载(.env 文件),支持精细化配置:
PENTEST_USE_DOCKER、PENTEST_DOCKER_IMAGE、PENTEST_DOCKER_WORKDIRPENTEST_MAX_ITERATIONS(默认 100)、PENTEST_MAX_REFLECTOR_ROUNDS(默认 3)# 1. 确保 Docker 服务运行
docker ps
# 2. 确保 Qdrant 服务运行
docker run -d --name qdrant -p 6333:6333 qdrant/qdrant
# 3. 配置环境变量(.env 文件)
PENTEST_USE_DOCKER=true
PENTEST_DOCKER_IMAGE=vxcontrol/kali-linux
PENTEST_MAX_ITERATIONS=100
# 4. 启动后端服务
cd Agent_Server
python src.py
# 5. 创建渗透测试 Flow(通过 API 或前端界面)
curl -X POST http://localhost:8001/api/pentest/flows \
-H "Content-Type: application/json" \
-d '{
"user_id": 1,
"project_id": 1,
"input": "全面测试 https://example.com 的安全漏洞",
"provider_name": "openai"
}'
# 6. 查询执行状态
curl http://localhost:8001/api/pentest/flows/{flow_id}
project_id + doc_type + content_hash 生成 point_id,避免重复存储PlatformControl.vue 提供统一视角管理所有已配置平台,支持激活/停用/测试连接asyncio.Semaphore 控制并发数(默认 5,上限 20),大批量用例数十秒完成steps/precondition/expected/keywords 字段完整写入仪表盘提供全局视角的测试数据可视化,包括测试趋势、Bug 分布、用例覆盖、安全扫描统计、漏洞严重程度分布、安全用例状态等多维度图表,采用三列自适应布局。
Email_manage/sender.py),内置 Resend / 阿里云 DirectMail (HMAC-SHA1) / SMTP 自定义 (STARTTLS) / CyberMail,扩展新服务商无需修改调用方Ai_Test_Agent/
├── Agent_Server/ # 后端服务
│ ├── app.py # FastAPI 入口
│ ├── Basic/ # 核心应用配置与启动
│ │ ├── config.py # 环境变量配置加载
│ │ ├── endpoints.py # 健康检查、API 根端点
│ │ ├── routes.py # 集中路由注册(19 个路由器)
│ │ └── startup.py # 生命周期管理、启动横幅
│ ├── llm/ # LLM 核心模块
│ │ ├── base.py # Provider 基类 + 通用 JSON 解析 + _find_matching_brace
│ │ ├── factory.py # Provider 工厂
│ │ ├── client.py # LLM 客户端(兼容层)
│ │ ├── manager.py # 模型配置管理
│ │ ├── config.py # 默认配置 + Provider 特性
│ │ ├── auto_switch.py # 模型自动切换 + FailoverChatModel
│ │ ├── wrapper.py # LLMWrapper(消息转换/JSON清洗/action别名映射/格式修正)
│ │ ├── examples.py # 示例配置
│ │ ├── exceptions.py # 异常定义
│ │ └── providers/ # 具体 Provider 实现(每个含 parse_json_response + json-repair)
│ │ ├── openai_provider.py
│ │ ├── anthropic_provider.py
│ │ ├── google_provider.py
│ │ ├── deepseek_provider.py # 含 DeepSeekR1ChatOpenAI
│ │ ├── alibaba_provider.py # 含 Qwen 结构化输出适配
│ │ ├── minimax_provider.py
│ │ ├── ollama_provider.py # 含 DeepSeekR1ChatOllama
│ │ ├── mistral_provider.py
│ │ ├── moonshot_provider.py
│ │ ├── azure_provider.py
│ │ └── generic_provider.py # 通用 OpenAI 兼容(含 SiliconFlow/ModelScope/Zhipu/Grok 子类)
│ ├── Pentest_Agent/ # AI 驱动的自动化渗透测试(基于 PentAGI 架构)
│ │ ├── router.py # REST API 路由(创建/查询/输入/停止 Flow)
│ │ ├── config.py # 配置管理(从环境变量加载)
│ │ ├── IMPLEMENTATION_STATUS.md # 实现状态文档(85% 完成)
│ │ ├── core/ # 核心模块
│ │ │ ├── flow.py # Flow 管理(整个渗透测试流程)
│ │ │ ├── task.py # Task 管理(具体测试任务)
│ │ │ ├── subtask.py # Subtask 管理(原子级测试步骤)
│ │ │ ├── context.py # 三层上下文传播(FlowContext → TaskContext → SubtaskContext)
│ │ │ ├── status.py # 状态机定义(Created/Running/Waiting/Finished/Failed)
│ │ │ ├── performer.py # Agent Chain 执行引擎(100 次迭代/监控/重复检测/纠正)
│ │ │ ├── docker.py # Docker 容器管理(创建/启动/停止/exec/copy)
│ │ │ ├── vector_store.py # 向量存储管理(复用 Qdrant,项目级别隔离)
│ │ │ ├── knowledge_graph.py # 知识图谱(Neo4j,可选)
│ │ │ └── logs/ # 日志 Worker(6 个)
│ │ │ ├── msg_log.py # 消息日志
│ │ │ ├── agent_log.py # Agent 调用日志
│ │ │ ├── search_log.py # 搜索日志
│ │ │ ├── term_log.py # 终端日志
│ │ │ ├── vector_store_log.py # 向量存储日志
│ │ │ └── screenshot.py # 截图管理
│ │ ├── agents/ # 13 种专业 Agent
│ │ │ ├── factory.py # AgentFactory(统一创建)
│ │ │ ├── types.py # Agent 类型定义
│ │ │ ├── primary.py # Primary Agent(主协调器)
│ │ │ ├── generator.py # Generator Agent(任务分解)
│ │ │ ├── refiner.py # Refiner Agent(任务精炼)
│ │ │ ├── reporter.py # Reporter Agent(报告生成)
│ │ │ ├── pentester.py # Pentester Agent(渗透测试执行)
│ │ │ ├── coder.py # Coder Agent(代码开发)
│ │ │ ├── searcher.py # Searcher Agent(信息搜索)
│ │ │ ├── reflector.py # Reflector Agent(错误纠正)
│ │ │ ├── installer.py # Installer Agent(环境配置)
│ │ │ ├── adviser.py # Adviser Agent(专家建议)
│ │ │ ├── memorist.py # Memorist Agent(记忆管理)
│ │ │ ├── enricher.py # Enricher Agent(信息增强)
│ │ │ └── assistant.py # Assistant Agent(交互助手)
│ │ └── tools/ # 20+ 专业工具
│ │ ├── executor.py # 工具执行器(统一调度)
│ │ ├── terminal.py # 终端命令执行
│ │ ├── file.py # 文件读写
│ │ ├── browser.py # 网页抓取
│ │ ├── search.py # 搜索工具(DuckDuckGo/Google/Tavily/Perplexity/Sploitus)
│ │ ├── vector.py # 向量工具(search_in_memory/store_guide/search_answer/store_code)
│ │ ├── agent_tools.py # Agent 委托工具(pentester/searcher/coder/installer/adviser/memorist)
│ │ └── barrier.py # 屏障工具(done/ask)
│ ├── Api_Spec/ # 接口文件管理(MinIO + 解析器)
│ │ ├── router.py # 上传/列表/详情/删除 API
│ │ ├── parser.py # Markdown 多策略解析器
│ │ └── minio_client.py # MinIO 客户端封装
│ ├── Api_Test/ # 接口测试模块
│ │ ├── router.py # 智能匹配 + 执行 API
│ │ └── service.py # 匹配/DSL生成/HTTP Runner/报告/Bug/邮件
│ ├── OneClick_Test/ # 一键测试模块
│ │ ├── router.py # 一键测试 + Skills 管理 API
│ │ ├── service.py # 核心服务(意图分析/页面探索/用例生成/浏览器执行/状态隔离/停止控制/429熔断/自动邮件)
│ │ ├── session.py # 会话状态机管理
│ │ ├── loop_detection.py # 循环检测器(防止 Agent 无限循环)
│ │ ├── skill_manager.py # Skills 管理(MinIO存储/GitHub下载/手动上传/便签注入)
│ │ ├── task_tree.py # 三级任务树(L1 意图 / L2 功能规划 / L3 原子用例)
│ │ └── template_integration.py # 模板 + LLM 混合用例生成
│ ├── UI_Exploration/ # UI 自主探索引擎
│ │ ├── router.py # 探索页面 / 探索状态 / 停止探索 API
│ │ ├── service.py # 探索生命周期编排(启动/状态/取消/清理)
│ │ ├── explorer.py # v2 Agent 引擎(原生函数调用 + Selenium WebDriver)
│ │ ├── tools.py # 16 个浏览器自动化工具(支持并行执行)
│ │ └── prompts.py # Agent 系统提示词与探索策略
│ ├── Page_Knowledge/ # 页面知识库(RAG 记忆层)
│ │ ├── router.py # 知识库 CRUD + 统计 + Collection 配置 API
│ │ ├── service.py # 核心服务(精确匹配/语义检索/存储/版本检查/老化管理)
│ │ ├── vector_store.py # Qdrant 向量存储封装(连接/ensure_collection/upsert/search/reload_config)
│ │ ├── embedding.py # Embedding 客户端(支持多模型,含 reload_embedding_client)
│ │ ├── diff_engine.py # 页面差异引擎(字段/按钮/表单/表格变更分类 + 回归推荐)
│ │ └── schema.py # PageKnowledge 数据结构定义
│ ├── Api_request/ # 提示词模板(集中管理所有 LLM 提示词,含瞬态UI处理规则)
│ ├── Project_manage/ # 多平台项目管理集成
│ │ ├── router.py # 平台配置管理 API
│ │ ├── service.py # 配置管理与客户端实例化
│ │ ├── project_router.py # 项目 CRUD 与远程同步 API
│ │ ├── clients/ # 平台客户端工厂
│ │ │ └── factory.py # Factory Pattern 统一创建平台客户端
│ │ ├── case_template/ # 用例模板同步
│ │ │ ├── router.py # 用例模板 API
│ │ │ └── service.py # 平台字段映射与模板同步
│ │ └── platforms/ # 11 个平台适配器(每个含 client/models/service/router)
│ │ ├── zentao/ # 禅道(v1/v2 API 自适应)
│ │ ├── jira/ # Jira(Cloud & Server)
│ │ ├── pingcode/ # PingCode
│ │ ├── worktile/ # Worktile
│ │ ├── ones/ # ONES
│ │ ├── yunxiao/ # 云效
│ │ ├── tapd/ # TAPD
│ │ ├── eightmanage/ # 8Manage PM
│ │ ├── msproject/ # Microsoft Project
│ │ ├── asana/ # Asana
│ │ └── clickup/ # ClickUp
│ ├── Bug_Analysis/ # Bug 分析服务
│ ├── Build_Report/ # 报告生成服务
│ ├── Build_Use_case/ # 用例生成服务
│ ├── Execute_test/ # 浏览器测试执行服务
│ ├── Dashboard/ # 仪表盘数据
│ ├── Contact_manage/ # 联系人管理
│ ├── Email_manage/ # 邮件管理
│ │ ├── router.py # 邮件配置 CRUD + 发送记录 API
│ │ └── sender.py # 邮件发送工厂(dispatch_send + _PROVIDER_MAP,新增服务商只改此文件)
│ ├── Model_manage/ # 模型配置管理 + 供应商管理
│ ├── Test_Tools/ # 任务管理器
│ ├── database/ # 数据库模型与连接
│ └── save_floder/ # 截图等文件存储
├── agent_web_server/ # 前端服务
│ ├── src/
│ │ ├── api/ # API 接口定义
│ │ ├── views/
│ │ │ ├── dashboard/ # 数据可视化仪表盘
│ │ │ ├── test/ # 测试执行
│ │ │ │ ├── FuncTest.vue # 功能测试(单量/批量 Browser-Use)
│ │ │ │ ├── ApiTest.vue # 接口测试(三步式:选用例→匹配→执行)
│ │ │ │ ├── OneClickTest.vue # 一键测试(对话式 AI 全自动测试)
│ │ │ │ ├── PressTest.vue # 性能测试
│ │ │ │ ├── SecurityTest.vue # 安全测试
│ │ │ │ └── KnowledgeBase.vue # 页面知识库管理(RAG 记忆层 + Collection 配置)
│ │ │ ├── skills/ # Skills 管理
│ │ │ │ └── SkillManage.vue # Skills 管理(卡片式 + 上传安装)
│ │ │ ├── case/ # 用例管理与生成
│ │ │ │ ├── CaseGenerate.vue # 用例生成
│ │ │ │ ├── CaseManage.vue # 用例管理
│ │ │ │ ├── CaseTemplate.vue # 用例模板配置(平台字段映射)
│ │ │ │ ├── ProjectManage.vue # 项目管理
│ │ │ │ └── ApiSpecManage.vue # 接口文件管理(卡片式)
│ │ │ ├── report/ # 报告管理
│ │ │ │ ├── RunReport.vue # 运行测试报告
│ │ │ │ ├── BugReport.vue # Bug 报告
│ │ │ │ └── MixedReport.vue # 综合评估报告
│ │ │ ├── model/ # 模型配置
│ │ │ │ ├── ModelManage.vue # 模型管理
│ │ │ │ └── ProviderManage.vue # 供应商管理
│ │ │ ├── mail/ # 邮件发送与配置
│ │ │ │ ├── SendMail.vue # 邮件发送
│ │ │ │ ├── EmailConfig.vue # 邮件配置(Resend / 阿里云 / SMTP 自定义 / CyberMail)
│ │ │ │ ├── ContactManage.vue # 联系人管理
│ │ │ │ └── Contacts.vue # 联系人列表
│ │ │ ├── prompt/ # 提示词管理
│ │ │ │ └── PromptList.vue
│ │ │ └── project/ # 多平台项目管理集成
│ │ │ ├── PlatformControl.vue # 平台总控制台
│ │ │ ├── zentao/ # 禅道(Config/Cases/Bugs)
│ │ │ ├── jira/ # Jira(Cases/Bugs)
│ │ │ ├── pingcode/ # PingCode(Config/Cases/Bugs)
│ │ │ ├── worktile/ # Worktile(Config/Cases/Bugs)
│ │ │ ├── ones/ # ONES(Config/Cases/Bugs)
│ │ │ ├── yunxiao/ # 云效(Config/Cases/Bugs)
│ │ │ ├── tapd/ # TAPD(Config/Cases/Bugs)
│ │ │ ├── eightmanage/ # 8Manage(Config/Cases/Bugs)
│ │ │ ├── msproject/ # MS Project(Config/Cases/Bugs)
│ │ │ ├── asana/ # Asana(Config/Cases/Bugs)
│ │ │ └── clickup/ # ClickUp(Config/Cases/Bugs)
│ │ ├── components/ # 公共组件
│ │ │ ├── ProjectSelector.vue # 项目选择器
│ │ │ └── project/ # 项目管理公共组件
│ │ ├── composables/ # 组合式函数
│ │ ├── utils/ # 工具函数
│ │ │ └── stepsUtils.js # 测试步骤格式处理(parseSteps/stepsToEditArray/editArrayToJson)
│ │ ├── router/ # 路由配置
│ │ ├── layouts/ # 布局组件
│ │ └── styles/ # 全局样式
│ └── package.json
└── README.md
cd Agent_Server
pip install -r requirements.txt
playwright install chromium
.env)# 数据库
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=ai_test_agent
# 服务端口
PORT=8001
# 浏览器配置
HEADLESS=false
# MinIO 对象存储
MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=aitest
MINIO_REGION=cn-beijing-1
MINIO_SECURE=false
# GitHub 代理(一键测试 Skills 下载,可选)
GITHUB_PROXY=https://ghproxy.com/
# Qdrant 向量数据库(页面知识库 RAG)
QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_COLLECTION=page_knowledge
# Embedding 服务(页面知识库向量化,可选,也可在页面知识库 Collection 配置界面配置)
EMBEDDING_MODEL=text-embedding-ada-002
EMBEDDING_API_URL=https://api.openai.com/v1
EMBEDDING_API_KEY=your_embedding_key
docker run -d --name Qdrant_Ai_Test_Agent \
-p 6333:6333 -p 6334:6334 \
-v qdrant_storage:/qdrant/storage \
qdrant/qdrant
python -c "from database.connection import init_db; init_db()"
python src.py
cd agent_web_server
npm install
npm run dev
前端默认运行在 http://localhost:5175,通过 Vite 代理转发 API 请求到后端 http://localhost:8001。
进入"模型管理"页面,添加模型时选择对应的 Provider(如 openai、deepseek、alibaba、minimax)。系统会根据 is_active=1 且优先级最高的规则自动调用对应模型。也可在"供应商管理"页面管理模型供应商的 API Key、Base URL 等配置。
target_url / login_url / username / password / extra_credentials / env_name,再把这份上下文同时提供给探索与用例生成链路.md 文件安装 Skills(推荐,无需网络)anthropics/webapp-testing)在线安装(需配置 GITHUB_PROXY)mail.cyberpersons.com:587auto_receive_bug=1 的联系人Email_manage/sender.py 中实现 _send_via_xxx(config, to_email, subject, html_body) 函数,并在 _PROVIDER_MAP 注册一行,所有发送入口自动支持,无需改动其他代码extra_credentials 一并提供给探索提示词localhost / 127.0.0.1 在代理排除列表中;框架已在模块初始化时自动注入 NO_PROXY=localhost,127.0.0.1,::1仪表盘提供全局视角的测试数据可视化,包括测试趋势、Bug 分布、用例覆盖、安全扫描统计、漏洞严重程度分布、安全用例状态等多维度图表,采用三列自适应布局。
docker ps 检查)docker run -d --name qdrant -p 6333:6333 qdrant/qdrant).env 文件):PENTEST_USE_DOCKER=true、PENTEST_DOCKER_IMAGE=vxcontrol/kali-linuxask 工具时,Flow 进入 Waiting 状态MIT License
AI Test Agent - 让自动化测试更智能、更高效!
npx CLI installing 100+ agents, commands, hooks, and integrations in one command
干净、强大、属于你的 AI Agent 平台 --AI agents, without the clutter.
Native macOS app to monitor Claude AI usage limits and watch your coding sessions live
Pocket Flow: Codebase to Tutorial