BÁO CÁO MÔN KIỂM THỬ CƠ BẢN ĐỀ TÀI: TÌM HIỂU VỀ ROBOT FRAMEWORK Giảng viên: Thầy Trần Sơn Hải TP Hồ Chí Minh, ngày 10 tháng 11 năm 2020 MỤC LỤC I. GIỚI THIỆU ROBOT FRAMEWORK 1 1. Khái niệm 1 2. Ưu điểm 1 3. Các thư viện hỗ trợ trong Robot Framework 1 II. CÁCH CÀI ĐẶT 3 1. Cài đặt Python 3 2. Cài đặt Robot Framework 4 3. Cài đặt Robot Framework RIDE 4 4. Cài đặt Selenium2Library 5 III. CÁCH SỬ DỤNG ROBOT FRAMEWORK VỚI RIDE 6 1. Cơ bản về Ride 6 2. Keyword driven và data driven trong test case 9 a) Keyword driven 10 b) Data driven 11 3. Làm việc với trình duyệt sử dụng thư viện selenium2Library 12 4. Làm việc với biến 15 a) Scalar variable 15 b) List variable 16 c) Dictionary variable 18 5. Làm việc với textbox 19 6. Làm việc với radio button 20 7. Làm việc với Checkbox 21 8. Làm việc với Dropdown 22 9. Làm việc với keyword 23 IV. DEMO THỰC HÀNH 25 1. Demo login thành công 27 2. Demo test case login failed 29 3. Demo kiểm tra đường link 31 I. GIỚI THIỆU ROBOT FRAMEWORK 1. Khái niệm – Robot Framework là một công cụ kiểm thử tự động mã nguồn mở, cung cấp nền tảng kiểm thử cho tester dựa trên ngôn ngữ lập trình Python. Nó giao tiếp giữa data và thư viện hỗ trợ, cách tiếp cận của nền tảng kiểm thử này là hướng từ khóa (keyword driven) và hướng dữ liệu (data driven). – Robot Framework cung cấp hỗ trợ cho các thư viện, các công cụ có mã nguồn mở và có thể được sử dụng cho tự động hóa. Thư viện phổ biến nhất được sử dụng là Selenium dùng để phát triển web và kiểm thử giao diện người dùng. 2. Ưu điểm – Cú pháp rõ ràng dễ hiểu, gần giống với ngôn ngữ tiếng Anh, các từ khóa và đối số được phân cách bởi 4 kí tự trống, các từ khóa được định nghĩa khá giống với ngôn ngữ lập trình Python khi sử dụng 4 dấu cách để phân chia. – Linh hoạt, có thể mở rộng các chức năng thông qua các module Python hoặc Java. – Report rõ ràng, chi tiết.
GIỚI THIỆU ROBOT FRAMEWORK
Khái niệm
Robot Framework là một công cụ kiểm thử tự động mã nguồn mở, được xây dựng trên nền tảng ngôn ngữ lập trình Python Công cụ này hỗ trợ tester trong việc kiểm thử thông qua giao tiếp giữa dữ liệu và các thư viện hỗ trợ, với phương pháp tiếp cận chủ yếu là hướng từ khóa và hướng dữ liệu.
Robot Framework hỗ trợ nhiều thư viện và công cụ mã nguồn mở, rất hữu ích cho tự động hóa Thư viện phổ biến nhất trong số đó là Selenium, được sử dụng rộng rãi để phát triển web và kiểm thử giao diện người dùng.
Ưu điểm
Cú pháp rõ ràng và dễ hiểu, tương tự như ngôn ngữ tiếng Anh, với các từ khóa và đối số được phân cách bởi 4 ký tự trống Các từ khóa được định nghĩa gần giống với cách phân chia trong ngôn ngữ lập trình Python, sử dụng 4 dấu cách để tạo sự phân biệt rõ ràng.
– Linh hoạt, có thể mở rộng các chức năng thông qua các module Python hoặc Java.
– Report rõ ràng, chi tiết.
– Được hỗ trợ bởi đa số các trình editor và có RIDE hỗ trợ (Robot framework IDE).
– Có khả năng chạy trên nhiều hệ điều hành khác nhau mà không cần chỉnh sửa kịch bản kiểm thử hoặc các từ khóa ở tầng dưới.
– Các kịch bản kiểm thử được viết dựa trên các từ khóa mà không cần quan tâm đến các thuật toán lập trình cơ bản nhất.
Các thư viện hỗ trợ trong Robot Framework
– Có rất nhiều thư viện hỗ trợ cho việc kiểm thử tự động trong Robot Framework như là: String, SeleniumLibrary, Eclipse Library, Database Library…( https://robotframework.org/#libraries )
– Trong nội dung này sẽ tập trung giới thiệu thư viện phổ biến nhất đó là Selenium2Library.
Hình 1: Các thư viện tiêu chuẩn
Hình 2: Các thư viện bên ngoài
CÁCH CÀI ĐẶT
Cài đặt Python
– Để cài đặt Python, truy cập trang web chính thức của Python ( https://www.python.org/downloads/ ) và tải xuống phiên bản theo hệ điều hành của bạn.
Hình 4: Trang chủ download Python
Sau khi tải xuống, bạn hãy nhấp đúp vào file python.exe và làm theo hướng dẫn để cài đặt Python trên hệ thống Sau khi cài đặt hoàn tất, mở cmd và kiểm tra phiên bản Python bằng lệnh “python version” Nếu kết quả hiển thị giống như hình minh họa, bạn đã cài đặt Python thành công.
Hình 5: Kiểm tra version của python
Cài đặt Robot Framework
– Sau khi cài đặt Python thành công, mở cmd và dùng lệnh “ pip install robotframework ” để cài đặt Robot Framework.
Hình 6: Cài đặt Robot Framework
– Kiểm tra cài đặt bằng lệnh “ robot - -version ”:
Hình 7: Kiểm tra cài đặt Robot Framework
Cài đặt Robot Framework RIDE
– RIDE là một IDE để xây dựng kiểm thử bằng cách sử dụng Robot
Framework ( ngoài RIDE ra, có thể thay thế bằng SublimeText, IntelliJ hay Eclipse, ).
– Mở cmd và gõ lệnh “ pip install robotframework-ride ”:
Hình 8: cài đặt Robot Framework RIDE
Cài đặt Selenium2Library
– Selenium2Library là ngôn ngữ rất sát với ngôn ngữ thực tế của người dùng, bạn mong muốn action gì bạn chỉ cần gõ từ khóa tương ứng.
– input text: nhập chuỗi ký tự
– double click element: nhấp đôi chuột vào element
– get alert message: lấy giá trị của thông báo
– open context menu: mở các menu con
– Để làm việc với thư viện này, mở cmd và gõ lệnh “ pip install robotframework-selenium2library ”:
Hình 9: Cài đặt Selenium2Library
CÁCH SỬ DỤNG ROBOT FRAMEWORK VỚI RIDE
Cơ bản về Ride
– Để khởi động ride có 2 cách, mở cmd gõ “ride.py” hoặc click biểu tượng shotcut của RIDE trên desktop.
– Tạo dự án mới: Vào File và nhấp vào New Project, màn hình sau sẽ xuất hiện:
Hình 10: Hộp thoại thông tin new project
Nhập tên dự án và chọn vị trí lưu trữ, dự án có thể được lưu dưới dạng tệp hoặc thư mục với các định dạng như ROBOT, TXT, TSV, và HTML.
Hình 11: Màn hình new project – tab edit
In the "edit" tab, as shown in Figure 11, users can input essential data required for executing test cases This includes the ability to enter libraries, resources, variables, and to add scalar values, lists, dictionaries, and metadata.
Hình 12: Màn hình Tab Text edit
Tab "text edit" cho phép bạn viết mã, và cả hai tab (tab edit và tab text edit) liên kết chặt chẽ với nhau; mọi thay đổi trong một tab sẽ tự động cập nhật trong tab còn lại.
Hình 13: Màn hình Tab Run
Khi hoàn thành test case, hãy sử dụng tab Run để thực thi Tab này cho phép bạn chạy test case với các tùy chọn như bắt đầu, dừng, tạm dừng, tiếp tục, và bước qua Ngoài ra, bạn còn có thể tạo báo cáo hoặc nhật ký cho test case đang chạy.
– Tạo test case mới bằng cách chọn new test case Hộp thoại sau đây sẽ xuất hiện để nhập tên test case mới.
Hình 14: Tạo test case mới
Hình 15: Hộp thoại nhập tên test cas
Hình 16: Màn hình test case “TC1”
– Ở hình 16, có các thuộc tính Documentation, setup, teardown, tags, timeout và Template để bạn điền thông tin cần thiết cho một test case.
– Ở hình 17, sử dụng phím tắt Ctrl + space để xem các gợi ý keyword nếu chúng ta không nhớ.
Keyword driven và data driven trong test case
– Để tạo một keyword driven, click chuột phải vào project và chọn new user keyword và điền name và arguments.
Hình 19: Name và arguments của keyword
Hình 20: Thông tin keyword driven
– Sử dụng keyword driven trong test case và có kết quả như sau:
Hình 21: Sử dụng keyword vừa tạo
Hình 22: run test case sử dụng keyword driven b) Data driven
To create a data-driven approach, start by preparing a test case Navigate to the edit tab in the template section and click the "edit" button Enter the keyword you previously created in the keyword-driven section and click "OK." Then, input the parameters you wish to pass into ${mgs} for usage.
Hình 24:Màn hình data driven
– Sử dụng data driven trong test case và kết quả:
Hình 25:Kết quả sử dụng data driven trong test case
Làm việc với trình duyệt sử dụng thư viện selenium2Library
– Sau khi cài đặt thư viện selenium2library bạn cần import thư viện vào dự án để sử dụng như sau:
Hình 26:Import thư viện vào dự án
Hình 27:Import thư viện selenium2library
Hình 28:Import thư viện thành công
Để sử dụng trình duyệt Chrome trong Robot Framework, bạn cần cài đặt trình điều khiển Chrome trước Sau khi hoàn tất cài đặt, bạn có thể bắt đầu viết các test case để thực hiện kiểm thử Trong quá trình này, bạn sẽ sử dụng hai lệnh đơn giản để tương tác với trình duyệt.
“open browser” và “close browser” như sau:
Hình 29: sử dụng lệnh của selenium2library
Hình 30: Code sử dụng lệnh của selenium2Library
Hình 31: Log của TC1 sử dụng selenium2library
Làm việc với biến
In the Robot Framework, variables are essential for storing information used in test cases or user-defined keywords There are three types of variables: scalar variables, list variables, and dictionary variables Scalar variables hold single values, making them fundamental for various testing scenarios.
Biến vô hướng có cấu trúc "${variable name}" và được sử dụng để lưu trữ chuỗi, đối tượng, danh sách, v.v Để tạo một biến vô hướng, bạn thực hiện như sau:
Hình 32: Chọn new scalar để tạo biến vô hướng
Hình 33: Điền các thông tin cho biến
Hình 34: Biến vô hướng đã được tạo
Hình 35: Áp dụng biến vô hướng vào test case b) List variable
Cấu trúc danh sách biến được định nghĩa là "${variable name}", trong đó chứa một mảng các giá trị Bạn có thể tạo và sử dụng danh sách biến một cách hiệu quả.
Hình 36: Chọn new list variable để tạo danh sách biến
Hình 37: Điền các thông tin cho list variable
Hình 38: Danh sách biến đã được tạo
Hình 39: Sử dụng danh sách biến trong test case c) Dictionary variable
Cấu trúc của biến dictionary là “&{tên biến}”, tương tự như biến list nhưng dễ sử dụng hơn trong nhiều trường hợp Biến dictionary lưu trữ các biến dưới dạng cặp key-value, cho phép người dùng ánh xạ giá trị của biến bằng cả số và key do chính họ đặt.
– Tạo một dictionary variable và sử dụng như sau:
Hình 40: Chọn new dictionary variable
Hình 41: Điền các thông tin cho dictionary variable
Hình 42: Tạo dictionary variable thành công
Hình 43: Sử dụng dictionary variable
Làm việc với textbox
– Chúng ta sẽ viết một test case có nội dung như sau:
• Open browser − URL − https://www.tutorialspoint.com/ trên Chrome
• Enter data in the search textbox in https://www.tutorialspoint.com/
Để tương tác với textbox, cần xác định vị trí của nó bằng cách sử dụng các thuộc tính như ID, name và class.
• Name: name − Nameofthetextbox hoặc name=Nameofthetextbox
• ID: id:idoftextbox hoặc id=idoftextbox
• Class: class − classfortextbox hoặc class=classfortextbox
– Bây giờ chúng ta sẽ viết test case sử dụng textbox trong ride như sau:
Hình 44: Sử dụng name textbox
Làm việc với radio button
Đối với radio button, thuộc tính name được sử dụng để xác định nhóm radio button, trong khi thuộc tính value giúp nhận diện radio button mà người dùng muốn chọn Dưới đây là đoạn mã mẫu liên quan đến radio button cùng với kết quả hiển thị.
Hình 45: Code làm việc với radio button
Hình 46: Kết quả làm của test case làm việc với radio button
Hình 47: Log của test case làm việc với radio button
Làm việc với Checkbox
– Đối với checkbox, chúng ta dùng thuộc tính name để định vị xác định được checkbox nào chúng ta muốn chọn Keyword được sử dụng cho checkbox là
“Select checkbox” Sử dụng checkbox như hình sau:
Hình 48: Code làm việc với checkbox
Hình 49: Kết quả làm của test case làm việc với checkbox
Hình 50: Log của test case làm việc với checkbox
Làm việc với Dropdown
– Đối với dropdown, thuộc tính name dùng để định vị và value để xác định được cái chúng ta muốn chọn Có 3 keyword được sử dụng cho dropdown là
“Select From List By Index” “Select From List By Label” “Select From List
By Value” và sử dụng chúng như hình sau Viết test case sử dụng 3 keywork vào trong 3 dropdown:
Hình 51: Kết quả làm của test case làm việc với dropdown
Hình 52: Code làm việc với dropdow
Hình 53: Log của test case làm việc với dropdown
Làm việc với keyword
Sau khi nhập thư viện vào dự án, chúng ta có thể sử dụng các từ khóa mà thư viện cung cấp để tương tác với trình duyệt Chúng ta sử dụng thư viện Selenium2Library để truy cập trang web của Robot Framework và xem các từ khóa mà thư viện này cung cấp.
Hình 54: Keyword của thư viện selenium2library
Để sử dụng từ khóa trong RIDE, bạn chỉ cần nhấn phím tắt Ctrl+space và nhập từ khóa để nhận gợi ý Để xem mô tả chi tiết của từ khóa, hãy di chuột vào từ khóa mong muốn; một hộp thoại hiển thị thông tin sẽ xuất hiện bên phải màn hình.
Hình 55: Mô tả chi tiết keyword “close all browser”
Ngoài các từ khóa có sẵn, người dùng có thể tạo ra các từ khóa do chính mình định nghĩa (user-defined keywords) bằng cách kết hợp các từ khóa có sẵn Ví dụ, từ khóa "open page" được định nghĩa từ từ khóa "open browser" Sau khi hoàn tất việc định nghĩa, người dùng có thể sử dụng từ khóa này như những từ khóa có sẵn trong thư viện.
Hình 56: Code định nghĩa keyword của open page
DEMO THỰC HÀNH
Demo login thành công
Hình 58: Code của test case login successful
Hình 59: Tab edit của test case login successful
Hình 60: run test case thành công
Hình 61: File report của test case login successful
Hình 62: File log của test case successful
Demo test case login failed
Hình 63: Code của test case login failed
Hình 64: Tab edit của test case login failed
Hình 65: Run test case login failed thành công
Hình 66: File log của test case login failed
Demo kiểm tra đường link
Hình 68: Code của test case TC_Data
Hình 69: Tab edit của test case TC_Data
Hình 70: Run thành công test case TC_Data