posts

E2E 코딩 컨벤션 가이드

Apr 23, 2026 updated Apr 23, 2026 authbrowserconventionse2e

해당 문서는 E2E 코딩 컨벤션을 다루는 문서입니다.

[폴더 구조]

폴더/파일

설명

test

테스트에 필요한 폴더 및 파일을 추가합니다.

|> issues

제너레이터로 만든 테스트 코드를 추가합니다.

|> Lgcc-520.ts

지라 이슈에 해당 하는 테스트 코드를 추가 합니다.

|> scenarios

QA팀으로부터 전달받은 사용자 시나리오를 작성한 파일을 추가합니다.

|> Life-main.spec.ts

  • .spec.ts 형식으로 파일명을 작성합니다.

|> pages

시나리오에서 필요한 페이지들이 클래스 파일로 추가합니다.

|> LoginPage.ts

|> DashboardPage.ts

  • Page.ts 형식으로 파일명을 작성합니다.

|> data.ts

상수 데이터값들을 추가합니다.

[페이지 폴더의 클래스 파일 구조]

  • 필드 :해당 페이지에서 사용하는 요소를 정의합니다.

  • 생성자 :필드에 값을 주입합니다.

  • 메소드 :해당 페이지에서 사용하는 행동을 정리합니다.

import { Locator, Page } from '@playwright/test'; export class DashboardPage { private readonly page: Page; private readonly addProjectBtn: Locator; constructor(page: Page) { this.page = page; this.addProjectBtn = page.locator(`button[data-id="project_add_button"]`); } async clickAddProjectButton() { await this.addProjectBtn.click(); } async modifyProject(projectName: string) { const row = this.page.locator(`//tr[.//span[contains(text(), "${projectName}")]]`); const modifyBtn = row.locator(`//button[.//span[contains(text(), "수정")]]`); await modifyBtn.click(); } }

[시나리오 작성]

  • 페이지매니저 클래스 인스턴스 생성

  • 필요한 페이지 클래스 인스턴스를 생성

  • 필요한 행동 메소드 호출

/** * SuperAdmin 권한 계정으로 로그인 * 1.(주)애플 의 인사 관리 시스템 개선 과제에 제안하기로 했다. * 2. 그래서 HRMS에 프로젝트를 생성한다. * 3. PM팀에 문의 하여 아래와 같은 정보를 얻는다. * - PM : 이정기hrms_pm기간 : 2024년 3월 1일 ~ 2024년 3월 14일 * 4. 투입인력은 아직 모른다 하여 PM 만 입력 하고, PM 에게 프로젝트 생성 했다고 공유한다. */ test('01 - 어드민 로그인 후 HRMS에 프로젝트 생성', async ({ page }) => { const pageManager = new PageManager(page); const loginPage = pageManager.getLoginPage(); await loginPage.go(); await loginPage.authenticate(LOGIN_EMAIL.SUPER_ADMIN, LOGIN_PASSWORD); const dashboardPage = pageManager.getDashboardPage(); await dashboardPage.clickAddProjectButton(); const projectAddPage = pageManager.getProjectAddPage(); await projectAddPage.fillProjectInfo(PROJECT_INFO); await projectAddPage.submit(); });

[참고 자료]

[샘플 깃랩 주소]