LỘ TRÌNH AUTOMATION THỰC HÀNH

Selenium C#
từ bài test đầu tiên đến framework

Đề cương sáu chặng đang được biên soạn. Bạn có thể xem mục tiêu, bài tập và ví dụ hiện có để chuẩn bị học C#, Selenium WebDriver và NUnit.

C# · .NET Selenium 4 NUnit
Bài test đầu tiên
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

using var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://example.com");

var heading = driver.FindElement(
    By.TagName("h1"));

Console.WriteLine(heading.Text);
driver.Quit();

Ví dụ minh họa ngắn; bài học bên dưới giải thích từng bước và cách biến thao tác thành kiểm thử có assertion.

ĐỀ CƯƠNG ĐANG BIÊN SOẠN

Lộ trình Selenium C#

Sáu chặng và 18 chủ đề dự kiến; mỗi chặng có mục tiêu và một việc bạn tự làm. Đây chưa phải 18 bài học hoàn chỉnh.

6 chặng · 18 chủ đề
01

BẮT ĐẦU

C# và môi trường kiểm thử

Chuẩn bị nền tảng vừa đủ để đọc, viết và chạy test UI.

Xem 3 bài học
  1. Automation UI giải quyết việc gì?Phân biệt kiểm thử trình duyệt với API, unit test và kiểm thử hiệu năng.
  2. C# tối thiểu cho TesterBiến, kiểu dữ liệu, điều kiện, vòng lặp, method, class và exception.
  3. Tạo NUnit projectTạo project .NET, thêm Selenium WebDriver và NUnit qua NuGet, chạy một test mẫu.
Bài tập: tạo test fixture có một test được NUnit nhận diện và chạy thành công.
02

WEBDRIVER

Điều khiển trình duyệt

Hiểu vòng đời driver và những thao tác browser dùng thường xuyên.

Xem 3 bài học
  1. Khởi tạo và đóng browserChromeDriver, cấu hình browser options, mở và kết thúc phiên đúng cách.
  2. Điều hướng và thông tin trangGoToUrl, Back, Forward, Refresh, Title và Url.
  3. WebElement cơ bảnĐọc text/attribute, nhập nội dung, click và kiểm tra trạng thái hiển thị.
Bài tập: mở trang demo được phép, xác nhận tiêu đề, rồi đóng phiên trong teardown.
03

LOCATOR & TƯƠNG TÁC

Tìm đúng phần tử

Chọn locator ổn định và thao tác đúng theo trạng thái của giao diện.

Xem 3 bài học
  1. By và các chiến lược locatorƯu tiên id/data-testid ổn định; dùng CSS hoặc XPath khi cần quan hệ DOM.
  2. FindElement và FindElementsMột phần tử đầu tiên so với danh sách; kiểm soát trường hợp không tìm thấy.
  3. Form, checkbox, radio, selectNhập liệu, chọn tùy chọn và xác minh trạng thái sau tương tác.
Bài tập: viết test form đăng ký với dữ liệu hợp lệ và một trường hợp đầu vào sai.
04

ĐỒNG BỘ & ĐIỀU HƯỚNG

Wait, alert, frame và cửa sổ

Làm chủ các tình huống thường khiến bài test chạy chập chờn.

Xem 3 bài học
  1. Explicit wait theo điều kiệnChờ phần tử xuất hiện/được click thay vì chèn thời gian ngủ cố định.
  2. Alert, tab và cửa sổ mớiChuyển ngữ cảnh, xác nhận nội dung, xử lý alert và quay lại tab ban đầu.
  3. Iframe và stale elementChuyển vào frame; tìm lại phần tử khi DOM đã thay đổi.
Bài tập: hoàn thành luồng mở tab mới, kiểm tra tiêu đề, quay lại trang ban đầu.
05

TỔ CHỨC FRAMEWORK

NUnit và Page Object Model

Tách dữ liệu, thao tác trang và mục tiêu kiểm thử để dễ đọc, dễ sửa.

Xem 3 bài học
  1. Fixture, setup và assertionVòng đời test, kiểm tra kết quả, nhóm test và thông điệp lỗi hữu ích.
  2. Thiết kế Page ObjectĐóng gói locator và hành động trang; test mô tả mục tiêu người dùng.
  3. Cấu hình và dữ liệu testQuản lý môi trường, dữ liệu độc lập và tránh ghi bí mật vào mã nguồn.
Bài tập: chia test đăng nhập thành trang LoginPage và test case có assertion rõ ràng.
06

HOÀN THIỆN

Báo cáo, chạy lại và dự án cuối

Từ test chạy trên máy cá nhân đến một bộ smoke test có thể xem lại.

Xem 3 bài học
  1. Screenshot và chẩn đoán lỗiLưu bằng chứng khi test thất bại, đọc stack trace và phân biệt lỗi app/test.
  2. Chạy nhiều browser và CIThiết lập browser options; đưa lệnh chạy test vào pipeline phù hợp.
  3. Dự án cuối khóaXây smoke suite cho website demo: tìm kiếm, form, trạng thái và báo cáo.
Đầu ra: repository có README hướng dẫn chạy, test độc lập và kết quả dễ kiểm tra.

MẪU TƯ DUY LOCATOR

Locator tốt giúp test bền hơn

Ưu tiên thuộc tính có chủ đích và ít thay đổi. Chỉ dùng XPath phức tạp khi cấu trúc trang thực sự cần quan hệ giữa các phần tử.

LoginTests.csNUnit
[Test]
public void Login_shows_validation_for_empty_email()
{
    driver.Navigate().GoToUrl(baseUrl + "/login");

    var submit = driver.FindElement(
        By.CssSelector("button[type='submit']"));
    submit.Click();

    var message = wait.Until(d =>
        d.FindElement(By.Id("email-error")));

    Assert.That(message.Text,
        Does.Contain("email"));
}

Tên locator và nội dung thông báo ở ví dụ là minh họa; hãy thay theo website demo bạn được phép kiểm thử.

NGUYÊN TẮC HỌC

Không chỉ làm cho test “xanh”

  • Assertion phải xác nhận kết quả nghiệp vụ, không chỉ kiểm tra trang đã mở.
  • Mỗi test tự chuẩn bị trạng thái và có thể chạy độc lập.
  • Ưu tiên wait theo điều kiện, tránh sleep cố định.
  • Chỉ tự động hóa hệ thống bạn có quyền truy cập và kiểm thử.

TÀI LIỆU THAM KHẢO

Học tiếp từ nguồn chính thức

Nội dung bài học do HieuIT Coaching biên soạn độc lập. Phạm vi chủ đề được đối chiếu với lộ trình Selenium C# của ToolsQA và tài liệu Selenium chính thức.

Selenium WebDriver: bắt đầu
Selenium: locator
ToolsQA: mục lục chủ đề Selenium C#

BẮT ĐẦU TỪ MỤC TIÊU CỦA BẠN

Muốn học Selenium C# theo dự án?

Thử bài locator và assertion, rồi xem dự án mô phỏng. Trao đổi với coach để xác nhận hình thức hướng dẫn.

Liên hệ HieuIT