0Pricing
React Academy · 강의

React용 Playwright 시작하기

브라우저를 열고 React 앱과 상호작용하며 결과를 검증하는 Playwright 테스트를 작성합니다.

React용 Playwright 시작하기은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

플레이라이트란 무엇인가요?

플레이라이트는 실제 Chromium, Firefox, WebKit 브라우저를 제어하는 Node.js 종단 간 테스트 프레임워크입니다. 라우팅, 인증, API 상호 작용을 포함한 전체 리액트 앱의 흐름을 테스트하는 데 적합합니다.

설치

단일 명령으로 플레이라이트와 브라우저 바이너리를 설치합니다.

# npm init playwright@latest
# or
# npx playwright install

# playwright.config.ts is created automatically

리액트용 플레이라이트 구성

테스트를 실행하기 전에 개발 서버가 시작되도록 플레이라이트를 구성합니다.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  testDir: './e2e',
  use: { baseURL: 'http://localhost:5173' },
  webServer: {
    command: 'npm run dev',
    url: 'http://localhost:5173',
    reuseExistingServer: !process.env.CI,
  },
});

첫 번째 테스트 작성하기

테스트에서는 브라우저 페이지 객체인 page를 사용합니다. URL로 이동하고 요소와 상호 작용한 다음 결과를 검증합니다.

import { test, expect } from '@playwright/test';

test('home page shows heading', async ({ page }) => {
  await page.goto('/');
  await expect(page.getByRole('heading', { name: 'Welcome' })).toBeVisible();
});

로케이터

플레이라이트의 로케이터는 RTL 쿼리와 유사합니다. 견고성을 위해 역할 기반 로케이터를 우선 사용하십시오.

// By role
const button = page.getByRole('button', { name: 'Submit' });
// By label
const input = page.getByLabel('Email address');
// By text
const link = page.getByText('Sign in');
// By placeholder
const search = page.getByPlaceholder('Search products');

클릭 및 입력하기

click(), fill(), press(), selectOption()을 사용하여 요소와 상호 작용합니다.

await page.getByLabel('Email').fill('user@example.com');
await page.getByLabel('Password').fill('secret');
await page.getByRole('button', { name: 'Log in' }).click();

탐색 대기하기

플레이라이트는 요소를 사용할 수 있을 때까지 자동으로 기다리지만, 탐색이나 네트워크 요청이 완료될 때까지 명시적으로 기다릴 수도 있습니다.

// Wait for URL to change after form submit
await page.waitForURL('/dashboard');

// Wait for a specific request
const [response] = await Promise.all([
  page.waitForResponse('/api/users'),
  page.click('button[type="submit"]'),
]);

검증

플레이라이트에 내장된 매처와 함께 expect(locator)를 사용합니다. 매처는 조건이 참이 될 때까지 자동으로 기다립니다.

await expect(page.getByRole('heading')).toHaveText('Dashboard');
await expect(page.getByTestId('user-count')).toContainText('5 users');
await expect(page.getByRole('button', { name: 'Delete' })).toBeDisabled();
await expect(page).toHaveURL('/success');

실패 시 스크린샷 캡처하기

플레이라이트는 구성된 경우 테스트 실패 시 스크린샷과 추적 정보를 자동으로 캡처합니다. 구성에서 이 기능을 활성화하십시오.

use: {
  screenshot: 'only-on-failure',
  trace: 'retain-on-failure',
  video: 'retain-on-failure',
}

테스트 실행하기

모든 테스트를 헤드리스 모드로 실행하거나, 테스트를 시각적으로 단계별 실행할 수 있는 대화형 테스트 탐색기에서 --ui를 사용합니다.

# Run all tests
npx playwright test

# Run with UI mode
npx playwright test --ui

# Run a specific file
npx playwright test e2e/login.spec.ts

# Debug mode
npx playwright test --debug

플레이라이트 추적 정보 뷰어

테스트가 실패하면 npx playwright show-trace로 추적 파일을 열어 스크린샷, 네트워크 요청, 콘솔 기록과 함께 테스트를 단계별로 재생합니다.

지속적 통합

플레이라이트는 지속적 통합 환경에서 기본적으로 헤드리스 모드로 실행됩니다. npx playwright install --with-deps로 브라우저를 설치하고 일반적인 npm 스크립트로 테스트를 실행합니다.

# .github/workflows/e2e.yml
- name: Install Playwright Browsers
  run: npx playwright install --with-deps
- name: Run Playwright tests
  run: npx playwright test

빠른 확인

텍스트 입력 필드를 채우려면 어떤 플레이라이트 메서드를 사용해야 하나요?

요약

플레이라이트는 실제 브라우저를 테스트하고 요소를 사용할 수 있을 때까지 자동으로 기다립니다. 역할 기반 로케이터, 상호 작용을 위한 fill()과 click(), 검증을 위한 expect(locator), 개발 중 시각적 디버깅을 위한 --ui 모드를 사용하십시오.

자주 묻는 질문

“React용 Playwright 시작하기” 강의는 무료인가요?

네 — “React용 Playwright 시작하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“React용 Playwright 시작하기”에서 뭘 배우나요?

브라우저를 열고 React 앱과 상호작용하며 결과를 검증하는 Playwright 테스트를 작성합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“React용 Playwright 시작하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. React Testing Library로 통합 테스트하기
  2. MSW로 비동기 UI와 API 호출 테스트하기
  3. React용 Playwright 시작하기
  4. 양식과 사용자 흐름 엔드 투 엔드 테스트
← React Academy(으)로 돌아가기