자연어로 웹·모바일 테스트 자동화하는 tester-army/e2e
화면이 조금만 바뀌어도 깨지는 기존 E2E 테스트 스크립트를 일일이 수정하느라 많은 시간이 소모됩니다. 복잡한 클릭과 입력 과정을 일일이 코드로 짜다 보니 유지보수 비용이 커지기 때문입니다. 이 자료는 자연어 목표 설정부터 모델 호출 비용을 아끼는 재실행 방식까지 tester-army/e2e 프레임워크의 핵심 활용법을 정리합니다.
웹과 모바일 앱을 개발할 때 모든 화면 흐름을 직접 테스트 스크립트로 작성하는 작업은 상당한 부담이 됩니다. tester-army/e2e는 자연어로 테스트 목표를 적으면 에이전트가 직접 앱을 조작하고 결과를 검증해 줍니다. 3개월 전(2026년 7월)에 등장해 깃허브 스타 2,607개를 기록한 이 도구로 테스트 자동화 환경을 구성하는 방법을 살펴봅니다.
tester-army/e2e는 어떤 도구인가요
tester-army/e2e는 웹과 모바일 앱을 모두 지원하는 차세대 E2E(End-to-End) 테스트 프레임워크예요. 테스트하고 싶은 목표를 자연어로 작성하면 에이전트가 직접 앱을 조작해 해당 목표를 달성해 줘요. 자연어 조작뿐만 아니라 기존 방식처럼 로케이터와 단언(assertion)을 같은 테스트 안에서 함께 사용해 결과를 꼼꼼하게 검증할 수 있어요.
이 프로젝트는 TypeScript를 주 언어로 사용하며 Apache-2.0 라이선스로 배포되고 있어요. 처음 만들어진 시점은 3개월 전(2026년 7월)이며, 마지막 업데이트는 이번 달(2026년 10월)에 이루어졌어요. 현재 GitHub 스타 2,607개, 포크 100개를 기록하고 있어요. 모델은 사용자가 보유한 구독권이나 API 키, 로컬 모델을 그대로 연동해 사용할 수 있어요.
tester-army/e2e의 패키지 구성
| 패키지 이름 | 역할 |
|---|---|
| e2e | SDK, 러너, CLI 제공 |
| @e2e-dev/web | Playwright 기반 브라우저 엔진(Chromium, Firefox, WebKit) |
| @e2e-dev/mobile | agent-device 기반 iOS 시뮬레이터 및 Android 에뮬레이터 엔진 |
| @e2e-dev/github | 풀 리퀘스트(PR) 댓글로 테스트 결과를 등록하는 리포터 |
| @e2e-dev/kernel | 웹 엔진을 위한 Kernel 호스팅 브라우저 |
init 명령어를 실행하면 웹이나 모바일 엔진 중 필요한 대상을 선택하고, 연결할 모델 제공자를 고른 뒤 기본 설정 파일과 예제 테스트를 바로 생성해 줘요.
기존 테스트 도구 대신 왜 쓰나요
기존의 Selenium이나 Cypress와 달리 tester‑army/e2e는 에이전트가 동작을 기록하고, 다음 실행에서는 앱이 변하지 않는 한 AI 모델 호출을 건너뛰어요. 처음 목표를 자연어로 제시하면 에이전트가 앱을 조작하고, 그 조작 과정이 로케이터와 어설션과 함께 저장됩니다. 이후 테스트를 재실행하면 기록된 단계가 바로 재생되기 때문에, 매번 모델에게 질문하지 않아도 되어 AI 호출 비용을 크게 절감할 수 있습니다. 이 방식은 특히 반복적인 UI 흐름이 많은 웹·모바일 프로젝트에서 비용 효율성을 높여줍니다.
또한, 에이전트 단계와 일반 검증문(어설션)을 한 테스트 안에서 자유롭게 섞어 쓸 수 있어요. 에이전트가 없는 순수 검증 테스트는 모델 호출이 전혀 필요 없으며, 직접 만든 구독이나 API 키, 혹은 로컬 모델을 가져다 쓰면 언제든지 확장 가능합니다. 현재 이 저장소는 2,607개의 스타와 100개의 포크를 보유하고 있으며, TypeScript로 작성돼 유지보수가 쉽고, Apache‑2.0 라이선스로 자유롭게 활용할 수 있습니다.
e2e init프로젝트 초기화
e2e init명령어를 실행해 엔진(웹·모바일)과 모델 제공자를 선택하고 설정 파일을 생성합니다.테스트 작성
자연어 목표와 어설션을 포함한 테스트 코드를 작성하고, 필요 시 에이전트 단계도 추가합니다.
실행 및 검증
e2e run으로 테스트를 실행해 기록된 에이전트 단계가 재생되고, 어설션 결과를 확인합니다.
| Package | What it does |
|---|---|
| e2e | SDK, runner, and CLI |
| @e2e-dev/web | Browser engine: Chromium, Firefox, WebKit via Playwright |
| @e2e-dev/mobile | iOS and Android engine: simulators and emulators |
| @e2e-dev/github | Reporter that posts results as a pull request comment |
- 주 언어: TypeScript
- 주제 태그: e2e, e2e-testing, end-to-end-testing, mobile, mobile-testing, playwright, web
- 라이선스: Apache-2.0
- 처음 만들어진 시점: 3개월 전(2026년 7월)
- 마지막 업데이트: 이번 달(2026년 10월)
빠른 시작을 위한 초기 설정과 설치 단계
먼저 e2e init 명령어를 실행하면, 웹 엔진인지 모바일 엔진인지, 그리고 사용할 AI 모델 제공자를 선택하라는 질문이 차례대로 나타나요. 선택이 끝나면 프레임워크가 e2e.config.ts 파일과 간단한 예제 테스트 파일을 자동으로 생성해 줍니다. 이렇게 기본 설정만 마치면, 자연어 목표를 입력해 테스트를 바로 작성할 수 있습니다.
e2e init패키지 설치
npm i -D e2e @e2e-dev/web @e2e-dev/mobile로 기본 패키지를 설치합니다.초기 설정 실행
e2e init을 실행해 엔진 종류와 모델 제공자를 선택합니다.예제 테스트 확인
생성된
e2e.config.ts와example.test.ts파일을 열어 설정이 올바른지 검증합니다.
| Package | What it does |
|---|---|
e2e | SDK, runner, CLI |
@e2e-dev/web | Chromium, Firefox, WebKit via Playwright |
@e2e-dev/mobile | iOS·Android simulators & emulators |
@e2e-dev/github | CI 결과를 PR 코멘트로 자동 보고 |
@e2e-dev/kernel | 커스텀 브라우저 환경 제공 |
설정이 완료되면 e2e run 으로 테스트를 실행하거나, README에 안내된 quickstart 문서를 따라 추가 기능을 활용할 수 있어요. 현재 이 저장소는 2,607개의 스타와 100개의 포크를 기록하고 있으며, Apache-2.0 라이선스로 자유롭게 사용할 수 있습니다.
tester‑army/e2e는 TypeScript 로 작성됐으며, @e2e-dev/web 은 Playwright 기반의 Chromium, Firefox, WebKit을 지원하고, @e2e-dev/mobile 은 iOS와 Android 시뮬레이터·에뮬레이터를 연결해 줍니다. 필요에 따라 @e2e-dev/github 로 CI 결과를 PR 코멘트로 자동 보고하거나, @e2e-dev/kernel 로 커스텀 브라우저 환경을 구성할 수 있습니다.
한눈에 보는 지원 패키지 구성
tester-army/e2e는 웹과 모바일 테스트를 같은 CLI와 SDK로 다루도록 독립적인 패키지로 쪼개져 있어요. 핵심은 `e2e` 패키지 하나에 러너·CLI·SDK가 다 들어 있고, 엔진만 갈아 끼우면 됩니다.
| 패키지 | 역할 |
|---|---|
e2e | SDK·러너·CLI — e2e init·e2e run 등 진입점 |
@e2e-dev/web | 웹 엔진 — Playwright 기반 Chromium·Firefox·WebKit |
@e2e-dev/mobile | 모바일 엔진 — iOS 시뮬레이터 / Android 에뮬레이터 (agent-device) |
@e2e-dev/github | 깃허브 리포터 — PR 코멘트로 결과 리포트 |
@e2e-dev/kernel | 웹 엔진용 커널 호스팅 브라우저 |
@e2e-dev/eas | Expo Application Services 연동 (모바일 빌드·배포) |
웹 테스트만 쓴다면 `@e2e-dev/web`만, 모바일까지 같이 돌린다면 `@e2e-dev/mobile`을 추가 설치하면 돼요. 리포터나 커널은 필요할 때만 붙이면 되니 의존성이 가볍습니다.
npm i -D e2e @e2e-dev/web @e2e-dev/mobile @e2e-dev/github도입 전 확인해야 할 모델 연결과 주의할 점
tester‑army/e2e를 사용하려면 먼저 AI 모델과 연결해야 합니다. 모델 제공자는 직접 구독한 서비스의 API 키를 넣거나, 로컬에 설치한 모델을 사용할 수 있어요. e2e init 단계에서 “model provider”를 선택하면, 설정 파일에 apiKey 혹은 localModelPath가 기록됩니다. 개인 API 키는 환경 변수 E2E_API_KEY에 넣어두는 것이 안전합니다. API 키를 제공하지 않으면 에이전트 스텝을 포함한 테스트는 실행되지 않아요.
에이전트가 수행한 동작은 테스트 파일에 기록되고, 다음 실행에서는 모델 호출 없이 재생됩니다. 하지만 앱 UI가 바뀌면 기존 기록과 매칭되지 않아 에이전트가 다시 동작을 캡처하게 되고, 그때 모델이 호출됩니다. UI가 자주 바뀌는 경우, 안정적인 locators를 사용하거나, 변경 시 테스트를 재기록하는 절차를 마련해두세요.
export E2E_API_KEY=your_key_hereAPI 키 발급
원하는 AI 모델 서비스에서 구독하고 API 키를 발급받으세요.
환경 변수에 키 저장
터미널에
export E2E_API_KEY=your_key_here명령을 입력합니다.e2e init 실행 및 모델 제공자 선택
e2e init을 실행하고, 물어보는 모델 제공자를 선택합니다.UI 변경 시 재기록 준비
앱 UI가 바뀌면 기존 기록이 무효화되므로, 테스트를 다시 기록하거나 안정적인 locators를 검토합니다.
| 모델 제공 방식 | 설정 방법 |
|---|---|
| API 키 | E2E_API_KEY 환경 변수 |
| 로컬 모델 | config에 localModelPath 지정 |