Skip to content

Commit 0ea0348

Browse files
committed
playwright
1 parent 5fb65a0 commit 0ea0348

File tree

8 files changed

+154
-0
lines changed

8 files changed

+154
-0
lines changed
59.6 KB
Loading
91.2 KB
Loading
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
---
2+
title: "Playwright 시작하기"
3+
description: "Playwright 탐구기록"
4+
thumbnail: "./thumbnail.png"
5+
category: "dev"
6+
tags: ["Playwright", "E2E", "Test"]
7+
---
8+
9+
안녕하세요.
10+
11+
프론트엔드하면서 부끄럽게도 테스트코드 작성이라는걸 말만 들어봤지 해본적이 없네요.
12+
13+
부끄럽네요 ㅋ 이 포스팅은 아마 제가 Playwright 를 탐구하는 글이 될것같네요 ㅎ
14+
15+
# Playwright 란?
16+
17+
**Playwright** 는 오픈소스 프레임워크로, E2E 테스트를 위한 도구입니다.
18+
19+
다양한 언어를 지원하구요. (TypeScript, JavaScript, Python, .NET, Java)
20+
21+
모바일 웹 테스트도 된다고합니당. 이외에 여러가지 특징들이 있지만, 우선 저는 알못이기때문에 그냥 기초적인 정도만 서술해보려고합니다.
22+
23+
저는 일단 프로젝트를 새로 만들어서 해보기로했어요.
24+
25+
# 프로젝트 생성 및 Playwright 설치
26+
27+
> 저는 pnpm을 주로 사용하고 있어서 패키지를 설치할 때 pnpm을 사용할거에요!
28+
29+
```bash
30+
pnpm create vite
31+
```
32+
33+
일단 vite react 프로젝트를 생성해용.
34+
35+
```bash
36+
Project Name : react-playwright
37+
Select a framework : React
38+
Select a variant : TypeScript
39+
```
40+
41+
저는 위와같이 선택하고 프로젝트를 만들었습니당.
42+
43+
이제 playwright도 설치해염.
44+
45+
리액트 프로젝트 디렉토리로 이동 후 다음 명령어 입력
46+
47+
```bash
48+
pnpm create playwright
49+
```
50+
51+
위 명령어를 입력하면 나오는 프롬프트에서는 다음과 같이 선택했습니다.
52+
53+
![](./bash01.png)
54+
55+
조금 기다리면 설치가 끝나염.
56+
57+
설치가 끝나면 다음과 같은 파일들이 생기는데여.
58+
59+
```
60+
playwright.config.ts # playwright 설정파일
61+
package.json
62+
package-lock.json # Or yarn.lock / pnpm-lock.yaml
63+
tests/
64+
example.spec.ts # 간단한 예제 테스트 파일
65+
tests-examples/
66+
demo-todo-app.spec.ts # 더 복잡한 예제 테스트 파일
67+
```
68+
69+
간단한 예제 테스트 파일을 한번 살펴보겠습니다.
70+
71+
```ts
72+
import { test, expect } from "@playwright/test"
73+
74+
test("has title", async ({ page }) => {
75+
await page.goto("https://playwright.dev/")
76+
77+
// Expect a title "to contain" a substring.
78+
await expect(page).toHaveTitle(/Playwright/)
79+
})
80+
81+
test("get started link", async ({ page }) => {
82+
await page.goto("https://playwright.dev/")
83+
84+
// Click the get started link.
85+
await page.getByRole("link", { name: "Get started" }).click()
86+
87+
// Expects page to have a heading with the name of Installation.
88+
await expect(
89+
page.getByRole("heading", { name: "Installation" })
90+
).toBeVisible()
91+
})
92+
```
93+
94+
`test``expect` 함수를 import 해서 사용하고있네요.
95+
96+
아마도 `test` 함수는 테스트 케이스를 정의하고, `expect` 함수는 테스트 결과를 확인하는 함수일 것 같네요.
97+
98+
우선 테스트를 실행하는 명령어부터 실행해보겠습니다.
99+
100+
# 테스트 예제 실행
101+
102+
```bash
103+
pnpm exec playwright test
104+
```
105+
106+
저는 다음과 같은 결과가 나왔습니다.
107+
108+
![](./test-result01.png)
109+
110+
이미지에 적혀있는 `pnpm exec playwright show-report` 명령어를 실행해서 리포트를 확인해볼게요.
111+
112+
# 테스트 REPORT 확인
113+
114+
```bash
115+
pnpm exec playwright show-report
116+
```
117+
118+
![](./test-result02.png)
119+
120+
오.. 실행한 테스트에 대한 자세한 내용을 보여주는 웹 브라우저가 나타납니다.
121+
122+
webkit, firefox, chromium 세 개 브라우저 환경에서 테스트를 실행했네요.
123+
124+
목록에서 하나를 클릭해서 상세하게 내용을 확인해볼게요.
125+
126+
![](./test-result03.png)
127+
128+
테스트 절차에 대해서 자세하게 내용을 확인할 수 있습니당.
129+
130+
# UI 모드
131+
132+
공식문서를 살펴보니 테스트 결과를 웹 브라우저 UI로 확인할 수 있는 모드가 있습니다?
133+
134+
```bash
135+
pnpm exec playwright test --ui
136+
```
137+
138+
위 명령어를 통해 ui모드로 테스트를 할 수 있어요.
139+
140+
ui 모드로 테스트를 실행하면, 브라우저가 하나 실행되고 다음과 같은 이미지로 나타납니당.
141+
142+
![](./ui-mode.png)
143+
144+
직접 브라우저를 보면서, 테스트 코드가 어떻게 진행되는지 확인할 수 있어서 좋은것같네여.
145+
146+
<hr />
147+
148+
# 마무리하며
149+
150+
요번 글에서는 대충 프로젝트 만들고 Playwright 깔고 playwright로 어떻게 테스트를 진행하는지 정도 확인해봤구여.
151+
152+
앞으로도 공식문서를 따라가면서 공부하면서 기록할것같네요.
153+
154+
감사합니당.
36.2 KB
Loading
181 KB
Loading
265 KB
Loading
9.31 KB
Loading
560 KB
Loading

0 commit comments

Comments
 (0)