Overview
Robot Framework là một công cụ kiểm thử tự động nguồn mở rất mạnh mẽ, được thiết kế để thực hiện acceptance testing và acceptance test-driven development (ATDD). Nó sử dụng cú pháp dựa trên từ khóa (keyword-driven testing) và hỗ trợ nhiều loại kiểm thử khác nhau như functional testing, API testing, và UI testing.
1. Cài đặt Robot Framework
Trước tiên, bạn cần cài đặt Robot Framework và các thư viện cần thiết như SeleniumLibrary để kiểm thử ứng dụng web.
Bước 1: Cài đặt Robot Framework
Robot Framework có thể cài đặt thông qua pip:
pip install robotframework
Bước 2: Cài đặt thư viện Selenium (cho kiểm thử web)
pip install robotframework-seleniumlibrary
Bước 3: Cài đặt WebDriver (Chrome hoặc Firefox)
Nếu bạn muốn chạy kiểm thử trên trình duyệt, bạn cần cài đặt WebDriver tương ứng với trình duyệt mà bạn đang dùng (ví dụ, ChromeDriver cho Chrome).
-
Cài đặt ChromeDriver:
- Tải từ: https://sites.google.com/a/chromium.org/chromedriver/
- Đặt đường dẫn của ChromeDriver vào biến môi trường PATH.
2. Cấu trúc cơ bản của Robot Framework
Một file kiểm thử của Robot Framework có dạng .robot hoặc .txt. Cấu trúc cơ bản bao gồm:
-
Settings: Định nghĩa các thư viện, từ khóa, và các biến cần thiết.
-
Variables: Khai báo các biến toàn cục.
-
Test Cases: Các kịch bản kiểm thử.
-
Keywords: Tập hợp các hành động, giúp kiểm thử có thể tái sử dụng.
Ví dụ về một file .robot đơn giản:
*** Settings ***
Library SeleniumLibrary
*** Variables ***
${BROWSER} Chrome
${URL} https://example.com
*** Test Cases ***
Test Example Website
Open Browser ${URL} ${BROWSER}
Title Should Be Example Domain
[Teardown] Close Browser
*** Keywords ***
3. Chạy kiểm thử
Bạn có thể chạy các bài kiểm thử đã viết bằng cách sử dụng dòng lệnh:
robot <ten_file>.robot
Kết quả sẽ được lưu vào 3 file:
-
log.html: Báo cáo chi tiết từng bước kiểm thử.
-
report.html: Báo cáo tổng quan.
-
output.xml: Kết quả kiểm thử dưới dạng XML.
4. Ví dụ chi tiết
Kiểm thử trang web với SeleniumLibrary
Dưới đây là ví dụ về kiểm thử tự động trên một trang web sử dụng Robot Framework và SeleniumLibrary:
*** Settings ***
Library SeleniumLibrary
Library Collections
*** Variables ***
${BROWSER} Chrome
${URL} https://example.com
*** Test Cases ***
Open Example Website
Open Browser ${URL} ${BROWSER}
Title Should Be Example Domain
Close Browser
Search in Google
Open Browser https://www.google.com ${BROWSER}
Input Text name:q Robot Framework
Click Button name:btnK
Page Should Contain Robot Framework
Close Browser
Giải thích:
-
Library SeleniumLibrary: Thư viện Selenium để thao tác với các trình duyệt web.
-
Open Browser: Mở trình duyệt và truy cập URL.
-
Title Should Be: Xác minh tiêu đề trang.
-
Input Text: Nhập văn bản vào trường tìm kiếm.
-
Click Button: Nhấp vào nút tìm kiếm.
5. Sử dụng biến trong Robot Framework
Biến trong Robot Framework có thể được khai báo trong phần Variables hoặc trực tiếp trong các test case:
*** Variables ***
${BROWSER} Chrome
${URL} https://example.com
${USERNAME} testuser
${PASSWORD} password123
*** Test Cases ***
Login Test
Open Browser ${URL} ${BROWSER}
Input Text id:username ${USERNAME}
Input Text id:password ${PASSWORD}
Click Button id:login
Close Browser
6. Tạo từ khóa tùy chỉnh (Custom Keywords)
Bạn có thể tạo các từ khóa riêng biệt để tái sử dụng trong các test case. Ví dụ:
*** Keywords ***
Login As User
[Arguments] ${username} ${password}
Input Text id:username ${username}
Input Text id:password ${password}
Click Button id:login
Sau đó, bạn có thể gọi từ khóa này trong các test case:
*** Test Cases ***
Login Test
Open Browser ${URL} ${BROWSER}
Login As User testuser password123
Close Browser
7. Báo cáo và phân tích kết quả kiểm thử
Sau khi chạy kiểm thử, Robot Framework sẽ tạo ra các báo cáo và nhật ký kiểm thử dưới dạng file HTML. Bạn có thể mở các file report.html
và log.html
để phân tích kết quả kiểm thử.
8. Tích hợp CI/CD
Robot Framework có thể được tích hợp với các hệ thống CI/CD như Jenkins, GitLab CI để tự động hóa kiểm thử khi có thay đổi mã nguồn.
Ví dụ tích hợp với Jenkins:
-
Sử dụng Robot Framework Plugin trên Jenkins để xem kết quả kiểm thử dưới dạng báo cáo.
-
Cấu hình Jenkins để chạy các file kiểm thử
.robot
sau mỗi lần build.
9. Ưu điểm của Robot Framework
-
Dễ sử dụng: Cú pháp dễ đọc, dễ hiểu ngay cả với người không chuyên lập trình.
-
Mở rộng tốt: Dễ dàng mở rộng và tùy chỉnh với các thư viện Python.
-
Tích hợp tốt: Hỗ trợ nhiều công cụ và nền tảng khác nhau, có thể dễ dàng tích hợp vào các pipeline CI/CD.
10. Tài liệu tham khảo
-
Trang chủ Robot Framework: https://robotframework.org/
-
Tài liệu SeleniumLibrary: https://robotframework.org/SeleniumLibrary/
Robot Framework là một công cụ tuyệt vời cho kiểm thử tự động, đặc biệt khi bạn cần sự linh hoạt và khả năng mở rộng cao.