1 TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MÔN CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI NGHIÊN CỨU THƯ VIỆN HỖ TRỢ KIỂM TỰ ĐỘNG SELENIUM VÀ ỨNG DỤNG VÀO XÂY DỰNG PH[.]
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MƠN CƠNG NGHỆ THƠNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU THƯ VIỆN HỖ TRỢ KIỂM TỰ ĐỘNG SELENIUM VÀ ỨNG DỤNG VÀO XÂY DỰNG PHẦN MỀM KIỂM THỬ TỰ ĐỘNG CHO WEB ATALINK Giảng viên hướng dẫn: Th.S NGUYỄN LÊ MINH Sinh viên thực hiện: TÔ VÕ NHƯ QUỲNH Lớp: CƠNG NGHỆ THƠNG TIN Khóa: 59 Tp Hồ Chí Minh, ngày 18 tháng 06 năm 2022 TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MÔN CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU THƯ VIỆN HỖ TRỢ KIỂM TỰ ĐỘNG SELENIUM VÀ ỨNG DỤNG VÀO XÂY DỰNG PHẦN MỀM KIỂM THỬ TỰ ĐỘNG CHO WEB ATALINK Giảng viên hướng dẫn: Th.S NGUYỄN LÊ MINH Sinh viên thực hiện: TÔ VÕ NHƯ QUỲNH Lớp: CÔNG NGHỆ THÔNG TIN Khóa: 59 Tp Hồ Chí Minh, ngày 18 tháng 06 năm 2022 TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH Độc lập – Tự – Hạnh phúc NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP BỘ MÔN: CÔNG NGHỆ THÔNG TIN -*** - Mã sinh viên: 5951071089 Họ tên SV: Tơ Võ Như Quỳnh Khóa: 59 Lớp: Cơng nghệ thông tin Tên đề tài: Nghiên cứu thư viện hỗ trợ kiểm thử tự động Selenium ứng dụng vào xây dựng phần mềm kiểm thử tự động cho web Atalink Mục đích, yêu cầu a Mục đích: Nâng cao hiệu suất phát lỗi, tái sử dụng test case, tiết kiệm nguồn lực b Yêu cầu: - Yêu cầu chức năng: • Test chức thao tác người dùng, luồng hoạt động, kiểm tra input người dùng, kiểm tra thơng báo, • Hiển thị case fail lý cụ thể, tính tỉ lệ pass/ fail đánh giá test case • Mở rộng: Import file test case, test nhiều web khác nhau, chạy nhiều browser(không chạy lúc được) - Yêu cầu phi chức năng: Giao diện hợp lý, dễ sử dụng Nội dung thực hiện: Tìm hiểu selenium xây dựng hệ thống automation test cho web Quản trị chuỗi cung ứng ATALINK Công nghệ, công cụ ngôn ngữ lập trình: Selenium, Java, TestNG framework, maven project, cấu trúc design pattern: page object model Các kết dự kiến đạt ứng dụng: Xây dựng hệ thống automation test giúp tester tiết kiệm thời gian, tài nguyên, tái sử dụng test case Hiểu áp dụng selenium, quản lý test report, quản lý quy trình test, lập lịch test i Kế hoạch thực hiện: • Tuần 1: Tham khảo chọn đề tài • Tuần 2, 3, 4, 5: Tìm hiểu selenium • Tuần 5, 6, 7, 8: Xây dựng data test case • Tuần 9, 10, 11, 12, 13: Xây dựng hệ thống • Tuần 14, 15: Viết báo cáo Giáo viên cán hướng dẫn Họ tên: ThS NGUYỄN LÊ MINH Đơn vị công tác: Trường Đại học Giao thông Vận tải Phân hiệu TP Hồ Chí Minh Điện thoại: Email: nlminh@utc2.edu.vn Ngày tháng năm 2021 Trưởng BM Công nghệ Thông tin Ths.Trần Phong Nhã Đã giao nhiệm vụ TKTN Giảng viên hướng dẫn Ths.Nguyễn Lê Minh ii LỜI CẢM ƠN Lời đầu tiên, em xin cảm ơn tập thể giảng viên môn Công nghệ thông tin trường Đại học Giao Thông Vận Tải phân hiệu Thành Phố Hồ Chí Minh giảng dạy giúp đỡ em suốt trình học tập trường Thầy giúp em trang bị kiến thức chuyên môn kỹ nghề nghiệp để áp dụng vào thực tiễn Em xin chân thành cảm ơn giúp đỡ tận tình thầy Nguyễn Lê Minh, người thầy cho em dạy, lời góp ý chân thành kiến thức chun mơn để em hồn thành tốt đề tài Em xin gửi lời cảm ơn đến gia đình, bạn bè ln nguồn động viên to lớn giúp em vượt qua khó khăn suốt q trình học tập Mặc dù cố gắng hoàn thiện đề tài với tất nỗ lực thân, không tránh khỏi thiếu sót Kính mong thầy đóng góp ý kiến để em hồn thiện kiến thức thân Cuối cùng, em xin kính chúc q thầy ln mạnh khỏe, thành cơng nghiệp Em xin chân thành cảm ơn Trân trọng! iii NHẬN XÉT CỦA GIÁO VIÊN Tp Hồ Chí Minh, ngày ….… tháng ….… năm ….… Giáo viên hướng dẫn iv MỤC LỤC NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP i LỜI CẢM ƠN iii NHẬN XÉT CỦA GIÁO VIÊN iv DANH MỤC CHỮ VIẾT TẮT vii BẢNG BIỂU, SƠ ĐỒ, HÌNH VẼ viii CHƯƠNG MỞ ĐẦU 1.1 Tổng quan đề tài: 1.2 Mục tiêu nghiên cứu 1.3 Phạm vi thực 1.4 Cấu trúc báo cáo thực tập tốt nghiệp 1.4.1 Chương 1: Mở đầu 1.4.2 Chương 2: Nghiên cứu thư viện hỗ trợ kiểm thử tự động Selenium cơng nghệ sử dụng chương trình 1.4.3 Chương 3: Xây dựng phần mềm kiểm thử tự động cho web Atalink 1.4.4 Chương 4: Kết luận CHƯƠNG NGHIÊN CỨU THƯ VIỆN HỖ TRỢ KIỂM THỬ TỰ ĐỘNG SELENIUM VÀ CÁC CÔNG NGHỆ SỬ DỤNG TRONG CHƯƠNG TRÌNH 2.1 Tổng quan kiểm thử phần mềm 2.1.1 Tổng quan 2.1.2 Quy trình chung 2.2 Tổng quan thư viện hỗ trợ kiểm thử tự động Selenium 2.2.1 Thư viện mã nguồn mở Selenium 2.2.2 Selenium WebDriver 2.2.3 Ngôn ngữ Java 11 2.3 Tổng quan Page Object Model (POM) 13 2.4 Tổng quan TestNG 14 v CHƯƠNG XÂY DỰNG PHẦN MỀM KIỂM THỬ TỰ ĐỘNG CHO WEB ATALINK 16 3.1 Giới thiệu sơ lược web quản trị chuỗi cung ứng Atalink 16 3.2 Hệ thống automation test cho web Atalink 17 3.2.1 Bài toán 17 3.2.2 Thiết kế hệ thống 17 3.3.3 Các chức phần mềm 18 CHƯƠNG KẾT LUẬN 33 4.1 Kết đạt 33 4.2 Tính phát triển tương lai 34 vi DANH MỤC CHỮ VIẾT TẮT STT Mô tả Ý nghĩa POM Page Object Model QTP Quick Test Pro IDE Integrated Development Environment RC Remote Control UI User Interface JRE Java Runtime Environment JDK Java Development Kit NG Next Generation Regression test Test lại toàn test case 10 Smoke test Test ngẫu nhiên số case 11 CPU Central Processing Unit 12 B2B Business to Business 13 Test Case Trường hợp kiểm thử 14 Test Report Báo cáo kết kiểm thử 15 Locator Vị trí thành phần web 16 Manual Testing Kiểm thử thủ công 17 ScreenShot Chụp ảnh hình 18 Record video Ghi hình Ghi vii BẢNG BIỂU, SƠ ĐỒ, HÌNH VẼ Chương 2: Hình 1: Sơ đồ thành phần thư viện Selenium Hình 2: Giao diện cơng cụ Selenium IDE Hình 3: Giao diện cơng cụ Selenium IDE Hình 4: Thành phần Selenium WebDriver Hình 5: Thành phần Selenium Grid Hình 6: Locator ID Hình 7: Locator name Hình 8: Locator LinkText Hình 9: Locator TagName Hình 10: Locator ClassName Hình 11: Locator CSS Selector Hình 12: Locator Xpath Hình 13: Thành phần Page Object Model 13 Hình 14: Sơ đồ hoạt động TestNG 14 Chương 3: Hình 1: Giới thiệu ATALINK 16 Hình 2: User Case Diagram 18 Hình 3: Cấu trúc Test case 19 Hình 4: Test case kiểm tra notification chuyển thành code 19 Hình 5: Test case kiểm tra đăng nhập chuyển sang code 19 Hình 6: Cấu trúc POM chương trình 20 Hình 7: Hàm dùng lại chương trình 21 Hình 8: Cấu trúc file liệu test 22 Hình 9: Giao diện quản lý test case 23 Hình 10: Tính chạy tồn test case 23 Hình 11: Tính chạy số test case chọn 24 Hình 12: Tính chạy test case fail 24 Hình 13: Tính xếp test case 24 viii c Hàm dùng lại cho test case Trong hình ta test cho locator cố định lập lại nhiều test case, thay phải viết lại hàm cho cho hành động lập lập lại với locator ta viết hàm để dùng lại Những hành động thường xuyên sử dụng: • Click: Ấn vào (Nút, hình ảnh, thẻ, nội dung, tiêu đề, ) • Hover: Rê chuột lên (Nút, hình ảnh, thẻ, nội dung, tiêu đề, ) • Type: Nhập liệu textbox • Submit: Gửi liệu • Wait for page load: Đợi tải xong trang web • Isdisplayed: Kiểm tra phần tử có hiển thị • isEnabled: Kiểm tra phần tử có bật • getText: Lấy chuỗi ký tự hiển thị Ví dụ minh họa hàm dùng lại: Dưới hàm viết sẵn, việc lại gọi truyền locator vào Hình 7: Hàm dùng lại chương trình 21 Trong hình đăng nhập, khởi tạo biến tồn cục cho tên tài khoản, mật nút gửi Sau viết test case cho trường hợp đằng nhập Có thể thấy test case tinh gọn nhiều nhờ cần gọi tên hành động mà làm bước khởi tạo kiểu locator Các hàm thực hành cịn dùng lại nhiều lần nhiều test case, tiết kiệm nguồn lực thời gian viết test case d Import, export liệu từ file liệu (file Excel) Tùy vào chức đòi hỏi kiểu liệu cần nhập vào tiêu chí, số liệu cần dùng, mà ta thiết kế file liệu phù hợp với chức Ví dụ: Dữ liệu test cho chức đăng nhập (nhiều người dùng đăng nhập khoảng thời gian với thơng tin sai) Input: Dữ liệu file Excel (UseName, PassWord) Output: Trả kết UseName, PassWord (Pass/Fail) vào file Excel kết Pass/Fail test case xuất report File liệu: Hình 8: Cấu trúc file liệu test 22 e Quản lý test case Test case quản lý nhờ hỗ trợ thư viện TestNG, có chức năng: Giao diện: Đang hiển thị test case pass(v) fail(x) Hình 9: Giao diện quản lý test case • Chạy nhiều Test case lần test Chạy toàn test case Hình 10: Tính chạy tồn test case main_menu_bar hàm tổng chứa test case kiểm tra menu chính, chạy hàm có nghĩa chạy tất test case có 23 Chạy test case định: Nhấn chuột phải vào test case hiển thị danh sách chức dùng cho test case Hình 11: Tính chạy số test case chọn • Chỉ chạy lại test case fail Hình 12: Tính chạy test case fail • Sắp xếp test case từ A->Z, thời gian chạy Hình 13: Tính xếp test case 24 • Hiển thị lịch sử test Hình 14: Tính hiển thị lịch sử chạy test case • Import test từ file, export kết Hình 15: Tính Import, Export kết test • Một số cài đặt Hình 16: Cài đặt quản lý test cas 25 f Multi Browser Phần mềm test Browser là: Google Chrome, Ms Edge • Google Chrome Hình 17: Test Google Chrome • Microsoft Edge Hình 18: Test Microsoft Edge 26 g Quản lý thời gian test, tạo file log log console File log: Hình 19: Cấu trúc file Log Log console: Hình 20: Cấu trúc Log console 27 File log hiển thị: • Thơng tin thời gian thực test case • Các hành động khởi tạo mở trình duyệt, tên trường hợp thử nghiệm, thơng tin khác, đóng trình duyệt • Khi tồn test case thực thi, tóm tắt tổng số trường hợp thử nghiệm bao gồm số lượng test case pass số lượng test case fail h Ghi hình trình chạy test case bị fail (chưa đẩy lên Report) Đối với test case bị Fail ghi hình lại, lưu vào thư mục ScreenShot >> Video Hình 21: Lưu trữ video ghi test case fail Khi nhấn vào tên file, video mở ứng dụng VLC media player xuất video có avi 28 Hình 22: Mở video VLC media player i Đẩy Report lên web Giao diện web Report kết chảy test case: Sẽ có tab web Report: View List: Hình 23: Giao diện test report 29 Hiển thị thời gian chạy test case Hiển thị danh sách test case chạy lần Có chức năng: Tìm kiếm test case cách nhập tên test case lọc test case theo tiêu chí Pass Fail Hình 24: ọc test case Pass Fail Nhấn chọn test case hiển thị chi tiết test case bên góc phải bao gồm thơng tin: Hình 25: Chi tiết test case 30 • Tên case chọn • Thời gian bắt đầu chạy • Thời gian kết thúc chạy • Test case chạy • ID tự động test case • Hình ảnh báo lỗi test case bị fail • Bảng thơng tin chạy test case gồm cột: Trạng thái, thời gian thơng tin chi tiết • Đổi với test case bị fail chụp ảnh lại hình bị fail xem web Report phần thơng tin chi tiết test case đó: Hình 26: Ảnh chụp hình 31 View Chart: Hình 27: Giao diện test report tab biểu đồ Hiển thị thời gian test Số lượng test case Pass Fail Hiển thị biểu đồ thể tỉ lệ test case Pass Fail Hiển thị timeline cho test case, test case màu khác 32 CHƯƠNG KẾT LUẬN 4.1 Kết đạt - Hiểu nắm rõ cách hoạt động quy trình kiểm thử tự động - Biết cách sử dụng cấu trúc, framework, hàm, thư viện hỗ trợ kiểm thử tự động Selenium - Xây dựng phần mềm kiểm thử tự động cho web Atalink • Xây dựng test case liệu test cho web Atalink • Hiểu sử dụng Design Pattern: Page Object Model (POM) • Tạo hàm dùng lại cho test case • Import liệu từ file Excel • Kiểm thử nhiều trình duyệt: Google Chrome, Microsoft Edge • Hiển thị test case pass/fail, test case fail screenshot record video • Tạo file log quản lý thời gian kiểm thử • Quản lý web test report - Ưu điểm: • Thực kiểm thử dễ dàng, tiết kiệm thời gian cơng sức • Nhiều từ khóa giúp thực tác vụ tự động hóa người dùng • Nhiều trường hợp thử nghiệm ngẫu nhiên • Tệp báo cáo hiển thị thông tin rõ ràng, người dùng lọc kết đạt, kết không đạt hiển thị đạt / không đạt tỷ lệ phần trăm • Người dùng thấy trường hợp thử nghiệm thất bại hình ảnh tệp kết báo cáo • Hổ trợ tốt cho regression test smoke test - Nhược điểm: • Người dùng phải có kiến thức lập trình có kiến thức chun mơn hệ thống 33 • Cịn nhiều trường hợp mà kiểm thử tự động chưa hỗ trợ như: Tooltip, links, images, tables • Khó bảo trì mở rộng 4.2 Kiến nghị • Lập lịch kiểm thử: test case cài đặt tự động chạy ngầm sau khoảng thời gian, để kiểm tra mức độ ổn định web kiểm thử • Gửi mail report sau kiểm thử theo lịch để nắm tình hình kiểm thử • Đẩy video vào file report để dễ dàng biết cụ thể lỗi phần 34 TÀI LIỆU THAM KHẢO [1] Trang chủ ATALINK: https://vietnam.atalink.com/ [2] TestNG Tutorial: TestNG Tutorial - Javatpoint [3] Selenium Tutorial for Beginners: WebDriver & Testing Selenium Tutorial for Beginners: Learn WebDriver & Testing (guru99.com) [4] Trang chủ Selenium Tutorial với java Selenium Tutorial - javatpoint [5] Tìm hiểu quy trình kiểm thử phần mềm Quy trình kiểm thử phần mềm (viblo.asia) [6] Tìm hiểu giai đoạn kiểm thử phần mềm Các giai đoạn quy trình kiểm thử phần mềm | Anh Tester [7] Các thư viện hỗ trợ Selenium Maven project: Maven Repository: Search/Browse/Explore (mvnrepository.com) [8] Sử dụng POP Selenium Sử dụng Page Object Model selenium (viblo.asia) [9] Mơ hình hướng đối tượng Page Object Model Selenium Mơ hình đối tượng POM Page Factory Selenium WebDriver - Blog Tiền Điện Tử (blogtiendientu.vn) [10].Trang chủ Maven Maven – Maven in Minutes (apache.org) [11].Hướng dẫn dùng cài đặt Maven project Maven Tutorial (tutorialspoint.com) [12] Automation test tutorial: Automation Testing Tutorial: What is Automation Testing? (guru99.com) [13] How to use TestNG: Create TestNG Project In Eclipse & Run Selenium Test Script (lambdatest.com) [14] TestNG with Intellij IDEA TestNG | IntelliJ IDEA (jetbrains.com) [15] Selenium with Intellij IDEA Selenium | IntelliJ IDEA (jetbrains.com) 35