Hướng dẫn tích hợp và sử dụng Winium.Cruciatus cho kiểm thử UI Windows

Winium.Cruciatus là một framework mã nguồn mở được viết bằng C#, chuyên dụng cho việc tự động hóa kiểm thử giao diện người dùng (UI) của các ứng dụng chạy trên hệ điều hành Windows. Bài viết này sẽ đi sâu vào cấu trúc thư mục, các lớp cốt lõi và cách thức cấu hình dự án.

1. Phân tích cấu trúc thư mục mã nguồn

Khi tải hoặc clone kho lưu trữ của Winium.Cruciatus, bạn sẽ thấy một hệ thống thư mục được tổ chức như sau:

Winium.Cruciatus/
├── src/
│   ├── Winium.Cruciatus.Core/
│   ├── Winium.Cruciatus.Extensions/
│   └── Winium.Cruciatus.Tests/
├── tools/
│   └── UISpy/
├── .gitignore
├── CHANGELOG.md
├── LICENSE
└── README.md

Chi tiết các thành phần:

  • src/: Thư mục gốc chứa toàn bộ mã nguồn của dự án.
    • Winium.Cruciatus.Core/: Thư viện lõi, cung cấp các API cơ bản để tương tác và điều khiển các thành phần UI.
    • Winium.Cruciatus.Extensions/: Chứa các tiện ích mở rộng, giúp bổ sung thêm các hàm hỗ trợ nâng cao.
    • Winium.Cruciatus.Tests/: Tập hợp các bài kiểm thử đơn vị (unit tests) và kiểm thử tích hợp để đảm bảo chất lượng framework.
  • tools/: Chứa các công cụ hỗ trợ bên ngoài.
    • UISpy/: Công cụ giúp phân tích và xác định các phần tử UI trên màn hình, rất hữu ích khi viết script kiểm thử.
  • Các tệp cấu hình và tài liệu khác: Bao gồm .gitignore (quy tắc bỏ qua tệp khi commit Git), CHANGELOG.md (lịch sử cập nhật phiên bản), LICENSE (giấy phép mã nguồn) và README.md (tài liệu hướng dẫn tổng quan).

2. Lớp khởi chạy ứng dụng (Application Class)

Trong thư viện lõi, lớp Application đóng vai trò trung tâm trong việc khởi tạo, quản lý vòng đời và tương tác với tiến trình của ứng dụng mục tiêu.

Các phương thức và thuộc tính chính:

  • Hàm khởi tạo (Constructor): public Application(string applicationPath); - Nhận vào đường dẫn tuyệt đối hoặc tương đối của file thực thi (.exe).
  • Start(): public void Start(); - Kích hoạt tiến trình và khởi chạy ứng dụng.
  • Close(): public void Close(); - Kết thúc tiến trình và đóng ứng dụng một cách an toàn.

Ví dụ minh họa:

Đoạn mã dưới đây mô phỏng cách mở và đóng ứng dụng Notepad của Windows:

using Winium.Cruciatus.Core;

// Khởi tạo đối tượng quản lý ứng dụng Notepad
string notepadPath = @"C:\Windows\System32\notepad.exe";
Application notepadProcess = new Application(notepadPath);

// Khởi chạy Notepad
notepadProcess.Start();

// TODO: Thực thi các thao tác tự động hóa giao diện tại đây

// Đóng ứng dụng sau khi hoàn tất
notepadProcess.Close();

3. Quản lý phụ thuộc và cấu hình dự án

Winium.Cruciatus không sử dụng các tệp cấu hình XML tùy chỉnh riêng biệt cho framework, mà chủ yếu dựa vào hệ thống quản lý gói NuGet của .NET để tích hợp vào dự án kiểm thử của bạn.

Cài đặt qua NuGet:

Để đưa framework vào dự án Visual Studio, bạn có thể sử dụng Package Manager Console với lệnh:

Install-Package Winium.Cruciatus

Hoặc tìm kiếm trực tiếp trên giao diện NuGet Package Manager với từ khóa Winium.Cruciatus.

Tệp packages.config:

Sau khi cài đặt thành công, tham chiếu đến thư viện sẽ được tự động thêm vào tệp packages.config của dự án:

<packages>
  <package id="Winium.Cruciatus" version="2.10.0" targetFramework="net45" />
</packages>

Tùy chỉnh cấu hình qua App.config:

Để làm cho mã nguồn linh hoạt hơn, bạn có thể lưu trữ đường dẫn ứng dụng mục tiêu trong tệp App.config thay vì hard-code.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="TargetAppExecutable" value="C:\Windows\System32\notepad.exe" />
  </appSettings>
</configuration>

Tiếp theo, sử dụng lớp ConfigurationManager để đọc giá trị này trong mã kiểm thử:

using System.Configuration;
using Winium.Cruciatus.Core;

// Đọc đường dẫn từ App.config
string executablePath = ConfigurationManager.AppSettings["TargetAppExecutable"];

// Khởi tạo và khởi chạy ứng dụng
Application targetApp = new Application(executablePath);
targetApp.Start();

// ... Các bước kiểm thử ...

targetApp.Close();

Thẻ: Winium.Cruciatus C# UI-Automation Windows-Testing nuget

Đăng vào ngày 10 tháng 10 lúc 00:00