Mmaiqai.com
✅ Automation Testing · Chương 6 · Mục 6.2

Thêm bài test thứ 2

Sửa file tests/test_01_lien_he_co_ban.py thành đầy đủ (thêm hàm thứ 2 kiểm tra trường hợp lỗi validate):

FILE tests/test_01_lien_he_co_ban.py
"""Demo Playwright UI co ban: locator theo id, dien form, click, va web-first assertion expect(page)."""
from playwright.sync_api import Page, expect
 
BASE_URL = "https://automationintesting.online/"
 
 
def test_gui_lien_he_thanh_cong(page: Page):
"""Dien du va dung dinh dang -> trang hien thi loi cam on dung ten nguoi gui."""
page.goto(BASE_URL)
page.locator("#name").fill("Nguyen Van A")
page.locator("#email").fill("test@example.com")
page.locator("#phone").fill("0912345678901")
page.locator("#subject").fill("Hoi ve phong Suite")
page.locator("#description").fill("Toi muon hoi ve gia phong Suite trong thang toi, xin cam on.")
page.get_by_role("button", name="Submit").click()
 
expect(page.get_by_text("Thanks for getting in touch Nguyen Van A!")).to_be_visible()
 
 
def test_gui_lien_he_thieu_so_dien_thoai(page: Page):
"""So dien thoai qua ngan (9 chu so) -> trang bao loi validate ro rang, khong gui duoc."""
page.goto(BASE_URL)
page.locator("#name").fill("Nguyen Van A")
page.locator("#email").fill("test@example.com")
page.locator("#phone").fill("091234567")
page.locator("#subject").fill("Hoi ve phong Suite")
page.locator("#description").fill("Toi muon hoi ve gia phong Suite trong thang toi, xin cam on.")
page.get_by_role("button", name="Submit").click()
 
expect(page.get_by_text("Phone must be between 11 and 21 characters.")).to_be_visible()

Hàm thứ 2 giống hệt cấu trúc hàm 1, chỉ khác: số điện thoại cố tình để ngắn (9 chữ số thay vì đủ 11-21), và kiểm tra đúng dòng chữ báo lỗi validate hiển thị trên trang.

Chạy toàn bộ file:

TERMINAL
pytest tests/test_01_lien_he_co_ban.py -v

Kết quả:

KẾT QUẢ
tests/test_01_lien_he_co_ban.py::test_gui_lien_he_thanh_cong[chromium] PASSED [ 50%]
tests/test_01_lien_he_co_ban.py::test_gui_lien_he_thieu_so_dien_thoai[chromium] PASSED [100%]
 
============================== 2 passed in 7.78s ==============================

Đến đây, bạn đã hoàn thành Checkpoint 2 — khớp với commit 67665ae trên GitHub.