Magnitude - AI 기반 웹 애플리케이션 테스트 프레임워크
프로젝트 개요
Magnitude는 웹 애플리케이션을 위해 설계된 오픈 소스 AI 네이티브 테스트 프레임워크입니다. 시각적 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: '[email protected]', 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 테스트는 LLM 클라이언트 자격 증명을 포함하기만 하면 Playwright 테스트를 실행할 수 있는 모든 CI 환경에서 실행할 수 있습니다.
GitHub Actions 지원
프로젝트는 GitHub Actions에서 테스트 케이스를 실행하는 방법에 대한 자세한 설명을 제공합니다.
기술 아키텍처
이중 모델 설계
Magnitude는 분리된 계획/실행 모델 아키텍처를 사용합니다.
- 계획 모델: 효과적인 테스트 전략 수립
- 실행 모델: 빠르고 안정적으로 테스트 실행
다른 솔루션과의 차이점
OpenAI 또는 Anthropic의 Computer Use API와 비교:
- 더 빠른 속도: 테스트 케이스에 최적화됨
- 더 높은 신뢰성: 특별히 설계된 에이전트 아키텍처
- 더 낮은 비용: 테스트 시나리오에 대한 비용 효율성 최적화
- 네이티브 테스트 실행기: 특별히 구축된 테스트 설계 및 실행 도구
요약
Magnitude는 AI 기술과 기존 테스트 프레임워크의 장점을 결합하여 웹 애플리케이션에 강력하고 유연하며 사용하기 쉬운 테스트 솔루션을 제공함으로써 테스트 자동화 분야의 중요한 혁신을 나타냅니다. 자연어 테스트 설명과 시각적 AI 에이전트의 결합으로 테스트 케이스의 작성 및 유지 관리가 그 어느 때보다 쉬워졌습니다.