토론

Playwright를 사용한 웹 애플리케이션 테스트 스킬

Wikiprompt, 무료 프롬프트 백과사전에서

Fatih Kadir Akın

2025년 12월 20일

Playwright를 사용한 웹 애플리케이션 테스트 스킬 Playwright를 사용하여 로컬 웹 애플리케이션을 테스트하고 디버깅하기 위한 포괄적인 스킬 정의로, 브라우저 자동화, 검증, 디버깅 패턴을 포함합니다.

프롬프트 내용저장

🌐
--- name: web-application-testing-skill description: 로컬 웹 애플리케이션을 Playwright로 상호 작용하고 테스트하기 위한 도구 키트입니다. --- # 웹 애플리케이션 테스트 이 스킬은 Playwright 자동화를 사용하여 로컬 웹 애플리케이션의 포괄적인 테스트와 디버깅을 가능하게 합니다. ## 이 스킬을 사용해야 하는 경우 다음과 같은 경우에 이 스킬을 사용하세요: - 실제 브라우저에서 프론트엔드 기능 테스트 - UI 동작 및 상호 작용 검증 - 웹 애플리케이션 문제 디버깅 - 문서화 또는 디버깅을 위한 스크린샷 캡처 - 브라우저 콘솔 로그 검사 - 양식 제출 및 사용자 흐름 검증 - 다양한 뷰포트에서 반응형 디자인 확인 ## 사전 요구 사항 - 시스템에 Node.js 설치 - 로컬에서 실행 중인 웹 애플리케이션 (또는 접근 가능한 URL) - Playwright는 없으면 자동으로 설치됩니다 ## 핵심 기능 ### 1. 브라우저 자동화 - URL로 이동 - 버튼 및 링크 클릭 - 양식 필드 작성 - 드롭다운 선택 - 대화 상자 및 알림 처리 ### 2. 검증 - 요소 존재 여부 확인 - 텍스트 콘텐츠 검증 - 요소 가시성 확인 - URL 검증 - 반응형 동작 테스트 ### 3. 디버깅 - 스크린샷 캡처 - 콘솔 로그 보기 - 네트워크 요청 검사 - 실패한 테스트 디버깅 ## 사용 예시 ### 예시 1: 기본 탐색 테스트 ```javascript // 페이지로 이동하고 제목 확인 await page.goto('http://localhost:3000'); const title = await page.title(); console.log('페이지 제목:', title); ``` ### 예시 2: 양식 상호 작용 ```javascript // 양식 작성 및 제출 await page.fill('#username', 'testuser'); await page.fill('#password', 'password123'); await page.click('button[type="submit"]'); await page.waitForURL('**/dashboard'); ``` ### 예시 3: 스크린샷 캡처 ```javascript // 디버깅을 위한 스크린샷 캡처 await page.screenshot({ path: 'debug.png', fullPage: true }); ``` ## 지침 1. **앱이 실행 중인지 항상 확인** - 테스트를 실행하기 전에 로컬 서버에 접근 가능한지 확인 2. **명시적 대기 사용** - 상호 작용 전에 요소 또는 탐색이 완료될 때까지 대기 3. **실패 시 스크린샷 캡처** - 문제 디버깅을 돕기 위해 스크린샷 촬영 4. **리소스 정리** - 완료 시 항상 브라우저 닫기 5. **타임아웃을 우아하게 처리** - 느린 작업에 대해 합리적인 타임아웃 설정 6. **점진적으로 테스트** - 복잡한 흐름 전에 간단한 상호 작용부터 시작 7. **선택자를 현명하게 사용** - CSS 클래스보다 data-testid 또는 역할 기반 선택자 선호 ## 일반적인 패턴 ### 패턴: 요소 대기 ```javascript await page.waitForSelector('#element-id', { state: 'visible' }); ``` ### 패턴: 요소 존재 여부 확인 ```javascript const exists = await page.locator('#element-id').count() > 0; ``` ### 패턴: 콘솔 로그 가져오기 ```javascript page.on('console', msg => console.log('브라우저 로그:', msg.text())); ``` ### 패턴: 오류 처리 ```javascript try { await page.click('#button'); } catch (error) { await page.screenshot({ path: 'error.png' }); throw error; } ``` ## 제한 사항 - Node.js 환경 필요 - 네이티브 모바일 앱 테스트 불가 (대신 React Native Testing Library 사용) - 복잡한 인증 흐름에서 문제가 발생할 수 있음 - 일부 최신 프레임워크는 특정 구성이 필요할 수 있음

전체 프롬프트를 보려면 로그인하세요

Continue with:

By logging in, you agree to our Terms of Use and Privacy Policy

사용법

이 프롬프트는 coding와 함께 사용하도록 설계되었습니다. 위의 프롬프트 내용을 복사하여 원하는 AI 도구에 붙여넣으세요.

최상의 결과를 얻으려면 자리 표시자(대괄호 또는 대문자로 표시)를 특정 요구 사항으로 사용자 지정할 수 있습니다.

참고 자료

분류:coding| prompts.chat| web-testing| playwright

토론