1. Trang chủ
  2. » Tất cả

Xây dựng ứng dụng kiểm thử phần mềm tự động sử dụng selenium và webdriver

76 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 2,73 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ HẢI YẾN XÂY DỰNG ỨNG DỤNG KIỂM THỬ PHẦN MỀM TỰ ĐỘNG SỬ DỤNG SELENIUM VÀ WEBDRIVER LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2020 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ HẢI YẾN XÂY DỰNG ỨNG DỤNG KIỂM THỬ PHẦN MỀM TỰ ĐỘNG SỬ DỤNG SELENIUM VÀ WEBDRIVER Ngành: Khoa học máy tính Chuyên ngành: Khoa học máy tính Mã số: 08480101.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS HOÀNG XUÂN HUẤN HÀ NỘI - 2020 LỜI CAM ĐOAN Tôi xin cam đoan kết đạt luận văn sản phẩm cá nhân tôi, thực hướng dẫn PGS TS Hoàng Xuân Huấn Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn quy định Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày … tháng năm 2020 Học viên Phạm Thị Hải Yến LỜI CẢM ƠN Để hồn thành luận văn tơi xin chân thành gửi lời cảm ơn đến PGS TS Hoàng Xuân Huấn thầy cô khoa Công nghệ thông tin – Đại học Quốc Gia Hà Nội đóng góp ý kiến, nhận xét, quan tâm bảo tạo cho điều kiện tốt từ bắt đầu hồn thành luận văn Đồng thời, xin gửi lời cảm ơn đến gia đình, bạn bè đồng nghiệp ln quan tâm, chia sẻ, động viên tạo điều kiện để tơi hồn thành tốt cơng việc trình thực luận văn Mặc dù cố gắng trình thực luận văn khơng thể tránh khỏi thiếu sót, tơi mong nhận góp ý thầy bạn bè Học viên Phạm Thị Hải Yến MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT VÀ CÁC THUẬT NGỮ LỜI MỞ ĐẦU 10 CHƯƠNG 1: GIỚI THIỆU VỀ KIỂM THỬ PHẦN MỀM 12 1.1 Giới thiệu kiểm thử phần mềm .12 1.2 Phát triển hướng kiểm thử TDD (Test Driven Development) 13 1.2.1 Khái niệm 13 1.2.2 Các cấp độ TDD 16 1.2.3 Các lỗi thường gặp áp dụng TDD 16 1.3 Phát triển hướng hành vi BDD (Behaviour Driven Development) 16 1.3.1 Khái niệm 16 1.3.2 Quy trình phát triển phần mềm truyền thống .18 1.3.3 Quy trình phát triển theo hướng BDD 18 CHƯƠNG GIỚI THIỆU VỀ CÔNG CỤ KIỂM THỬ TỰ ĐỘNG VÀ MƠ HÌNH THIẾT KẾ PAGE OBJECT MODEL (POM) .20 2.1 Công cụ kiểm thử tự động Cucumber 20 2.1.1 Khái niệm 20 2.1.2 Ngôn ngữ Gherkin 20 2.1.3 Cách chạy Cucumber Junit test 22 2.1.4 Chu trình .23 2.1.5 Sơ đồ chu trình làm việc xử lý bước cucumber 27 2.1.6 Cấu trúc dự án cài đặt Cucumber .28 2.1.7 Các thư viện sử dụng để chạy Cucumber 28 2.2 Selenium WebDriver 29 2.2.1 Khái niệm 29 2.2.2 Giới thiệu đối tượng UI (Locators) 31 2.2.2.1 Xác định phần tử Web theo ID 31 2.2.2.2 Xác định phần tử Web theo Name 32 2.2.2.3 Xác định phần tử Web theo LinkText 32 2.2.2.4 Xác định phần tử Web theo TagName .33 2.2.2.5 Xác định phần tử Web theo ClassName 33 2.2.2.6 Xác định phần tử Web theo CSS .34 2.2.2.7 Xác định phần tử Web theo Xpath 34 2.2.3 Các thư viện sử dụng để chạy Selenium WebDriver 36 2.2.4 Các hàm xử lý chung Selenium WebDriver .36 2.3 Giới thiệu mẫu thiết kế (Design pattern) 38 2.3.1 Khái niệm 38 2.3.2 Phân loại mẫu thiết kế (Design Pattern) .39 2.4 Mô hình thiết kế Page Object Model (POM) .41 2.4.1 Lý chọn mơ hình thiết kế Page Object Model (POM) 41 2.4.2 Mơ hình thiết kế Page Object Model (POM) gì? 43 2.4.3 Ưu điểm mơ hình thiết kế Page Object Model (POM) 43 2.4.4 Ví dụ 44 CHƯƠNG 3: HỆ THỐNG TÍCH HỢP LIÊN TỤC .48 3.1 Hệ thống tích hợp liên tục (CI) 48 3.1.1 Khái niệm 48 3.1.2 Áp dụng hệ thống tích hợp liên tục 50 3.1.3 Lợi ích việc tích hợp liên tục .50 3.1.4 Jenkins 52 CHƯƠNG 4: THỰC NGHIỆM KIỂM THỬ TỰ ĐỘNG TẠI CÔNG TY VIVAS VÀ ĐÁNH GIÁ KẾT QUẢ 54 4.1 Phân tích hoạt động kiểm thử công ty trước áp dụng kiểm thử tự động .54 4.1.1 Tổng quan công ty, sản phẩm, môi trường kiểm thử .54 4.1.2 Quy trình kiểm thử trước VIVAS 55 4.2 Cài đặt áp dụng kiểm thử tự động vào dự án VIVAS 58 4.2.1 Cấu trúc dự án 58 4.2.2 Cấu trúc mã nguồn .60 4.2.3 Tích hợp Jenkins 64 4.2.4 Báo cáo kết chạy kiểm thử 65 4.3 Đánh giá kết sau áp dụng kiểm thử tự động vào dự án VIVAS 67 4.3.1 Tiết kiệm thời gian 68 4.3.2 Tiết kiệm nguồn nhân lực 70 4.4 Những khó khăn triển khai hệ thống kiểm thử tự động công ty VIVAS 71 4.5 Hướng phát triển framework .72 KẾT LUẬN 73 TÀI LIỆU THAM KHẢO 74 DANH MỤC HÌNH VẼ Hình 1.1 Chu trình TDD qua màu sắc (từ trang 1minus1.com) 14 Hình 1.2 Các bước thực TDD Từ trang http://agiledata.org/essays/tdd.html) 15 Hình 1.3 TDD kết hợp với BDD 17 Hình 1.4 Chu trình làm việc kết hợp TDD BDD 17 Hình 1.5 Quy trình phát triển truyền thống 18 Hình 1.6 Quy trình phát triển BDD 19 Hình 2.1 Mã nguồn viết ngôn ngữ Gherkin .21 Hình 2.2 Mã nguồn viết ngơn ngữ Gherkin .21 Hình 2.3 Mã nguồn để chạy Cucumber 22 Hình 2.4 Chương trình chạy kiểm thử với Cucumber 23 Hình 2.5 Mã nguồn viết ngơn ngữ Gherkin .24 Hình 2.6 Mã nguồn thực thi bước kịch kiểm thử 24 Hình 2.7 Kết chạy kịch kiểm thử log có trường hợp sai 25 Hình 2.8 Mã nguồn thực thi bước kịch kiểm thử 25 Hình 2.9 Kết chạy kịch kiểm thử 26 Hình 2.10 Chu trình làm việc Cucumber 27 Hình 2.11 Cấu trúc dự án cài đặt Cucumber .28 Hình 2.12 Thư viện Cucumber cần cài đặt 28 Hình 2.13 Sử dụng Maven để cài đặt thư viện .29 Hình 2.14 Các hệ điều hành phổ biến 30 Hình 2.15 cách xác định phần tử Web 31 Hình 2.16 Xác định phần tử Web ID 32 Hình 2.17 Xác định phần tử Web Name 32 Hình 2.18 Xác định phần tử Web Linktext 33 Hình 2.19 Xác định phần tử Web Tagname 33 Hình 2.20 Xác định phần tử Web Classname 33 Hình 2.21 Xác định phần tử Web CSS .34 Hình 2.22 Ví dụ minh họa cách xác định phần tử 34 Hình 2.23 Thư viện cần thiết để chạy Selenium WebDriver 36 Hình 2.24 Sử dụng Maven để cài đặt thư viện .36 Hình 2.25 Mã nguồn minh họa cho Selenium Webdriver 38 Hình 2.26 Mã nguồn ví dụ cho việc sử dụng Selenium Webdriver 42 Hình 2.27 Cấu trúc POM 43 Hình 2.28 Cấu trúc Page Object Model .44 Hình 2.29 Mã nguồn trang Đăng nhập 45 Hình 2.30 Mã nguồn PageObjects PageUIs trang Đăng nhập 46 Hình 2.31 Mã nguồn chạy nhiều trình duyệt 47 Hình 3.1 Vịng đời CI .48 Hình 3.2 Q trình tích hợp liên tục CI .49 Hình 3.3 Hệ thống tích hợp liên tục 49 Hình 3.4 10 hệ thống CI sử dụng với GitHub 52 Hình 3.5 Giao diện Jenkins 53 Hình 4.1 Quy trình kiểm thử trước VIVAS .56 Hình 4.2 Cấu trúc dự án thực tế 58 Hình 4.3 Quản lý mã nguồn Github 59 Hình 4.4 Cấu trúc mã nguồn cài đặt thực tế 60 Hình 4.5 Cấu hình thông số cho Jenkins 65 Hình 4.6 Báo cáo kết kiểm thử Jenkins 65 Hình 4.7 Biểu đồ kết kiểm thử Jenkins 65 Hình 4.8 Biểu đồ kết kiểm thử Jenkins 66 Hình 4.9 Báo cáo kết kiểm thử Extent reports .66 Hình 4.10 Báo cáo kết kiểm thử TestNG report 67 Hình 4.11 Biểu đồ thống kê tỷ lệ thực kiểm thử tự động 68 Hình 4.12 Biểu đồ so sánh thời gian thực thi kiểm thử thủ công tự động trình duyệt .69 Hình 4.13 Biểu đồ so sánh thời gian thực thi kiểm thử thủ cơng tự động ba trình duyệt 70 Hình 4.14 Bảng so sánh nguồn lực thực kiểm thử thủ công tự động .71 DANH MỤC BẢNG BIỂU Bảng 2.1 Bảng thích lệnh thư mục chạy Cucumber 23 Bảng 2.2 Bảng so sánh Selenium WebDriver công cụ khác 30 Bảng 2.3 Bảng phân loại Xpath 35 Bảng 2.4 Một số cú pháp Xpath 35 Bảng 2.5 Xác định phần tử sử dụng Webdriver 37 Bảng 2.6 Các hàm hay sử dụng Selenium Webdriver 37 Bảng 2.7 mẫu thiết kế mẫu thiết kế kiến tạo 39 Bảng 2.8 Những mẫu thiết kế thuộc nhóm mẫu thiết kế kiến trúc 39 Bảng 2.9 Những mẫu thiết kế thuộc nhóm mẫu thiết kế hành vi 40 Bảng 4.1 Bảng thống kê số kịch kiểm thử vài dịch vụ Vivas 57 Bảng 4.2 Bảng thống kế số kịch kiểm thử áp dụng thực tế kiểm thử tự động .67 Bảng 4.3 Bảng thống kê thời gian thực thi kiểm thử thủ công tự động 68 ... tơi có lĩnh vực kiểm thử Tơi muốn xây dựng framework kiểm thử tự động hỗ trợ kiểm thử viên Đó lý tơi chọn đề tài ? ?Xây dựng ứng dụng kiểm thử phần mềm tự động sử dụng selenium webdriver? ?? Đề tài tìm... vậy, nhu cầu tự động hoá kiểm thử phần mềm đặt Việc áp dụng kiểm thử tự động hợp lý mang lại thành công cho hoạt động kiểm thử phần mềm nâng cao chất lượng sản phẩm phần mềm Kiểm thử tự động giúp... Tái cấu trúc Kiểm thử hồi quy Kiểm thử phần mềm Trường hợp kiểm thử Phát triển hướng kiểm thử Kiểm thử viên Kịch kiểm thử CI POM TDD LỜI MỞ ĐẦU Trong nhiều năm qua, tự động hóa ứng dụng nhiều lĩnh

Ngày đăng: 26/03/2023, 22:56

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w