magnitudedev/magnitudePlease refer to the latest official releases for information GitHub Homepage
基于AI的开源端到端Web应用测试框架,使用视觉AI代理自动化测试流程
Apache-2.0TypeScript 3.0kmagnitudedevmagnitude Last Updated: 2025-06-30
Magnitude - 基于AI的Web应用测试框架
项目概述
Magnitude是一个开源的AI原生测试框架,专为Web应用程序设计。它由视觉AI代理驱动,能够看到您的界面并适应其中的任何变化。
核心特性
🎯 主要功能
- ✍️ 自然语言测试用例构建 - 使用自然语言轻松构建测试用例
- 🧠 强大的推理代理 - 智能规划和调整测试流程
- 👁️ 快速视觉代理 - 可靠地执行测试运行
- 📄 测试计划保存 - 保存计划以相同方式执行运行
- 🛠 智能问题处理 - 遇到问题时推理代理会介入处理
- 🏃♂️ 灵活部署 - 可在本地或CI/CD管道中运行测试
快速开始
1. 安装测试运行器
npm install --save-dev magnitude-test
2. 初始化项目
npx magnitude init
这将创建一个基本的测试目录 tests/magnitude
,包含:
magnitude.config.ts
- Magnitude测试配置文件example.mag.ts
- 示例测试文件
3. 配置LLM客户端
Magnitude需要设置两个LLM客户端:
规划器(Planner)
- 推荐模型:Gemini 2.5 Pro
- 配置方式:
- 通过Google AI Studio或Vertex AI使用Gemini
- 在Google AI Studio创建API密钥并导出为
GOOGLE_API_KEY
- 支持备用提供商:
ANTHROPIC_API_KEY
/OPENAI_API_KEY
执行器(Executor)
- 使用模型:Moondream
- 配置方式:
- 在Moondream注册并创建API密钥
- 设置环境变量
MOONDREAM_API_KEY
- 每日提供5,000次免费请求(约数百个测试用例)
- 完全开源且支持自托管
运行测试
基本运行命令
npx magnitude
这将运行所有使用 *.mag.ts
模式发现的Magnitude测试文件。
并行测试
npx magnitude -w <workers>
测试用例示例
基础语法
import { test } from 'magnitude-test';
test('can add and complete todos', { url: 'https://magnitodo.com' })
.step('create 3 todos')
.data('Take out the trash, Buy groceries, Build more test cases with Magnitude')
.check('should see all 3 todos')
.step('mark each todo complete')
.check('says 0 items left')
复杂场景示例
import { test } from 'magnitude-test';
test('can log in and create company')
.step('Log in to the app')
.data({ username: 'test-user@magnitude.run', password: 'test' })
.check('Can see dashboard')
.step('Create a new company')
.data('Make up the first 2 values and use defaults for the rest')
.check('Company added successfully');
核心概念
自然语言描述
- 步骤(Steps):描述需要执行的操作
- 检查(Checks):自然语言断言
- 数据(Data):测试数据,支持任意键值对
设计理念
测试用例的编写就像向同事描述如何测试特定流程一样:
- 他们需要采取什么步骤
- 应该检查什么
- 使用什么测试数据
CI/CD集成
Magnitude测试可以在任何能够运行Playwright测试的CI环境中运行,只需包含LLM客户端凭据。
GitHub Actions支持
项目提供了在GitHub Actions上运行测试用例的详细说明。
技术架构
双模型设计
Magnitude使用分离的规划/执行模型架构:
- 规划模型:制定有效的测试策略
- 执行模型:快速可靠地执行测试
与其他方案的区别
相比OpenAI或Anthropic的Computer Use APIs:
- 更快的速度:专门为测试用例优化
- 更高的可靠性:专门设计的代理架构
- 更低的成本:针对测试场景的成本效益优化
- 原生测试运行器:专门构建的测试设计和运行工具
总结
Magnitude代表了测试自动化领域的重要创新,通过结合AI技术和传统测试框架的优势,为Web应用程序提供了一个强大、灵活且易于使用的测试解决方案。其自然语言测试描述和视觉AI代理的结合,使得测试用例的编写和维护变得前所未有的简单。