e2e의 개요
테스트 회사 TesterArmy가 만든 e2e는 "upgrade the workspace to the Pro plan"처럼 자연어 목표를 단계로 쓸 수 있는 테스트 프레임워크이며, 에이전트가 앱에서 그 목표를 수행합니다. 같은 테스트 안에서 에이전트 단계와 일반 로케이터 및 어서션을 섞을 수 있습니다. 웹 테스트는 Playwright를 통해 Chromium, Firefox, WebKit에서, 모바일 테스트는 iOS 시뮬레이터와 Android 에뮬레이터에서 실행됩니다.
브라우저 에이전트와 구별되는 점은 재생 캐시입니다. 이후의 검사가 에이전트 단계의 성공을 확인하면 러너가 그 동작을 기록하고, 다음 실행에서는 화면이 더 이상 맞지 않을 때까지 모델 호출 없이 재생하며, 맞지 않으면 에이전트가 이어받습니다. 에이전트 단계가 없는 테스트는 모델이 전혀 필요 없고, 모델은 사용자의 ChatGPT, GitHub Copilot, OpenCode, SuperGrok 구독, API 키, 또는 로컬 OpenAI 호환 서버에서 가져옵니다.
아직 1.0 이전이며, README는 마이너 릴리스 사이에 API와 설정이 바뀔 수 있다고 경고합니다.
e2e, 쓸 만한 가치가 있습니까?
e2e는 대부분의 AI 테스트 도구를 가라앉히는 문제, 즉 매번 실행할 때마다 같은 클릭을 다시 찾도록 모델에 돈을 내는 문제를 해결합니다. 2026년 7월에 만들어진 저장소의 GitHub 스타는 약 12,100개이며, npm 패키지는 2026년 10월 23일 e2e@0.21.3을 내놓았고 10월 26일까지 한 주 동안 약 380,000회 다운로드되었습니다.
캐시 규칙은 엄격하며, 바로 그것이 핵심입니다. 에이전트 단계는 이후의 로케이터 어서션이나 에이전트 검사가 통과할 때만 기록되므로, 검증되지 않은 단계는 매번 실시간으로 실행되고 재생에 실패한 단계는 캐시에서 제거됩니다. agent.assert, agent.waitFor, agent.extract는 항상 모델을 호출하므로 테스트 묶음에는 여전히 운영 비용이 있으며, 실행 요약은 재생, 이관, 누락된 단계를 집계합니다. 기록은 .e2e/cache 아래의 JSON 파일이고, CI에서는 기본이 읽기 전용이라 파이프라인이 기록을 다시 쓰지 않습니다.
캐시 키는 의도적으로 깨지기 쉽습니다. 테스트 이름 변경, 목표 문구 수정, 파일 이동, 엔진 전환은 모두 캐시 누락을 일으키며, 타임스탬프와 새 이메일 주소는 unique()로 감싸지 않으면 매번 누락됩니다. 모델 변경은 누락을 일으키지 않으므로, 새 모델의 동작은 --no-cache로 확인해야 합니다. 앱에 입력한 텍스트는 입력한 그대로 저장되며, 문서는 공유 전에 기록을 검토하라고 경고합니다.
알아 둘 기본값이 두 가지 있습니다. CLI는 옵트아웃하지 않으면 익명 사용 텔레메트리를 보내며, 열린 이슈 몇 건은 재생 캐시의 경계 사례에 관한 것입니다. 어떤 작업이든 브라우저를 조작하는 Stagehand나 Browser Use와 비교하면, e2e는 범위가 더 좁고, 풀 리퀘스트마다 통과해야 하는 테스트 묶음이라는 한 가지 일에는 더 낫습니다.
제 역할을 하는 곳
불안정한 Playwright 테스트 묶음을 가진 엔지니어 4명의 SaaS 팀
결제 페이지가 바뀔 때마다 셀렉터를 다시 쓰는 일 멈추기
깨지기 쉬운 클릭 순서를 agent.act 목표와 그 뒤의 로케이터 어서션으로 바꿉니다. 검증되면 단계는 페이지가 바뀔 때까지 모델 없이 재생되고, 바뀌면 에이전트가 고쳐서 다시 기록합니다. 모델 지출은 어서션과 바뀐 단계로 줄어듭니다.
React Native 에이전시의 모바일 리드
고객 빌드마다 같은 결제 테스트를 iOS와 Android에서 돌리기
로컬 시뮬레이터에서, 또는 Limrun, EAS, TestMu AI를 통한 호스팅 기기에서 모바일 엔진을 쓰고, GitHub 리포터가 풀 리퀘스트에 결과를 올리게 합니다. 모델과 기기 비용 외에는 무료입니다.
남는 엔지니어가 없는 QA 매니저
프레임워크를 만들지 않고 풀 리퀘스트마다 회귀 테스트 돌리기
TesterArmy의 호스팅 플랫폼은 풀 리퀘스트마다 또는 일정에 따라 자연어 테스트를 실행합니다. Hobby는 월 $99에 실행 250회, Startup은 $299에 1,000회이며, 실행 한 번은 최대 20분입니다. 오픈소스 러너는 직접 관리하는 경로입니다.
도입 전 확인할 점
- 설정
- `npx e2e init`이 웹 또는 모바일과 모델 제공업체를 묻고, 설정 파일과 모델 호출이 없는 예제 테스트를 씁니다. Node.js 24.8+(Node 22에서는 22.22.3+)가 필요하고, Windows는 WSL로만 지원하며, 모바일에는 Xcode나 Android SDK가 필요합니다. 붙여 넣는 프롬프트로 Claude Code, Codex, Cursor가 설정을 대신할 수 있습니다.
- 연동
- Chromium, Firefox, WebKit용 Playwright. iOS와 Android용 agent-device. Kernel, Lightpanda, smol machines, Limrun, EAS, TestMu AI를 통한 호스팅 브라우저와 기기. GitHub 풀 리퀘스트 리포터. MCP 서버. Claude Code, Codex, Cursor용 플러그인. 모든 AI SDK 제공업체, OpenRouter, Vercel AI Gateway.
- 데이터와 개인정보
- 모델 입력은 가림 처리된 화면, 지시, 요청된 스크린샷입니다. OpenAI Responses 호출에는 store: false가 붙습니다. 캐시 항목에는 동작과 입력한 텍스트가 담기지만 프롬프트, 스크린샷, 비밀 값은 없습니다. CLI는 기본으로 익명 텔레메트리를 보내며, `E2E_TELEMETRY_DISABLED=1` 또는 `DO_NOT_TRACK=1`로 끕니다.
- 대규모 사용 시 비용
- 러너는 무료입니다. 비용은 에이전트 어서션과 캐시되지 않은 단계의 모델 토큰이며, 캐시된 테스트 묶음에서는 작게 유지됩니다. 여기에 CI나 호스팅 기기 시간이 더해집니다. TesterArmy의 호스팅 요금제는 월 $99에 실행 250회부터 $299에 1,000회까지이며, Enterprise(SSO, 자체 호스팅)는 별도 견적입니다.
- 제한
- 1.0 이전이며 거의 매주 릴리스. 열린 이슈 47개로, 그중 몇 건은 재생 캐시 경계 사례. 에이전트 검사와 추출은 재생되지 않음. 화면에 보이는 변화가 없는 목표는 캐시되지 않음.
좋은 점
- 검증된 에이전트 단계는 모델 호출 없이 재생
- 일상 영어 목표와 Playwright 방식 어서션을 혼합
- 웹과 iOS/Android를 하나의 러너에서
- ChatGPT, Copilot, 로컬 모델로 실행
아쉬운 점
- 1.0 이전, 마이너 릴리스 사이에 API가 바뀜
- 테스트나 목표 이름을 바꾸면 캐시가 버려짐
- 에이전트의 어서션은 항상 모델 호출 비용이 듦
- 텔레메트리가 기본으로 켜져 있음
추천 대상
모든 셀렉터를 손으로 관리하지 않고 웹과 모바일에 걸쳐 읽기 쉬운 엔드투엔드 테스트를 원하는 제품팀.
