# Magnitude - 웹앱용 AI-Native 테스팅 프레임워크 오픈소스

> Clean Markdown view of GeekNews topic #20566. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20566](https://news.hada.io/topic?id=20566)
- GeekNews Markdown: [https://news.hada.io/topic/20566.md](https://news.hada.io/topic/20566.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-04-28T09:46:02+09:00
- Updated: 2025-04-28T09:46:02+09:00
- Original source: [github.com/magnitudedev](https://github.com/magnitudedev/magnitude)
- Points: 9
- Comments: 0

## Summary

웹앱을 위한 **AI 기반 오픈소스 E2E 테스팅 프레임워크**로 **자연어**로 테스트 케이스를 작성하고, **추론 AI 에이전트**와 **비주얼 AI 에이전트**가 협력하여 테스트를 실행합니다. **멀티모달 LLM**과 **비전 모델**을 사용하여 빠르고 정확한 UI 테스트를 수행하며, **CI/CD 통합**도 지원합니다. 이 프레임워크는 **계획**과 **실행**을 분리하여 **속도, 신뢰성, 비용** 면에서 최적화되어 있습니다. **플래너 모델**로는 **Gemini 2.5 Pro**를, **익스큐터 모델**로는 **Moondream**을 추천합니다.

## Topic Body

- 웹앱을 위한 **AI 기반 오픈소스 E2E 테스팅 프레임워크**  
- **자연어**로 쉽게 테스트 케이스를 작성하고, **추론 AI 에이전트**가 테스트 계획을 세우고, **비주얼 AI 에이전트**가 **UI 변화를 인식하고 적응**하여 테스트를 실행   
- **멀티모달 LLM**과 **비전 모델**을 조합해 빠르고 정확한 UI 테스트를 수행하고, 계획은 저장되어 항상 동일한 방식으로 실행 가능  
- 문제가 발생하면 **추론 에이전트**가 자동으로 문제를 해결함  
- **CI/CD 통합**이 가능하며, Playwright와 유사한 방식으로 테스트 실행을 지원. CI 환경(GitHub Actions 등)에서 테스트 실행 가능  
- **왜 OpenAI Operator나 Claude Computer Use를 사용하지 않는가?**  
  - Magnitude는 **계획**과 **실행**을 분리하여 설계함  
  - 일반적인 데스크탑/웹 작업용 API보다 **속도, 신뢰성, 비용** 면에서 테스트 실행에 최적화되어 있음  
  - 별도의 **자체 런너**를 제공하여 **신뢰성, 속도, 비용 효율성**을 극대화  
- LLM 추천  
  - **플래너 모델**: 일반 멀티모달 LLM 사용 (추천: **Gemini 2.5 Pro**)  
  - **익스큐터 모델**: 빠른 비전 LLM인 **Moondream** 사용  
- 예제 1   
  ```js  
  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')  
  ```  
- 예제 2  
  ```js  
  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');  
  ```

## Comments



_No public comments on this page._
