import { test, expect, Page } from '@playwright/test';
test.describe('Login Page', () => {
test('이메일 형태 미입력', async ({ page }: { page: Page }) => {
await page.goto('/', { timeout: 120000 });
await page.getByPlaceholder('입력').fill('abcd');
await page.locator("[type=submit]").click();
// 로그인 에러 메시지 검증
await expect(page.getByText('이메일 형식을 확인해주세요.')).toBeVisible();
});
test('존재하지 않는 이메일', async ({ page }: { page: Page }) => {
const unregistered = 'playwright@microsoft.com'
await page.goto('/', { waitUntil: 'networkidle', timeout: 120000 });
await page.getByPlaceholder(PAGE_TEXT.PLACEHOLDER).fill(unregistered);
await page.locator("[type=submit]").click();
// 로그인 에러 메시지 검증
await expect(page.getByRole('heading', { name: '로그인 에러' })).toBeVisible();
await expect(page.getByText('존재하지 않는 계정입니다.')).toBeVisible();
});
test('유효한 사용자 로그인 시도 @smoke', async ({ page }: { page: Page }) => {
const registered = 'testAccount@test.com'
await page.goto('/', { waitUntil: 'networkidle', timeout: 120000 });
await page.getByPlaceholder(PAGE_TEXT.PLACEHOLDER).fill(registered);
await page.locator('[type=submit]').click();
await expect(page).toHaveURL('/dashboard');
});
})
test 설명에 @smoke 등 filter 할만한 문구를 넣은 후에
npx playwright test --grep @smoke
를 실행하면 @smoke로 되어있는것만 실행한다.
위에 대로라면 유효한 사용자 로그인 시도만 하겠지? 전체 테스트에서 regression 또는 간단하게 smoke 형태로 지정해서 하면 좋을 듯.
728x90
'Automation > Playwright' 카테고리의 다른 글
toHaveScreenshot (0) | 2024.08.01 |
---|---|
Fixtures (2) | 2024.07.24 |
Playwright - Page Object Model (0) | 2024.06.29 |
Playwright (0) | 2024.06.25 |