1. Ưu tiên sử dụng Element Repository thay vì Hardcode
Đây là nguyên tắc quan trọng nhất để đảm bảo khả năng bảo trì lâu dài.
- Không viết trực tiếp XPath: Tránh nhập trực tiếp giá trị XPath vào trường value khi cấu hình keyword.
- Sử dụng Repository Element: Luôn chọn kiểu dữ liệu là Repository Element để tham chiếu đến phần tử trong kho lưu trữ.
- Lợi ích: Khi thuộc tính phần tử thay đổi (ví dụ: dev đổi ID), bạn chỉ cần cập nhật tại một nơi (Repository), hệ thống sẽ tự động đồng bộ sang tất cả Test Script đang sử dụng phần tử đó.
2. Chiến lược chọn thuộc tính định danh (Locator Strategy)
Để tránh lỗi "Element not found" và đảm bảo tính duy nhất của phần tử:
- Sử dụng thuộc tính đặc trưng: Ưu tiên các thuộc tính ít thay đổi như id, name, text (nếu text cố định).
- Kết hợp nhiều thuộc tính: Nếu một thuộc tính không đủ để định danh duy nhất, hãy cấu hình locator sử dụng từ hai thuộc tính trở lên trong công thức XPath để đảm bảo độ chính xác.
- Tuân thủ cấu trúc chuẩn: Với các element đặc biệt cần viết tay, hãy tuân thủ cấu trúc chuẩn:
//Element[@tag attribute='value'].
3. Xử lý phần tử động (Dynamic Elements)
Đối với các phần tử có XPath thay đổi dựa theo dữ liệu đầu vào (ví dụ: chọn một mệnh giá tiền cụ thể, chọn một tên người dùng cụ thể trong danh sách):
- Không Hardcode giá trị: Không tạo nhiều element riêng biệt cho từng giá trị (ví dụ: không tạo riêng nút 30k, nút 50k).
- Sử dụng biến (Variable) trong XPath: Tạo XPath động bằng cách chèn biến vào chuỗi XPath.
-
Ví dụ: Thay vì ...[@value='30,000'], hãy cấu hình thành ...[@value='{menh_gia}']
-
- Sử dụng Custom Element: Sử dụng tính năng Custom element để truyền giá trị động (variable) vào các thuộc tính như text hoặc resource-id ngay lúc cấu hình bước test.
4. Tổ chức Kho lưu trữ (Repository Structure)
Cách tổ chức kho ảnh hưởng trực tiếp đến tốc độ tìm kiếm và tránh trùng lặp:
- Phân cấp theo luồng nghiệp vụ: Tổ chức thư mục (Repository/Child Repository) theo từng màn hình hoặc chức năng cụ thể (ví dụ: Thư mục Login, Thư mục Dashboard).
- Tách biệt nền tảng: Tạo các thư mục cha riêng biệt cho từng nền tảng như ANDROID, IOS, WEB.
- Kho dùng chung (Common Repository): Tạo riêng một kho cho các phần tử xuất hiện lặp lại ở nhiều nơi (như Popup, nút Back, Header) để tái sử dụng hiệu quả.
- Đặt tên gợi nhớ: Tên Element nên đặt theo chức năng hoặc tên hiển thị trên UI (ví dụ: btn_dang_nhap) để dễ tìm kiếm.
5. Tận dụng công cụ Smart Locator & Template
Thay vì soi (inspect) và viết XPath thủ công từng cái, hãy dùng công cụ để chuẩn hóa:
- Sử dụng Element Template: Định nghĩa trước các công thức tìm kiếm (ví dụ: by_id, by_text) trong Template. Điều này đảm bảo toàn bộ team dự án đều dùng chung một chuẩn XPath.
- Quét bằng Smart Locator: Sử dụng Smart Locator để quét hàng loạt. Công cụ này giúp chụp ảnh màn hình (capture image) đính kèm element, giúp Tester dễ dàng nhận diện vị trí phần tử một cách trực quan sau này.