4.Playwright
E2E(End to End) Test
E2E(End-to-End) ํ ์คํธ๋ ์ ์ฒด ์์คํ ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ฆ์ ์ฒ์๋ถํฐ ๋๊น์ง ํ๊ฐํ๋ ์ํํธ์จ์ด ํ ์คํธ์ ํ ์ ํ์ด๋ค. ์ค์ ์๋๋ฆฌ์ค์์ ์์คํ ์ ๋์๊ณผ ์ฑ๋ฅ์ ๊ฒ์ฆํ๊ธฐ ์ํด ์ํ๋๋ค. E2E ํ ์คํธ์ ๋ชฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ๊ฐ๋ณ ๊ตฌ์ฑ ์์๊ฐ ์ํํ๊ฒ ํจ๊ป ์๋ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋์ง ํ์ธํ๋ ๊ฒ์ด๋ค.
E2E ํ ์คํธ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ผ์ด๋ธ ์์คํ ์์ ์ํ๋๋ฉฐ ์ฌ๋ฌ ์์คํ ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํฌํจ๋ ์ ์๋ค. ์์คํ ์์ ์ฌ์ฉ์์ ํ๋์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์์คํ ์ด ์์๋๋ก ์๋ํ๋์ง ํ์ธํ๋ค.
E2E ํ ์คํธ๋ ์๋์ผ๋ก ์ํํ๊ฑฐ๋ ์๋ํ๋ ํ ์คํธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ ์ ์๋ค. ์๋ E2E ํ ์คํธ์์๋ ํ ์คํฐ๊ฐ ์์คํ ์ ๋ชจ๋ ๋จ๊ณ๋ฅผ ์๋์ผ๋ก ์ํํ์ฌ ์ฌ์ฉ์์ ํ๋์ ์๋ฎฌ๋ ์ด์ ํ๋ค. ์ด ํ๋ก์ธ์ค๋ ์๊ฐ์ด ๋ง์ด ์์๋ ์ ์์ผ๋ฉฐ ์ธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ๋ค. ๋ฐ๋ฉด์ ์๋ํ๋ E2E ํ ์คํธ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ํ๋์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ํ ์คํธ๋ฅผ ์๋์ผ๋ก ์ํํ๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋ ๋น ๋ฅด๊ณ ์์ ์ ์ด๋ฉฐ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ํํ ์ ์๋ค.
E2E ํ ์คํธ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์์ ๋งค์ฐ ์ค์ํ ๋ถ๋ถ์ด๋ค. ํตํฉ ๋ฌธ์ ๋ฐ ์ฑ๋ฅ ๋ฌธ์ ์ ๊ฐ์ด ์ค์ ์๋๋ฆฌ์ค์์๋ง ๋ฐ๊ฒฌํ ์ ์๋ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋๋ค. ๋ํ ์์คํ ์ด ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ณ ์ฌ์ฉ์ ๊ด์ ์์ ์์๋๋ก ์๋ํ๋ค๋ ํ์ ์ ์ ๊ณตํ๋ค.
Headless Chrome
ํค๋๋ฆฌ์ค ํฌ๋กฌ์ ๊ฐ๋ฐ์๊ฐ ํค๋๋ฆฌ์ค ํ๊ฒฝ, ์ฆ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ GUI ์์ด ๊ตฌ๊ธ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํํ ์ ์๋ ๋๊ตฌ๋ค. ๊ฐ๋ฐ์๋ ๋ธ๋ผ์ฐ์ ์ ์๋์ผ๋ก ์ํธ ์์ฉํ ํ์ ์์ด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ํ ์คํธ, ์น ์คํฌ๋ํ ๋ฐ ๊ธฐํ ์์ ์ ์ํํ ์ ์๋ค.
ํค๋๋ฆฌ์ค ํฌ๋กฌ์ ์๋ฐ์คํฌ๋ฆฝํธ, CSS, HTML5 ์ง์ ๋ฑ ์ผ๋ฐ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์ ๋์ผํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ํ์ง๋ง ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ชจ๋์์ ์๋ํ๋ฉฐ JavaScript, Python, Ruby ๋ฑ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ดํ ์ ์๋ค.
ํค๋๋ฆฌ์ค ํฌ๋กฌ์ ์ฌ์ฉํ๋ฉด ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ํ ์คํธ, ํฅ์๋ ํ์ฅ์ฑ ๋ฐ ์์ ์ฑ ๋ฑ์ ์ด์ ์ด ์๋ค. ๋ฆฌ๋ ์ค ์๋ฒ, ๋์ปค ์ปจํ ์ด๋, ํด๋ผ์ฐ๋ ํ๋ซํผ ๋ฑ ๋ค์ํ ํ๊ฒฝ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค.
ํค๋๋ฆฌ์ค ํฌ๋กฌ์ ์ธ๊ธฐ ์๋ ์ฌ์ฉ ์ฌ๋ก ์ค ํ๋๋ ์๋ํ๋ ํ ์คํธ๋ค. ๊ฐ๋ฐ์๋ Puppeteer ๋๋ Selenium WebDriver์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์น ํ์ด์ง ํ์, ์์ ์์ฑ, ๋ฒํผ ํด๋ฆญ ๋ฑ ๋ธ๋ผ์ฐ์ ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ํธ ์์ฉํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์๋ค. ์ด๋ฌํ ์คํฌ๋ฆฝํธ๋ ์ง์์ ํตํฉ ํ๊ฒฝ์์ ์คํํ๊ฑฐ๋ ๋๊ท๋ชจ ํ ์คํธ ์ค์ํธ์ ์ผ๋ถ๋ก ์คํํ ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ด๊ธฐ์ ๋ฌธ์ ๋ฅผ ํ์ ํ ์ ์๋ค.
ํค๋๋ฆฌ์ค ํฌ๋กฌ์ ๋ ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๋ ์น ์คํฌ๋ํ๋ค. ๊ฐ๋ฐ์๋ Cheerio ๋๋ BeautifulSoup๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์น ํ์ด์ง์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ผ์ ์ ์ฅํ ์ ์๋ค. ํค๋๋ฆฌ์ค ํฌ๋กฌ์ ๋์ ์ฝํ ์ธ ๋ฅผ ๋ก๋ํ๊ณ JavaScript๋ฅผ ์คํํ๋ฉฐ DOM์ ์กฐ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ๊ธฐ์กด ์น ์คํฌ๋ํ ๊ธฐ์ ๋ก๋ ์ก์ธ์คํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์๋ค.
Puppeteer
Puppeteer๋ ํค๋๋ฆฌ์ค ํฌ๋กฌ ๋๋ ํฌ๋กฌ์ ์ ์ดํ๊ธฐ ์ํ ์์ ์์ค์ API๋ฅผ ์ ๊ณตํ๋ Google์์ ๊ฐ๋ฐํ Node.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์น ํ์ด์ง์ ์ํธ ์์ฉํ๊ณ , ์ฌ์ฉ์ ์ํธ์์ฉ์ ์๋ํํ๊ณ , ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์ด๋ ๋ธ๋ผ์ฐ์ ํ ์คํธ, ์น ์คํฌ๋ํ ๋ฐ ๊ธฐํ ์์ ์ ์ํํ ์ ์๋ค.
Puppeteer๋ ๊ฐ๋ฐ์๊ฐ ์นํ์ด์ง ํ์, ์คํฌ๋ฆฐ์ท ์ฐ๊ธฐ, PDF ์์ฑ, ์ฌ์ฉ์ ์ ๋ ฅ ์๋ฎฌ๋ ์ด์ , ์นํ์ด์ง์์ ๋ฐ์ดํฐ ์ถ์ถ ๋ฑ ํค๋๋ฆฌ์ค ํฌ๋กฌ์ ์ ์ดํ๊ณ ์กฐ์ํ ์ ์๋ ์ผ๋ จ์ API๋ฅผ ์ ๊ณตํ๋ค.
Puppeteer์ ์ฃผ์ ๊ธฐ๋ฅ
ํค๋๋ฆฌ์ค ์คํ: Puppeteer๋ฅผ ์ฌ์ฉํ๋ฉด ํค๋๋ฆฌ์ค ๋ชจ๋๋ก Chrome์ ์คํํ ์ ์์ผ๋ฏ๋ก GUI ์์ด๋ ์๋ํ๋ ์์ ์ ์ํํ ์ ์๋ค. ๋ฐ๋ผ์ ์น ์คํฌ๋ํ, ํ ์คํธ, ์น ์ํธ ์์ฉ ์๋ํ์ ๊ฐ์ ์์ ์ ์ด์์ ์ด๋ค.
๋ธ๋ผ์ฐ์ ์ ๋ํ ์์ ํ ์ ์ด: Puppeteer๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ฅผ ์์ ํ ์ ์ดํ ์ ์์ผ๋ฏ๋ก ์๋์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ธ๋ผ์ฐ์ ์ ์ํธ ์์ฉํ ์ ์๋ค.
๊ณ ๊ธ API: Puppeteer๋ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ๊ธฐ๋ณธ Chrome ๊ฐ๋ฐ์๋๊ตฌ ํ๋กํ ์ฝ ์์ ์ ๋ณต์ก์ฑ์ ์ถ์ํํ ์์ ์์ค API๋ฅผ ์ ๊ณตํ๋ค.
ํธํ์ฑ: Puppeteer๋ Windows, macOS, Linux๋ฅผ ํฌํจํ ๋ชจ๋ ์ฃผ์ ์ด์์ฒด์ ์ ํธํ๋๋ค.
๋๋ฒ๊น ๊ธฐ๋ฅ: Puppeteer๋ ์คํฌ๋ฆฐ์ท ๋ฐ PDF ์์ฑ์ ํฌํจํ ๋ค์ํ ๋๋ฒ๊น ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ๋์์ ์ค๋ค.
Puppeteer์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
์๋ํ๋ ํ ์คํธ: Puppeteer๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์๋ํ๋ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ฐ ์ด์์ ์ด๋ค. ์น ํ์ด์ง์ ์ํธ ์์ฉํ๊ณ , ์ฌ์ฉ์ ์ ๋ ฅ์ ์๋ฎฌ๋ ์ด์ ํ๊ณ , ๋๋ฒ๊น ์ ๋์์ด ๋๋ ์คํฌ๋ฆฐ์ท์ ์บก์ฒํ๊ธฐ ์ํ API๋ฅผ ์ ๊ณตํ๋ค.
์น ์คํฌ๋ํ: Puppeteer๋ ์น์ฌ์ดํธ์์ ๋ฐ์ดํฐ๋ฅผ ์คํฌ๋ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค. ์น ํ์ด์ง๋ก ์ด๋ํ๊ณ , DOM์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ , ํ์ผ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ API๋ฅผ ์ ๊ณตํ๋ค.
์๋ํ๋ UI ํ ์คํธ: Puppeteer๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์๋ํ๋ UI ํ ์คํธ๋ฅผ ์ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค. ๋ฒํผ ํด๋ฆญ ๋ฐ ์์ ์์ฑ๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํ API๋ฅผ ์ ๊ณตํ๋ค.
Playwright
Playwright๋ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ํํ๊ณ ํ ์คํธํ๊ธฐ ์ํ ์์ ์์ค API๋ฅผ ์ ๊ณตํ๋ Microsoft์์ ๊ฐ๋ฐํ ์คํ ์์ค Node.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Chromium, Firefox, WebKit ๊ธฐ๋ฐ ๋ธ๋ผ์ฐ์ (Safari ๋ฐ Edge)๋ฅผ ์ง์ํ๋ค. Playwright๋ ๊ธฐ์กด ํ ์คํธ ํ๋ ์์ํฌ์ ๋นํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์์ ์ ์ด๊ณ ๋น ๋ฅด๊ฒ ํ ์คํธํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์๋ค.
Playwright๋ ๊ฐ๋ฐ์๊ฐ ๋ธ๋ผ์ฐ์ ์๋ํ, ์น ์คํฌ๋ํ ๋ฐ ํ ์คํธ์ ๊ฐ์ ์์ ์ ์ํํ ์ ์๋ ์ผ๋ จ์ API๋ฅผ ์ ๊ณตํ๋ค.
Playwright์ ์ฃผ์ ๊ธฐ๋ฅ
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํ ์คํธ: Playwright๋ ํฌ๋กฌ, ํ์ด์ดํญ์ค, ์นํท ๊ธฐ๋ฐ ๋ธ๋ผ์ฐ์ ๋ฑ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ๋ฏ๋ก ์ฌ๋ฌ ํ๋ซํผ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ ์ ์๋ค.
์๋: Playwright๋ ํ ์คํธ ์คํ ์๋๋ฅผ ๋์ผ ์ ์๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ฐ ์ค๋งํธ ๋๊ธฐ ๋ฉ์ปค๋์ฆ์ด ๋ด์ฅ๋์ด ์์ด ๊ธฐ์กด ํ ์คํธ ํ๋ ์์ํฌ๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์ค๊ณ๋์๋ค.
์ ๋ขฐ์ฑ: Playwright๋ ํ ์คํธ ์คํจ ์ ์๋ ์ฌ์๋, ์๋ ์ค๋ฅ ๊ฐ์ง ๋ฐ ๋๋ฒ๊น ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํตํด ์์ ์ฑ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์๋ค.
ํ์ด๋ ๋ฒจ API: Playwright๋ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ ํ๋กํ ์ฝ ์์ ์ ๋ณต์ก์ฑ์ ์ถ์ํํ ํ์ด๋ ๋ฒจ API๋ฅผ ์ ๊ณตํ๋ค.
ํค๋ฉ ๋ฐ ํค๋๋ฆฌ์ค ๋ชจ๋: Playwright๋ ํค๋ฉ ๋ชจ๋์ ํค๋๋ฆฌ์ค ๋ชจ๋๋ฅผ ๋ชจ๋ ์ง์ํ๋ฏ๋ก ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์๊ณ ํ ์คํธ๋ฅผ ์ํํ ์ ์๋ค.
Playwright์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
์๋ํฌ์๋ ํ ์คํธ: Playwright๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์๋ํฌ์๋ ํ ์คํธ๋ฅผ ์์ฑํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ๋ฌ ํ๋ซํผ์์ ์์๋๋ก ์๋ํ๋์ง ํ์ธํ ์ ์๋ค.
์น ์คํฌ๋ํ: Playwright๋ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ์ฌ ์น ์ฌ์ดํธ์์ ๋ฐ์ดํฐ๋ฅผ ์คํฌ๋ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๊ธฐ์กด ์คํฌ๋ํ ๋๊ตฌ๋ก๋ ์คํฌ๋ํํ๊ธฐ ์ด๋ ค์ด ์ฌ์ดํธ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์คํฌ๋ํํ ์ ์๋ค.
์๋ํ๋ UI ํ ์คํธ: Playwright๋ ํค๋๋ฆฌ์ค ๋ชจ๋์ ํค๋ฉ ๋ชจ๋๋ฅผ ์ง์ํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ UI ํ ์คํธ๋ฅผ ์๋ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ ์ฝ๊ฒ ํ ์คํธํ ์ ์๋ค.
CodeceptJS
CodeceptJS๋ WebDriverIO, Puppeteer, Playwright์ ๊ฐ์ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ Node.js์ฉ ์ต์ ์๋ํฌ์๋ ํ ์คํธ ํ๋ ์์ํฌ๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์๋ํ๋ ํ ์คํธ๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ๋ฅ๋ฅ ํํ๋๋ก ์ค๊ณ๋์๋ค. CodeceptJS๋ ๊ฐ๋จํ๊ณ ๊ฐ๋ ฅํ ๊ตฌ๋ฌธ์ ์ ๊ณตํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์์ฐ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ์์ฑํ ์ ์๋ค.
CodeceptJS์ ์ฃผ์ ๊ธฐ๋ฅ
์ฌ์ด ์ฌ์ฉ: CodeceptJS๋ ํ ์คํธ๋ฅผ ์ฝ๊ฒ ์์ฑํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์๋ ๊ฐ๋จํ๊ณ ๊ฐ๋ ฅํ ๊ตฌ๋ฌธ์ผ๋ก ์ฌ์ฉ๊ณผ ํ์ต์ด ์ฝ๋ค.
์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์: CodeceptJS๋ WebDriverIO, Puppeteer, Playwright์ ๊ฐ์ ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ํ๋ฏ๋ก ๋ค์ํ ์ ํ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ํ ์คํธ๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋ค.
์ธ๊ธฐ ๋๊ตฌ์ ํตํฉ: CodeceptJS๋ Mocha, Chai, TypeScript์ ๊ฐ์ ์ธ๊ธฐ ๋๊ตฌ์ ํตํฉ๋์ด ๊ธฐ์กด ๊ฐ๋ฐ ์ํฌํ๋ก์ ํ ์คํธ๋ฅผ ์ฝ๊ฒ ํตํฉํ ์ ์๋ค.
๋นํธ์ธ ํฌํผ: CodeceptJS๋ ์์๊ณผ์ ์ํธ ์์ฉ, ๋ฒํผ ํด๋ฆญ, ํ์ด์ง ๊ฐ ํ์๊ณผ ๊ฐ์ ์์ ์ ๊ฐ์ํํ๋ ๋ค์ํ ๊ธฐ๋ณธ ์ ๊ณต ํฌํผ๋ฅผ ์ ๊ณตํ๋ค.
๋ณ๋ ฌ ์คํ: CodeceptJS๋ ํ ์คํธ์ ๋ณ๋ ฌ ์คํ์ ์ง์ํ๋ฏ๋ก ํ ์คํธ๋ฅผ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์คํํ ์ ์๋ค.
๊ฐ๋ ฅํ ๋ณด๊ณ : CodeceptJS๋ ์คํฌ๋ฆฐ์ท๊ณผ ์์ธํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํฌํจํ์ฌ ํ ์คํธ ์ํ๋ฅผ ์ฝ๊ฒ ์ถ์ ํ ์ ์๋ ๊ฐ๋ ฅํ ๋ณด๊ณ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
CodeceptJS์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
์๋ํฌ์๋ ํ ์คํธ: CodeceptJS๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ํฌ์๋ ํ ์คํธ๋ฅผ ์ํด ์ค๊ณ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ ํ๋ซํผ์์ ์์๋๋ก ์๋ํ๋์ง ํ์ธํ ์ ์๋ค.
์๋ํ๋ UI ํ ์คํธ: CodeceptJS๋ ์์ ์ ์ถ, ๋ฒํผ ํด๋ฆญ, ํ์๊ณผ ๊ฐ์ UI ํ ์คํธ ์์ ์ ์ฝ๊ฒ ์๋ํํ ์ ์๋ ๋ค์ํ ๋นํธ์ธ ํฌํผ๋ฅผ ์ ๊ณตํ๋ค.
ํตํฉ ํ ์คํธ: ํตํฉ ํ ์คํธ์ CodeceptJS๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ํธ ์์ฉ์ ํ ์คํธํ ์ ์๋ค.
API ํ ์คํธ: CodeceptJS๋ SuperTest์ ๊ฐ์ ์ธ๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ํ์ฌ API ํ ์คํธ์๋ ์ฌ์ฉํ ์ ์๋ค.
Last updated