Bỏ qua

Bài Tập 3: Viết Test dùng POM

Yêu Cầu

Viết test case sử dụng Page Object đã tạo ở bài tập 1 và 2.

Hướng Dẫn

Bước 1: Import Page Object

import { test, expect } from '@playwright/test';
import { LoginPage } from '../pages/LoginPage';
import { ShopPage } from '../pages/ShopPage';

Bước 2: Viết test flow hoàn chỉnh

// tests/full-flow.spec.ts
import { test, expect } from '@playwright/test';
import { LoginPage } from '../pages/LoginPage';
import { ShopPage } from '../pages/ShopPage';

test('test full flow: login and search product', async ({ page }) => {
  // 1. Login
  const loginPage = new LoginPage(page);
  await loginPage.goto();
  await loginPage.login('_______________', '_______________');
  await loginPage.expectLoginSuccess();

  // 2. Tìm kiếm sản phẩm
  const shopPage = new ShopPage(page);
  await shopPage.goto();
  await shopPage.searchProduct('_______________');
  await shopPage.expectProductVisible('_______________');
});

Bước 3: Chạy test

npx playwright test tests/full-flow.spec.ts

Checklist

□ Import Page Object đúng
□ Sử dụng method của Page Object
□ Flow hoạt động đúng
□ Test pass

Gợi Ý

Click để xem solution
// tests/full-flow.spec.ts
import { test, expect } from '@playwright/test';
import { LoginPage } from '../pages/LoginPage';
import { ShopPage } from '../pages/ShopPage';

test('test full flow: login and search product', async ({ page }) => {
  // 1. Login
  const loginPage = new LoginPage(page);
  await loginPage.goto();
  await loginPage.login('testuser123', 'Test@123456');
  await loginPage.expectLoginSuccess();

  // 2. Tìm kiếm sản phẩm
  const shopPage = new ShopPage(page);
  await shopPage.goto();
  await shopPage.searchProduct('Android');
  await shopPage.expectProductVisible('Android');
});

Nộp Bài

  • [ ] File test hoàn chỉnh
  • [ ] Test pass