Bỏ qua

Bài Tập 4: Phân Tích Code Sinh Ra

Yêu Cầu

Phân tích code Playwright sinh ra từ Antigravity IDE và tìm điểm cải thiện.

Hướng Dẫn

Bước 1: Lấy code từ bài tập trước

Lấy code từ bài tập 2 (Login) hoặc bài tập 3 (Add to Cart).

Bước 2: Phân tích từng dòng code

Điền bảng phân tích:

Dòng Code Chức năng Locator Type Ổn định?
1 page.goto(...) Mở trang -
2 page.locator(...) ? ? ?
3 page.locator(...) ? ? ?
4 page.locator(...) ? ? ?
5 page.locator(...) ? ? ?

Bước 3: Đánh giá locator

Cho điểm ổn định cho mỗi locator (1-5):

[data-testid="xxx"]     → 5/5 (Rất ổn định)
[id="xxx"] (cố định)    → 4/5 (Ổn định)
[aria-label="xxx"]      → 4/5 (Accessibility-friendly)
text content            → 3/5 (Có thể thay đổi)
CSS class               → 2/5 (Có thể thay khi refactor)
XPath                   → 1/5 (Dễ gãy)

Bước 4: Tìm điểm cải thiện

Kiểm tra code có vấn đề sau không:

□ Dùng waitForTimeout() thay vì chờ element
□ Không có assertion sau khi thực hiện action
□ Locator quá dài hoặc phức tạp
□ Có thể dùng locator ngắn gọn hơn
□ Không có error handling
□ Hardcode test data trong code

Bước 5: Viết code cải thiện

// Code cải thiện (viết lại code tốt hơn)

import { test, expect } from '@playwright/test';

test('test case name', async ({ page }) => {
  // TODO: Viết code cải thiện ở đây

});

Checklist Đánh Giá Code

□ Không dùng waitForTimeout
□ Có assertion rõ ràng
□ Locator ổn định (data-testid > id > aria-label > text)
□ Code dễ đọc, có comment
□ Test data tách riêng
□ Có error handling

Nộp Bài

  • [ ] Bảng phân tích
  • [ ] Đánh giá locator
  • [ ] Code cải thiện
  • [ ] Checklist đánh giá