Severity: Warning
Message: file_get_contents(/home/anhtest2/public_html/application/cache/Category_model_SelectById42.cache): failed to open stream: No such file or directory
Filename: drivers/Cache_file.php
Line Number: 275
Backtrace:
File: /home/anhtest2/public_html/application/core/MY_Model.php
Line: 25
Function: get
File: /home/anhtest2/public_html/application/core/MY_Model.php
Line: 43
Function: query_cache
File: /home/anhtest2/public_html/application/controllers/frontend/Course.php
Line: 202
Function: SelectById
File: /home/anhtest2/public_html/index.php
Line: 315
Function: require_once
Severity: Notice
Message: Trying to access array offset on value of type bool
Filename: drivers/Cache_file.php
Line Number: 277
Backtrace:
File: /home/anhtest2/public_html/application/core/MY_Model.php
Line: 25
Function: get
File: /home/anhtest2/public_html/application/core/MY_Model.php
Line: 43
Function: query_cache
File: /home/anhtest2/public_html/application/controllers/frontend/Course.php
Line: 202
Function: SelectById
File: /home/anhtest2/public_html/index.php
Line: 315
Function: require_once
Xin chào các bạn, khóa học Playwright Python này nhằm hướng dẫn cho những bạn ĐÃ BIẾT CODE PYTHON đi từng bước từ cơ bản đến nâng cao. Khoá học này dùng để kiểm thử tự động trên Website và API, rất thích hợp dành cho người mới bắt đầu. Ứng dụng AI trong Test Automation với Playwright MCP. ...
✅ Hiểu rõ khái niệm Locator là gì và tầm quan trọng sống còn của nó trong Automation.
✅ Nắm vững nhóm Locator hiện đại (hướng người dùng) – vũ khí tối thượng của Playwright.
✅ Biết cách đọc mã HTML cơ bản để tự viết CSS Selector siêu tốc.
✅ Sử dụng "vũ khí bí mật" Codegen để lấy Locator tự động.
✅ Viết kịch bản tổng hợp: Tìm kiếm, nhập dữ liệu và click chuột.
🧠 Nắm vững tư duy bất đồng bộ: Hiểu rõ vì sao phải "Wait" và sự tiến hóa của các cơ chế chờ trong ngành Automation.
🛠️ Thành thạo bộ thư viện Actions: Làm chủ các thao tác tương tác Form, chuột nâng cao và phím tắt bàn phím.
⚙️ Hiểu rõ Actionability Checks: Biết cách Playwright tự động kiểm tra trạng thái phần tử trước khi hành động.
🚧 Biết cách xử lý ngoại lệ: Vận dụng các lệnh Wait chủ động khi gặp các kịch bản Single Page Application (SPA) phức tạp.
🧠 Hiểu rõ Web-First Assertions: Nắm vững cơ chế tự động thử lại (Auto-retrying) triệt tiêu lỗi Flaky.
🏗️ Áp dụng chuẩn mô hình AAA: Tổ chức cấu trúc mã nguồn test case khoa học và chuyên nghiệp.
🛠️ Làm chủ hệ thống expect: Vận dụng linh hoạt các hàm kiểm tra trạng thái hiển thị, nội dung văn bản và thuộc tính.
🪂 Kỹ thuật nâng cao: Sử dụng thành thạo Soft Assertions để tối ưu hóa việc kiểm thử giao diện (UI Testing).
✅ Hiểu được mối liên kết giữa các tầng trong POM (BasePage → Page Object → Test Layer).
✅ Nắm vững cấu trúc dự án hoàn chỉnh và ý nghĩa từng thư mục trong automation framework.
✅ Phân biệt và áp dụng được các mô-đun mở rộng trong POM: Component, Utils, Data, Config.
✅ Biết cách xây dựng dòng chảy nghiệp vụ (Business Flow) giữa các Page Object.
✅ Định hình được tư duy thiết kế framework chuyên nghiệp có khả năng mở rộng và tái sử dụng.
yield để tách biệt phần "chuẩn bị" (ví dụ: đăng nhập, tạo data) khỏi phần "dọn dẹp" (ví dụ: đăng xuất, xóa data) một cách an toàn. scope của Fixture (function, class, module, session) để quyết định khi nào cần cô lập (isolation) và khi nào cần hiệu suất (performance).✅ Xây dựng BasePage hỗ trợ tính năng nâng cao (multi-tab).
✅ Xây dựng Page Object có khả năng:
Mở tab mới
Trả về PO của tab mới
Xử lý iFrame (nếu có)
Tương tác với LocalStorage
✅ Hoàn thiện kịch bản E2E thực tế dựa trên hệ thống HRM.
✅ Củng cố mô hình Arrange – Act – Assert (AAA) và sử dụng expect trong Playwright.
✅ Thành thạo Fixtures trong pytest (cơ bản, nâng cao, nhiều scope) để tái sử dụng code setup & quản lý môi trường test.
✅ Hiểu và áp dụng Multi Tabs: mở tab mới từ click, chờ tab mới bằng context.expect_page, xây BasePage hỗ trợ.
✅ Làm chủ thao tác người dùng nâng cao:
Upload File với set_input_files()
Keyboard Actions với page.keyboard.press()
✅ Hoàn thiện kịch bản E2E tổng hợp trên hệ thống HRM kết hợp AAA + Fixtures + Multi Tabs + Upload + Keyboard.
✅ Làm chủ kỹ thuật Debug: Biết cách dùng Inspector để "chạy từng bước" và Trace Viewer để "xem lại lịch sử" khi test case thất bại.
✅ Tối ưu thời gian (Parallel Execution): Biết cách chạy song song nhiều test case cùng lúc để giảm thời gian chờ đợi từ hàng tiếng xuống hàng phút.
✅ Kiểm thử đa trình duyệt: Chạy bộ test trên cả 3 engine phổ biến (Chromium, Firefox, WebKit) chỉ với một dòng lệnh.
✅ Hiểu APIRequestContext là gì và dùng khi nào trong Playwright
✅ Biết tạo request context (baseURL, headers, auth, storageState)
✅ Thực hành gọi API: GET / POST / PUT / PATCH / DELETE
✅ Kiểm tra response: status, headers, body, schema đơn giản
✅ Viết test API bằng pytest + Playwright request
✅ Ứng dụng vào automation thực tế:
Setup dữ liệu qua API để test UI nhanh hơn
Login bằng API rồi mở UI với storageState
Verify UI bằng cách đối chiếu API (API vs UI)
✅ Hiểu bản chất HTTP Status Code
✅ Phân loại và sử dụng đúng status code trong từng tình huống
✅ Phân biệt rõ PUT vs PATCH
✅ Phân biệt chính xác 401 vs 403
✅ Áp dụng status code vào kiểm tra kết quả API một cách nhất quán
✅ Đọc response và đánh giá đúng hành vi hệ thống
✅ Nhận diện các loại Table trên UI thực tế
✅ Phân tích đặc điểm DOM & hành vi load dữ liệu của từng loại table
✅ Đọc dữ liệu table theo row / column / cell
✅ Thao tác action theo từng row (Edit / Delete / View)
✅ Xử lý Pagination / Sorting / Dynamic loading
✅ Xử lý Dropdown (native & custom)
✅ Viết hàm reusable để code ngắn gọn, ổn định, tránh flaky
QA Automation
Copyright © 2021-2026 Anh Tester Automation Testing