Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
2,37 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN ĐỒ ÁN KẾ THÚC MƠN HỌC ĐỀ TÀI: TÌM HIỂU VỀ CÔNG CỤ JENKINS VÀ ỨNG DỤNG HỌC PHẦN COMP130701 – KIỂM THỬ PHẦN MỀM CƠ BẢN Thành phố Hồ Chí Minh, ngày tháng 12 năm 2021 h BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN ĐỒ ÁN KẾ THÚC MƠN HỌC ĐỀ TÀI: TÌM HIỂU VỀ CÔNG CỤ JENKINS VÀ ỨNG DỤNG HỌC PHẦN COMP130701 – KIỂM THỬ PHẦN MỀM CƠ BẢN Giáo viên hướng dẫn: Thầy Trần Sơn Hải Sinh viên thực hiện: Trần Hoàng Khang – 4501104108 Hồ Huy Phúc – 43.01.104.133 Hoàng Phi Long – 43.01.104.101 Lương Hoàng Quân - 45.01.104.192 Lê Chí Cơng – 45.01.104.031 Thàng phố Hồ Chí Minh, ngày tháng 12 năm 2021 h MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN CHƯƠNG JENKINS: GIỚI THIỆU VÀ ỨNG DỤNG 2.1 Jenkins gì? 2.2 Nguồn gốc Jenkins 2.3 Cài đặt Jenkins 2.3.1 Windows 2.3.2 War file 13 Mở khóa Jenkins 13 2.4 2.6 Tính Jenkins 19 2.6.1 Tạo job 19 2.6.2 Tích hợp Jenkins Github 25 Tính mở rộng: Jenkins Pipeline 29 2.7 2.7.1 Jenkins Pipeline gì? 29 2.7.2 Jenkinsfile gì? 29 2.7.3 Các bước tạo thực thi Jenkins Pipeline từ Jenkinsfile lưu trữ git/Bitbucket 31 CHƯƠNG LAB THỰC HÀNH 35 3.1 Các lab 35 3.2 Q&A 40 4.1 Đánh giá ưu điểm Jenkins 42 4.2 Đánh giá nhược điểm Jenkins 42 4.3 Kết luận 43 TÀI LIỆU THAM KHẢO 44 h DANH MỤC HÌNH ẢNH Hình Định nghĩa Jenkins Hình Chọn tảng để tải xuống 10 Hình Giải nén file Jenkins tải xuống 10 Hình Setup Jenkins 11 Hình Chọn vị trí lưu trữ app 11 Hình Install 12 Hình Thơng báo cài đặt 12 Hình Unlock Jenkins 13 Hình Tìm file chứa mật mở khóa 14 Hình 10 Chép mật từ file 14 Hình 11 Dán mật tiếp tục 15 Hình 12 Manage User 16 Hình 13 Configure Global Security 17 Hình 14 Tab People 18 Hình 15 Tạo job Jenkins 18 Hình 16 Chọn loại job 19 Hình 17 General job 19 Hình 18 Nhập URL project 20 Hình 19 Source Code Management 20 Hình 20 Builds 21 Hình 21 Add Cucumber reports 21 Hình 22 Build now 22 Hình 23 Job thực thi 22 h Hình 24 Check report 23 Hình 25 Report 23 Hình 26 Tạo repository git 24 Hình 27 Add webhooks 24 Hình 28 Nhập URL cho webhook 25 Hình 29 Add webhook thành cơng 25 Hình 30 Tạo job 26 Hình 31 Nhập link repository 26 Hình 32 Build trigger 27 Hình 33 Build History 27 Hình 34 Jenkins Pipeline 28 Hình 35 Ví dụ Jenkinsfile 29 Hình 36 Jenkins Pipeline: Create a job 31 Hình 37 Tạo Pipeline 31 Hình 38 Pipeline: Advanced Project Options 32 Hình 39 Build Pipeline 33 h LỜI MỞ ĐẦU "Đầu tiên, nhóm Phantom Thieves xin gửi lời cảm ơn chân thành đến Trường Đại học Sư phạm TP HCM đưa môn học Kiểm thử phần mềm vào trương trình giảng dạy Đặc biệt, nhóm em xin gửi lời cảm ơn sâu sắc đến giảng viên môn – Thầy Trần Sơn Hải dạy dỗ, truyền đạt kiến thức quý báu cho nhóm em suốt thời gian học tập vừa qua Trong thời gian tham gia lớp học Kiểm thử phần mềm thầy, nhóm có thêm cho nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc Đây chắn kiến thức quý báu, hành trang để nhóm vững bước sau Bộ môn Kiểm thử phần mềm môn học thú vị, vô bổ ích có tính thực tế cao Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn sinh viên Tuy nhiên, vốn kiến thức nhiều hạn chế khả tiếp thu thực tế cịn nhiều bỡ ngỡ Mặc dù nhóm cố gắng chắn tiểu luận khó tránh khỏi thiếu sót nhiều chỗ cịn chưa xác, kính mong xem xét góp ý để tiểu luận nhóm em hồn thiện Nhóm Phantom Thieves xin chân thành cảm ơn!” h CHƯƠNG TỔNG QUAN 1.1 Giới thiệu Trong xã hội đại ngày nay, công nghệ thông tin lên phát triển liên tục mạnh mẽ, sinh hoạt ngày gắn liền với việc sử dụng thiết bị điện tử nhằm hỗ trợ cho công việc, sinh hoạt hay hoạt động vui chơi giải trí Hầu thiết bị hay ứng dụng phải trải qua trình lập trình kiểm thử tester trước sản phẩm đến tay người dùng Để hỗ trợ cho công việc kiểm thử, người tester cần nhiều công cụ khác để thực công việc cách tốt nhất.Nhóm em thực đề tài nhằm giới thiệu công cụ được nhiều tester tin dùng công cụ tiếng – Công cụ tự động hóa mã nguồn mở Jenkins 1.2 Mục đích Tìm hiểu, nghiên cứu cách cài đặt điều kiện để chạy cơng cụ.Giới thiệu tính bản,nâng cao phương thức hoạt động Jenkins Đồng thời hướng dẫn cách sử dụng ứng dụng vào minh họa thực tế Nhận xét đánh giá ưu nhược điểm Jenkins trình ứng dụng thử nghiệm công cụ 1.3 Chức Giúp người đọc nhận biết hiểu rõ công cụ Giúp tester học cách sử dụng phát huy tối đa ưu điểm đồng thời hạn chế điểm yếu Jenkins h CHƯƠNG JENKINS: GIỚI THIỆU VÀ ỨNG DỤNG 2.1 Jenkins gì? Jenkins hiểu mã nguồn mở phục vụ cho việc vận hành chức tích hợp liên tục Ngồi Jenkins cịn xây dựng tác vụ dạng tự động hóa Jenkins cho phép người dùng tích hợp lại Jenkins từ member khác team Từ rút hệ thống theo dõi kiểm tra trình hoạt động trạng thái tức thời thông qua bước kiểm thử Hoạt động giúp cho lập trình viên nhanh chóng phát lỗi sai phần mềm để đưa cách khắc phục tối ưu Hình Định nghĩa Jenkins Jenkins xây dựng dựa ngôn ngữ lập trình Java – ngơn ngữ phổ biến nhiều người lựa chọn sử dụng Chính Jenkins dễ dàng tương thích với nhiều công cụ tảng khác Cộng đồng sử dụng Jenkins vô lớn Vậy nên bạn thoải mái sử dụng nhiều kinh nghiệm sử dụng Jenkins từ bậc tiền bối h 2.2 Nguồn gốc Jenkins Cha đẻ Jenkins Kohsuke Kawaguchi – nhà lập trình viên Java làm việc Sun Ông cảm thấy phiền phức tốn thời gian mã code liên tục fail đưa vào deploy Để khắc phục tình trạng này, ông phát minh phần mềm tên Hudson với sức tự động hóa để phát lỗi sai code trước đưa vào deploy Hudson trở nên vô thịnh hành phổ biến thời Khi Sun Oracle mua lại, Jenkins forked từ Hudson phát triển phần mềm độc lập Sau Jenkins Hudson tồn song song Tuy nhờ cải tiến cấp thiết phù hợp với thời đại, Jenkins trở nên phổ biến nhiều 2.3 2.3.1 Cài đặt Jenkins Windows Điều kiện: Vì dựa ngơn ngữ lập trình Java nên trước cài đặt Jenkins yêu cầu cần có Java JDK Hiện nay, Jenkins hỗ trợ với Java Java 11 h Cài đặt Jenkins Windows + Bước 1: Truy cập website: https://www.jenkins.io/download/ chọn tảng Trong trường hợp ta chọn Windows Hình Chọn tảng để tải xuống + Bước 2: Đi tới thư mục tải xuống Jenkins máy tính bạn giải nén gói tải xuống Nhấp vào jenkins.msi để giải nén: h + Trường pipeline{} thành phần bắt buộc dùng để khai báo pipeline Jenkinsfile + Trường agent dùng để khai báo mơi trường thực Nếu cấu hình “any” Jenkins sử dụng agent có hệ thống + Trường environment{} dùng để khai báo biến môi trường cần thiết + Trường stages{} dùng để khai báo “giai đoạn” (stage) bên pipeline ● Trường stage(‘Checkout: Code’) {} thực việc tạo thư mục clone code từ git định ● Trường stage(‘Yum: Updates’) {} thực việc thiết lập quyền truy cập thực thi đoạn script định + Trường post{} thực thi sau stage hồn tất cơng việc định Trong Jenkinsfile trên, sau stage thực (kể không thành công), workspace xóa để tránh Jenkins bị lỗi lần thực thi pipeline Lưu ý: + Tập tin Jenkinsfile cần đặt thư mục root repository lưu trữ git/Bitbucket + Tính pipeline khơng tích hợp sẵn Jenkins số trường hợp Bạn cài đặt thêm tính tính Manage Jenkins 2.7.3 Các bước tạo thực thi Jenkins Pipeline từ Jenkinsfile lưu trữ git/Bitbucket Yêu cầu: Đã cài đặt plugin sau: h Bitbucket Plugin Pipeline Git Pipeline SCM Step Các bước thực hiện: + Truy cập Jenkins Dashboard, chọn “Create a job” Hình 36 Jenkins Pipeline: Create a job + Điền tên Pipeline vào trường “Enter an item name”, chọn “Pipeline” danh sách bên nhấn “OK” h Hình 37 Tạo Pipeline + Chọn “Pipeline script from SCM” mục “Advanced Project Options” (ở cuối trang tab “Advanced Project Options“) + Chọn “Git” mục “SCM“ + Thêm git/Bitbucket repo link mục “Repository URL“ + Thêm “credentials” để kết nối đến git repo có Sau nhấn “Save” để lưu thơng tin lại h Hình 38 Pipeline: Advanced Project Options + Chọn “Build Now” để tiến hành thực thi Jenkins Pipeline h Hình 39 Build Pipeline + Q trình thực thi hiển thị thơng tin tình trạng stage khai báo Jenkinsfile mục Stage View Nếu stage có màu xanh tức thực thi thành cơng, màu lỗi q trình thực thi Người dùng xem log stage cách chọn “Log” để xem log stage h CHƯƠNG LAB THỰC HÀNH 3.1 Các lab Cài đặt plugin Git cho Jenkins - Bước 1:Nhấp vào nút Manage Jenkins bảng điều khiển Jenkins: - Bước 2: Nhấp vào Manage Plugins: h - Bước 3: Chọn Git Plugin Nhấp vào Instal without restart Sẽ vài phút để hồn tất q trình tải xuống Tùy chọn vào kết nối internet bạn cài đặt tự động Bạn chọn tùy chọn Download now and Install after restart Khi plugin tải cài đặt sau Jenkins khởi động lại Bạn thấy thông báo “No updates available” bạn cài đặt plugin Git - Bước 4: Sau plugin cài đặt, tới Manage Jenkins bảng điều khiển Jenkins bạn Bạn thấy plugin hiển thị danh sách plugin sau Cách tích hợp Jenkins Github h - Bước 1: Tạo công việc Jenkins, mở bảng điều khiển Jenkins URL Jenkins bạn Ví dụ: https://localhost:8080/ Nhấp vào Create new jobs - Bước 2: Nhập tên công việc, chọn loại công việc nhấp vào OK Chúng tạo dự án Freestyle project làm ví dụ - Bước 3: Sau bạn nhấp vào OK, trang chuyển hướng đến form dự án Tại bạn cần nhập thông tin dự án.: - Bước 4: Bạn thấy tùy chọn Git tab Source Code Management plugin Git bạn cài đặt Jenkins h - Bước 5: Nhập URL kho lưu trữ Git (Git repository) để lấy code từ Github - Bước 6: Bạn nhận thơng báo lỗi lần bạn nhập URL kho lưu trữ Git Điều xảy máy bạn chưa cài đặt Git Để cài đặt Git máy cục bạn, truy cập https://git-scm.com/downloads h Tải file cài đặt Git thích hợp cho hệ điều hành bạn, trường hợp Windows cài đặt vào máy cục chạy Jenkins bạn Hoàn thành hướng dẫn hình để cài đặt Git - Bước 7: Bạn thực thi kho lưu trữ Git Jenkins sau cài đăt Git Để kiểm tra xem cài đặt thành cơng vào hệ thống bạn hay chưa, mở cửa sổ dòng lệnh, gõ “Git” nhấn Enter Bạn thấy tùy chọn khác xuất cho Git - Bước 8: Khi bạn có thứ, them URL Git vào Jenkins Bạn không thấy thơng báo lỗi cho tích hợp Jenkins Git: h Git cấu hình hệ thống bạn 3.2 Q&A 1.Thông tin lần build nằm danh mục ? a) b) c) d) Build history Console Output Dashboard Settings Giải pháp : Thông tin hiển thị dạng trạng thái, lần build hiển thị “Build History” Nếu q trình Build thành cơng đánh số thứ tự lần thực màu “xanh dương” Còn build thất bại ‘màu đỏ‘. 2.Ta cần làm để sửa lỗi build thất bại : a b c d Kiểm tra đầu console để tìm kiếm thay đổi file bị thiếu Dọn dẹp cập nhật local workspace Kiểm tra cấu hình project/job Tất ý Giải pháp: Người dùng cần kiểm tra đầu console tìm file bị thiếu chạy chương trình Nếu khơng tìm vấn đề tốt ta nên dọn dẹp cập nhật local workspace 3.Những cách tốt bảo đảm sở liệu Jenkins an toàn : Có nhiều cách để đảm bảo an ninh mức cao nói đến Jenkins, số cách (nhưng khơng giới hạn - tìm hiểu thêm hướng dẫn Jenkins tutorial khác) đáng ý giữ an ninh toàn cầu, chạy kiểm tra bảo mật, giữ cho sở liệu bảo vệ mức vật lý (tránh người tiếp cận trái phép), v.v An ninh mạng trở thành vấn đề quan h tâm kiến thức an ninh mạng xuất câu hỏi vấn Jenkins 4.Những cách tốt bảo đảm sở liệu Jenkins an tồn : Có nhiều cách để đảm bảo an ninh mức cao nói đến Jenkins, số cách (nhưng không giới hạn - tìm hiểu thêm hướng dẫn Jenkins tutorial khác) đáng ý giữ an ninh toàn cầu, chạy kiểm tra bảo mật, giữ cho sở liệu bảo vệ mức vật lý (tránh người tiếp cận trái phép), v.v An ninh mạng trở thành vấn đề quan tâm kiến thức an ninh mạng xuất câu hỏi vấn Jenkins 5.Tại nên sử dụng Tích hợp liên tục (CI) với Jenkins? Tình huống: Chắc tất bạn biết đến điện thoại Nokia cũ Nokia thực quy trình gọi build hàng đêm Sau nhiều commit từ nhà phát triển khác ngày, phần mềm build hàng đêm Vì phần mềm build lần ngày nên việc cô lập, xác định sửa lỗi codebase lớn điều khó khăn Cách khắc phục: Sau đó, họ áp dụng cách tiếp cận tích hợp liên tục (CI) Phần mềm build thử nghiệm sau nhà phát triển commit code Nếu lỗi phát hiện, nhà phát triển tương ứng nhanh chóng sửa chữa lỗi h CHƯƠNG ĐÁNH GIÁ - KẾT LUẬN 4.1 Đánh giá ưu điểm Jenkins - Jenkins quản lý cộng đồng cởi mở Hàng tháng, họ tổ chức họp công khai lấy ý kiến từ công chúng để phát triển dự án Jenkins - Cho đến khoảng 280 ticket đóng dự án phát hành ổn định ba tháng lần - Khi công nghệ phát triển, Jenkins Cho đến Jenkins có khoảng 320 plugin xuất sở liệu plugin Với plugin, Jenkins chí cịn trở nên mạnh mẽ nhiều tính - Jenkins hỗ trợ kiến trúc dựa đám mây để bạn triển khai Jenkins tảng dựa đám mây - Lý Jenkins trở nên phổ biến tạo nhà phát triển dành cho nhà phát triển 4.2 Đánh giá nhược điểm Jenkins - Mặc dù Jenkins công cụ mạnh, có nhược điểm - Cài đặt Jenkins dễ dàng đơn giản production lại gây khó khăn cho người sử dụng Bởi vậy, việc triển khai pipeline Jenkinsfile đòi hỏi phải lập trình ngơn ngữ khai báo riêng - Hệ thống open source kiến trúc đơn máy chủ, giúp cho việc cài đặt trở nên dễ dàng Mặc dù vậy, giới hạn tài nguyên máy tính, máy ảo container Khi đó, Jenkins lại không cho phép liên kết máy chủ gây ảnh hưởng đến hiệu - Jenkins thường hoạt động dựa vào kiến trúc, công nghệ Java cũ đặc biệt servlet Maven h - Giao diện lỗi thời không thân thiện với người dùng so với xu hướng giao diện người dùng - Mặc dù Jenkins nhiều nhà phát triển yêu thích, việc trì khơng dễ dàng Vì Jenkins chạy máy chủ yêu cầu số kỹ quản trị viên máy chủ để giám sát hoạt động - Một lý nhiều người không triển khai Jenkins khó cấu hình - Tích hợp liên tục (CI) thường xuyên bị hỏng số thay đổi cài đặt nhỏ Tích hợp liên tục bị tạm dừng cần số nhà phát triển ý 4.3 Kết luận - Trong đồ án, nhóm tổng hợp đầy đủ thông tin liên quan đến việc sử dụng công cụ Jenkins Với nhà phát triển tìm hiểu tác vụ tự động hóa khơng thể khơng bỏ qua cơng cụ - Jenkins opensource dùng để thực chức tích hợp liên tục (gọi CI – Continuous Integration) xây dựng tác vụ tự động hóa Nó tích hợp source code members team lại nhanh chóng cách liên tục, theo dõi thực thi trạng thái thông qua bước kiểm thử (Integration test, units test) Tất nhiên nhằm giúp sản phẩm chạy ổn định - Cho phép lưu trữ thông tin đăng nhập Jenkins Cung cấp API chuẩn hóa cho plugin khác để lưu trữ truy xuất loại thông tin xác thực khác - Jenkins giúp tự động hóa quy trình phát triển phần mềm, gọi theo thuật ngữ tích hợp liên tục Jenkins phần mềm dạng server, chạy h serlver với hỗ trợ Apche Tomcat Nó hỗ trợ hầu hết phần mềm quản lý mã nguồn phổ biến Git, Maven, Gradle TÀI LIỆU THAM KHẢO Jenkins Handbook: https://www.jenkins.io/doc/book/ h