Show HN: Magnitude – 针对 Web 应用的开源 AI 原生测试框架
magnitudedev / magnitude Public
用于 Web 应用程序的开源、AI 原生测试框架
License
663 stars 18 forks Branches Tags Activity
magnitudedev/magnitude
main
转到文件
代码
文件夹和文件
名称 | 名称 | 最近提交的消息 | 最近提交的日期 ---|---|---|--- .changeset| .changeset assets| assets docs| docs packages| packages .dockerignore| .dockerignore .gitignore| .gitignore .npmrc| .npmrc LICENSE| LICENSE README.md| README.md bun.lock| bun.lock package.json| package.json turbo.json| turbo.json
查看所有文件
最近提交
历史记录
仓库文件导航
Magnitude:用于 Web 应用程序的开源 AI 原生测试框架
由视觉 AI 代理驱动的端到端测试框架,可以查看您的界面并适应其中的任何更改。
工作原理
- ✍️ 使用自然语言轻松构建测试用例
- 🧠 强大的推理代理来计划和调整测试
- 👁️ 快速视觉代理,可靠地执行运行
- 📄 计划被保存,以便以相同的方式执行运行
- 🛠 如果出现问题,推理代理会介入
- 🏃♂️ 在本地或 CI/CD 管道中运行测试
↕️ Magnitude 测试用例正在运行! ↕️
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')
设置
安装 Magnitude
1. 在要测试的 node 项目中安装我们的测试运行器(或者,如果您没有项目来尝试,请参阅我们的演示仓库)
npm install --save-dev magnitude-test
2. 通过运行以下命令在您的项目中设置 Magnitude:
npx magnitude init
这将创建一个基本的测试目录 tests/magnitude
,其中包含:
magnitude.config.ts
:Magnitude 测试配置文件example.mag.ts
:示例测试文件
配置 LLM
Magnitude 需要设置两个 LLM 客户端:
- 一个强大的通用多模态 LLM(“planner”)
- 一个具有像素精度的高速视觉 LLM(“executor”)
对于 planner,您可以使用任何多模态 LLM,但我们推荐 Gemini 2.5 pro。 您可以通过 Google AI Studio 或 Vertex AI 使用 Gemini。 如果您没有设置任何一个,您可以在 Google AI Studio 中创建一个 API 密钥(需要付费)并导出到 GOOGLE_API_KEY
。
如果未找到 GOOGLE_API_KEY
,Magnitude 将回退到其他常见提供商(ANTHROPIC_API_KEY
/ OPENAI_API_KEY
)。
要显式选择特定的提供商和模型,请参阅配置文档。 目前,我们支持 Google AI Studio、Google Vertex AI、Anthropic、AWS Bedrock、OpenAI 和与 OpenAI 兼容的提供商。
配置 Moondream
目前,对于 executor 模型,我们仅支持 Moondream,这是一个快速视觉模型,Magnitude 使用它来进行精确的 UI 交互。
要配置 Moondream,请注册并通过 Moondream 在此处 创建一个 API,然后将其添加到您的环境中作为 MOONDREAM_API_KEY
。 这将使用云版本,其中包括每天 5,000 个免费请求(大约是 Magnitude 中的几百个测试用例)。 Moondream 也是完全开源且可自托管的。
🚀 设置好 LLM 后,您就可以运行测试了!
运行测试
使用以下命令运行 Magnitude 测试:
npx magnitude
这将运行使用 *.mag.ts
模式发现的所有 Magnitude 测试文件。 如果代理发现您的应用程序存在问题,它会告诉您发生了什么并描述该错误!
要并行运行多个测试,请添加
-w <workers>
构建测试用例
现在您已经设置了 Magnitude,您可以为您的应用程序创建真正的测试用例。 这是一个通用概念的示例:
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' }) // any key/values
.check('Can see dashboard') // natural language assertion
.step('Create a new company')
.data('Make up the first 2 values and use defaults for the rest')
.check('Company added successfully');
步骤、检查和数据都是自然语言。 可以把它想象成您向同事描述如何测试特定流程 - 他们需要采取哪些步骤,他们应该检查什么,以及使用什么测试数据。
有关如何构建测试用例的更多信息,请参阅我们的文档。
与 CI/CD 集成
您可以在可以运行 Playwright 测试的任何地方在 CI 中运行 Magnitude 测试,只需包含 LLM 客户端凭据。 有关在 GitHub Actions 上运行测试用例的说明,请参见此处。
常见问题解答
为什么不用 OpenAI Operator / Claude Computer Use?
我们使用单独的计划/执行模型,以便在快速可靠地执行测试的同时,计划有效的测试。 OpenAI 或 Anthropic 的 Computer Use API 更适合于通用桌面/Web 任务,但缺乏运行测试用例的速度、可靠性和成本效益。 Magnitude 的代理从头开始设计,用于计划和执行测试用例,并提供专为设计和运行这些测试而构建的本机测试运行器。
联系方式
要获得个性化的演示或了解 Magnitude 如何帮助您的公司,请随时通过 founders@magnitude.run 与我们联系。
您也可以加入我们的 Discord 社区 以获得帮助或任何建议!
关于
用于 Web 应用程序的开源 AI 原生测试框架
主题
testing qa automation framework typescript browser ai test selenium javascipt playwright
资源
License
Stars
Watchers
Forks
发布
没有发布任何版本
软件包 0
没有发布任何软件包