You are on page 1of 45

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


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


MỤC LỤC

LỜI MỞ ĐẦU 6
CHƯƠNG 1. TỔNG QUAN 7
CHƯƠNG 2. JENKINS: GIỚI THIỆU VÀ ỨNG DỤNG 8
2.1. Jenkins là gì? 8
2.2. Nguồn gốc của Jenkins 9
2.3. Cài đặt Jenkins 9
2.3.1. Windows 9
2.3.2. War file 13
2.4. Mở khóa Jenkins 13
2.6 Tính năng cơ bản trong Jenkins 19
2.6.1. Tạo job 19
2.6.2. Tích hợp Jenkins và Github 25
2.7. Tính năng mở rộng: Jenkins Pipeline 29
2.7.1. Jenkins Pipeline là gì? 29
2.7.2. Jenkinsfile là gì? 29
2.7.3. Các bước tạo và thực thi Jenkins Pipeline từ Jenkinsfile lưu trữ trên git/Bitbucket 31
CHƯƠNG 3. LAB THỰC HÀNH 35
3.1. Các bài lab 35
3.2. Q&A 40
4.1. Đánh giá ưu điểm của Jenkins 42
4.2. Đánh giá nhược điểm của Jenkins 42
4.3. Kết luận 43
TÀI LIỆU THAM KHẢO 44
DANH MỤC HÌNH ẢNH

Hình 1. Định nghĩa Jenkins 8


Hình 2. Chọn nền tảng để tải xuống 10
Hình 3. Giải nén file Jenkins đã tải xuống 10
Hình 4. Setup Jenkins 11
Hình 5. Chọn vị trí lưu trữ app 11
Hình 6. Install 12
Hình 7. Thông báo khi cài đặt 12
Hình 8. Unlock Jenkins 13
Hình 9. Tìm file chứa mật khẩu mở khóa 14
Hình 10. Chép mật khẩu từ file 14
Hình 11. Dán mật khẩu và 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 1 job trong Jenkins 18
Hình 16. Chọn loại job 19
Hình 17. General của job 19
Hình 18. Nhập URL của 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 được thực thi 22
Hình 24 . Check report 23
Hình 25. Report 23
Hình 26. Tạo repository trên 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
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 cơ bản 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 bộ
môn – Thầy Trần Sơn Hải đã dạy dỗ, truyền đạt những kiến thức quý báu cho
nhóm em trong 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 cơ bản của thầy, nhóm đã có thêm cho mình nhiều kiến thức
bổ ích, tinh thần học tập hiệu quả, nghiêm túc. Đây chắc chắn sẽ là những kiến
thức quý báu, là hành trang để nhóm có thể vững bước sau này.

Bộ môn Kiểm thử phần mềm cơ bản là môn học thú vị, vô cùng bổ ích và 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 của
sinh viên. Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực
tế còn nhiều bỡ ngỡ. Mặc dù nhóm đã cố gắng hết sức nhưng chắc chắn bài tiểu
luận khó có thể tránh khỏi những thiếu sót và nhiều chỗ còn chưa chính xác, kính
mong cô xem xét và góp ý để bài tiểu luận của nhóm em được hoàn thiện hơn.
Nhóm Phantom Thieves xin chân thành cảm ơn!”
CHƯƠNG 1. TỔNG QUAN
1.1. Giới thiệu

Trong xã hội hiện đại ngày nay, khi công nghệ thông tin lên ngôi và phát triển liên
tục mạnh mẽ, sinh hoạt chúng ta hằng ngày đều gắn liền với việc sử dụng các thiết
bị điện tử nhằm hỗ trợ cho công việc, sinh hoạt hay cả các hoạt động vui chơi giải
trí. Hầu như bất kì thiết bị hay ứng dụng nào đều cũng phải trải qua một quá trình
lập trình và được kiểm thử bởi tester trước khi 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 nhau để
thực hiện công việc một cách tốt nhất.Nhóm em thực hiện đề tài này nhằm giới
thiệu một công cụ được được rất nhiều tester tin dùng và là một trong những công
cụ nổi tiếng nhất hiện nay – 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 và điều kiện để chạy công cụ.Giới thiệu các tính
năng cơ bản,nâng cao và phương thức hoạt động của Jenkins. Đồng thời hướng dẫn
cách sử dụng và ứng dụng vào các minh họa thực tế. Nhận xét và đánh giá những
ưu nhược điểm của Jenkins trong quá trình ứng dụng thử nghiệm công cụ này.

1.3. Chức năng

Giúp người đọc nhận biết và hiểu rõ công cụ này. Giúp tester học được cách sử
dụng và phát huy được tối đa các ưu điểm đồng thời hạn chế được các điểm yếu
của Jenkins.
CHƯƠNG 2. JENKINS: GIỚI THIỆU VÀ ỨNG DỤNG
2.1. Jenkins là gì?
Jenkins được hiểu như là một mã nguồn mở phục vụ cho việc vận hành các chức
năng tích hợp liên tục. Ngoài ra Jenkins còn có thể xây dựng các tác vụ dạng tự
động hóa. Jenkins cho phép người dùng tích hợp lại các Jenkins từ những member
khác nhau trong team. Từ đó rút ra được một hệ thống theo dõi và kiểm tra quá
trình hoạt động và các trạng thái tức thời thông qua các bước kiểm thử. Hoạt động
này giúp cho lập trình viên nhanh chóng phát hiện những lỗi sai trong phần mềm
để đưa ra cách khắc phục tối ưu nhất.

Hình 1. Định nghĩa Jenkins


Jenkins được xây dựng dựa trên ngôn ngữ lập trình Java – một trong những ngôn
ngữ phổ biến và được nhiều người lựa chọn sử dụng nhất. Chính vì thế Jenkins có
thể dễ dàng tương thích được với nhiều công cụ và nền tảng khác nhau. Cộng đồng
sử dụng Jenkins cũng vô cùng lớn. Vậy nên bạn có thể thoải mái sử dụng rất nhiều
kinh nghiệm sử dụng Jenkins từ những bậc tiền bối.
2.2. Nguồn gốc của Jenkins
Cha đẻ của Jenkins là Kohsuke Kawaguchi – một nhà lập trình viên Java làm việc
tại Sun. Ông cảm thấy phiền phức và tốn thời gian khi những mã code liên tục fail
khi đưa vào deploy.

Để khắc phục tình trạng này, ông đã phát minh ra một phần mềm tên là Hudson với
sức năng tự động hóa để phát hiện ra các lỗi sai của code trước khi đưa vào deploy.
Hudson trở nên vô cùng thịnh hành và phổ biến trong thời bấy giờ.

Khi Sun được Oracle mua lại, Jenkins được forked từ Hudson và phát triển như
một phần mềm độc lập. Sau này Jenkins và Hudson tồn tại song song. Tuy vậy nhờ
những cải tiến cấp thiết phù hợp với thời đại, Jenkins trở nên phổ biến hơn rất
nhiều.

2.3. Cài đặt Jenkins


2.3.1. Windows
Điều kiện: Vì được dựa trên ngôn ngữ lập trình Java nên trước khi cài đặt Jenkins
yêu cầu cần có Java JDK. Hiện nay, Jenkins được hỗ trợ với Java 8 và Java 11.
Cài đặt Jenkins trên Windows

+ Bước 1: Truy cập website: https://www.jenkins.io/download/ và chọn nền tảng.


Trong trường hợp này ta chọn Windows

Hình 2. Chọn nền tảng để tải xuống


+ Bước 2: Đi tới thư mục tải xuống Jenkins trong máy tính của bạn và giải nén gói
đã tải xuống. Nhấp đúng vào jenkins.msi để giải nén:
Hình 3. Giải nén file Jenkins đã tải xuống
+ Bước 3: Trong màn hình cài đặt Jenkins, nhấp vào “Next”

Hình 4. Setup Jenkins


+ Bước 4: Chọn vị trí bạn muốn cài đặt phiên bản Jenkins (vị trí mặc định là C:\
Program Files (x86)\Jenkins) sau đó nhấn vào “Next”
Hình 5. Chọn vị trí lưu trữ app
+ Bước 5: Nhấn “Install”

Hình 6. Install
Trong quá trình cài đặt, một hộp thoại thông báo có thể bật lên để thông báo cho
người dùng biết rằng để thiết lập hoàn chỉnh, hệ thống sẽ được khởi động lại khi
kết thúc cài đặt hiện tại. Nhấp vào “OK” khi hộp thoại thông báo hiện lên
Hình 7. Thông báo khi cài đặt

2.3.2. War file


Phiên bản tệp ARchive (WAR) ứng dụng Web của Jenkins có thể được cài đặt trên
bất kỳ hệ điều hành nào hệ thống hoặc nền tảng hỗ trợ Java.

Để tải xuống và chạy phiên bản tệp WAR của Jenkins:

● Tải xuống tệp Jenkins WAR ổn định mới nhất vào thư mục thích hợp trên
máy của bạn.
● Mở cửa sổ terminal / command prompt vào thư mục tải xuống.
● Chạy lệnh java -jar jenkins.war.
● Duyệt đến localhost: 8080 và đợi cho đến khi trang “Unlock Jenkins” xuất
hiện.
● Tiếp tục với “Post-installation setup wizard” bên dưới.

Bạn có thể thay đổi cổng bằng cách chỉ định tùy chọn --httpPort khi bạn chạy java
-jar lệnh jenkins.war. Ví dụ: để làm cho Jenkins có thể truy cập thông qua cổng
9090, sau đó chạy Jenkins sử dụng lệnh:

java -jar jenkins.war --httpPort = 49001


2.4. Mở khóa Jenkins
Sau khi hoàn thành giai đoạn cài đặt Jenkins, ta sẽ tiến hành cấu hình nó. Các bước
tiếp theo sẽ hướng dẫn cách mở khóa ứng dụng Jenkins:

+ Bước 1: Sau khi hoàn tất quá trình cài đặt Jenkins, một tab trình duyệt sẽ bật lên
yêu cầu nhập mật khẩu Quản trị viên ban đầu. Để truy cập Jenkins, cần truy cập
vào đường dẫn sau trong trình duyệt web của mình: http://localhost:8080

Nếu có thể truy cập thành công vào URL ở trên, thì nó xác nhận rằng Jenkins đã
được cài đặt thành công trong hệ thống của bạn.

Hình 8. Unlock Jenkins


+ Bước 2: Mật khẩu quản trị viên ban đầu sẽ được tìm thấy trong đường dẫn cài
đặt Jenkins (Bước 4 trong hướng dẫn cài đặt Jenkins). Tìm file có tên là
initialAdminPassword có thể được tìm thấy trong thư mục secret.

Hình 9. Tìm file chứa mật khẩu mở khóa


+ Bước 3: Mở và sao chép nộp dung của file initialAdminPassword.

Hình 10. Chép mật khẩu từ file


+ Bước 4: Dán mật khẩu vào tab bật lên của trình duyệt
http://localhost:8080/login?form=%2F và ấn vào nút “Continue”

Hình 11. Dán mật khẩu và tiếp tục


2.5. Cấu hình Jenkins
Sau đây, nhóm sẽ giới thiệu một số cài đặt cơ bản trong Jenkins

+ Jenkins hoàn toàn mở, ai cũng có thể access vào nếu biết địa chỉ. Do đó để thiết
lập an toàn cho Jenkins chúng ta sử dụng trong Manage Jenkins. Đầu tiên các bạn
có thể tạo user acesss vào jenkins bằng Manage Jenkis -> Manage User -> create
user

Hình 12. Manage User


+ Configure Global Security Ở trang này, check “Enable Security, “Jenkins’ own
user database” dưới “Security Realm”. Sau đó, chọn “Project-based Matrix
Authorization Strategy” dưới “Authorization”. Từ đây, thêm “admin” và “github”
users, chọn hết permissions cho admin and chỉ “Read” for github. Các bạn có thể
kiểm tra theo ảnh dưới

Hình 13. Configure Global Security


+ Trang People(Trang chủ -> tab People) màn hình để xem user của jenkins

Hình 14. Tab People

2.6 Tính năng cơ bản trong Jenkins


2.6.1. Tạo job
+ Để tạo mới 1 job, các bạn vào phần New Item

Hình 15. Tạo 1 job trong Jenkins


+ Bước tiếp theo Chọn loại job để cấu hình

Hình 16. Chọn loại job


+ Bước tiếp theo ta sẽ cấu hình job để có thể chạy được file Scenario

● General: Phần này sẽ điền thông tin của job

Hình 17. General của job


● Maven Info Plugin Configuration: Phần này ta sẽ cấu hình cho Maven
Plugins
Nhập URL cho GitHub dự án

Hình 18. Nhập URL của project


● Source Code Management: Phần này sẽ chỉ ra repository để jenkins có thể
clone source code về

Hình 19. Source Code Management


● Builds: Phần này sẽ chỉ ra đường dẫn của file pom.xml (File cấu hình của dự
án), cùng với cài đặt command để thực hiện chạy test cho Job của chúng ta.

Hình 20. Builds


Phần Goals and options sẽ setting câu lệnh chạy test:
“Dtest=Example_TestRunnerIT test” , câu lệnh này sẽ giúp Maven thực thi file test
Runner là Example_TestRunnerIT.java

● Post-build Actions: Phần này ta sẽ add Cucumber Reports, để sau khi chạy
test sẽ xuất report cho chúng ta.

Hình 21. Add Cucumber reports


Sau khi config xong Job, ta save lại những gì đã cài đặt.
+ Run job

Để Run job sau khi config, các bạn bấm nút Build Now để chạy job đó

Hình 22. Build now


Job sẽ bắt đầu thực thi

Hình 23. Job được thực thi


Sau khi chạy xong, có thể check report chạy test tại đây, report được sử dụng trong
dự án này là Cucumber Report

Hình 24 . Check report


Nội dung report sẽ hiển thị rõ ràng

Hình 25. Report


2.6.2. Tích hợp Jenkins và Github
+ Đầu tiên, tạo một repository trên git

Hình 26. Tạo repository trên git


+ Cần add webhook trên git: vào Setting, chọn Webhooks-> Add webhook

Hình 27. Add webhooks


+ Ở trường Payload URL nhập vào link jenkins ( yêu cầu public link localhost của
jenkins, có thể sử dụng ngrok ), và thêm /github-webhook/. Sau đấy nhấn vào nút
“Add webhook” ở dưới

Hình 28. Nhập URL cho webhook


Khi thêm thành công, sẽ thấy dòng bên dưới
Hình 29. Add webhook thành công
+ Tiếp theo tạo 1 job mới trên jenkins

Hình 30. Tạo job


Ở Source Code Management nhập link repository, và chọn nhánh
Hình 31. Nhập link repository
Ở tab Build Triggers tick chọn vào “Github hook trigger for GITScm polling”

Hình 32. Build trigger


Sau đó “Save” job lại

+ Khi mỗi lần ta push code lên Git repository, jenkins sẽ nhập được request và
build code
Hình 33. Build History
2.7. Tính năng mở rộng: Jenkins Pipeline
2.7.1. Jenkins Pipeline là gì?
Jenkins Pipeline là một bộ plugin hỗ trợ việc triển khai và tích hợp CD theo kiểu

pipeline (bao gồm tập hợp quy trình với các tác vụ liên quan với nhau và được thực

hiện một cách tuần tự theo thứ tự đã quy định). Jenkins Pipeline được khai báo trên

một tập tin được gọi là Jenkinsfile.

Hình 34. Jenkins Pipeline


2.7.2. Jenkinsfile là gì?
Jenkinsfile là phần “lõi” của Jenkins Pipeline, được viết dựa trên cú pháp của DSL
(Domain Specific Language) với ngôn ngữ chính là: Groovy DSL. Tập tin này

chứa danh sách các công việc mà pipeline sẽ thực hiện, được lưu trữ trên server

Jenkins hoặc trên repository của git/Bitbucket.

Hình 35. Ví dụ Jenkinsfile


Jenkinsfile này sẽ thực hiện các tác vụ sau:

+ Thiết lập các biến môi trường.

+ Pull code từ git repo được chỉ định.

+ Thiết lập Jenkins workspace.

+ Thực thi đoạn script được chỉ định.

+ Sau khi thực hiện xong các tác vụ, “dọn dẹp” workspace

Nội dung trong Jenkinsfile trên bao gồm:


+ Trường pipeline{} là thành phần bắt buộc dùng để khai báo pipeline trong
Jenkinsfile.

+ Trường agent dùng để khai báo môi trường sẽ thực hiện. Nếu cấu hình là “any”
thì Jenkins sẽ sử dụng bất kỳ agent nào hiện có trên hệ thống.

+ Trường environment{} dùng để khai báo các biến môi trường cần thiết.

+ Trường stages{} dùng để khai báo các “giai đoạn” (stage) con bên trong
pipeline.

● Trường stage(‘Checkout: Code’) {} sẽ thực hiện việc tạo thư mục và clone
code từ git đã được chỉ định.
● Trường stage(‘Yum: Updates’) {} sẽ thực hiện việc thiết lập quyền truy cập
và thực thi đoạn script được chỉ định.

+ Trường post{} sẽ được thực thi sau khi các stage hoàn tất các công việc được chỉ
định. Trong Jenkinsfile trên, sau khi các stage đã thực hiện (kể cả không thành
công), workspace sẽ được xóa để tránh Jenkins bị lỗi trong lần thực thi pipeline
tiếp theo.

Lưu ý:

+ Tập tin Jenkinsfile cần được đặt ở thư mục root của repository khi lưu trữ trên
git/Bitbucket.

+ Tính năng pipeline có thể sẽ không tích hợp sẵn trên Jenkins trong một số trường
hợp. Bạn có thể cài đặt thêm tính năng này trong tính năng Manage Jenkins.

2.7.3. Các bước tạo và thực thi Jenkins Pipeline từ Jenkinsfile lưu trữ trên
git/Bitbucket
Yêu cầu: Đã cài đặt các plugin sau:
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 dưới và nhấn “OK”
Hình 37. Tạo Pipeline

+ Chọn “Pipeline script from SCM” ở mục “Advanced Project Options” (ở cuối
trang hoặc 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 nếu có. Sau đấy nhấn “Save” để lưu
thông tin lại
Hình 38. Pipeline: Advanced Project Options

+ Chọn “Build Now” để tiến hành thực thi Jenkins Pipeline.


Hình 39. Build Pipeline
+ Quá trình thực thi sẽ hiển thị thông tin và tình trạng các stage đã được khai báo
trong Jenkinsfile trong mục Stage View. Nếu stage có màu xanh tức là đã thực thi
thành công, màu đó là lỗi trong quá trình thực thi. Người dùng có thể xem log của
từng stage bằng cách chọn “Log” để xem log của từng stage.
CHƯƠNG 3. LAB THỰC HÀNH
3.1. Các bài lab
1. Cài đặt plugin Git cho Jenkins

- Bước 1:Nhấp vào nút Manage Jenkins trên bảng điều khiển Jenkins:

- Bước 2: Nhấp vào Manage Plugins:


- Bước 3:
1. Chọn Git Plugin
2. Nhấp vào Instal without restart. Sẽ mất vài phút để hoàn tất quá trình
tải xuống. Tùy chọn vào kết nối internet của bạn và sẽ được cài đặt tự
động.
3. Bạn cũng có thể chọn tùy chọn Download now and Install after restart.
Khi đó plugin sẽ được tải và được cài đặt sau khi Jenkins khởi động lại
4. Bạn sẽ được thấy thông báo “No updates available” nếu bạn đã cài đặt
plugin Git

- Bước 4: Sau khi các plugin được cài đặt, hãy đi tới Manage Jenkins trên
bảng điều khiển Jenkins của bạn. Bạn sẽ thấy được các plugin của mình
được hiển thị trong danh sách plugin như sau

2. Cách tích hợp Jenkins và Github


- Bước 1: Tạo công việc mới trong Jenkins, mở bảng điều khiển Jenkins bằng
URL Jenkins của 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 2 loại công việc và nhấp vào OK. Chúng
tôi sẽ tạo ra một dự án Freestyle project làm ví dụ

- Bước 3: Sau khi bạn nhấp vào OK, trang sẽ được chuyển hướng đến form
dự án. Tại đây bạn cần nhập thông tin dự án.:

- Bước 4: Bạn sẽ thấy tùy chọn Git trong tab Source Code Management nếu
plugin Git của bạn đã được cài đặt trong Jenkins.
- Bước 5: Nhập URL kho lưu trữ Git (Git repository) để lấy code từ Github.

- Bước 6: Bạn có thể nhận được thông báo lỗi lần đầu tiên bạn nhập URL kho
lưu trữ Git

Điều này xảy ra nếu máy bạn chưa cài đặt Git. Để cài đặt Git trong máy cục
bộ của bạn, hãy truy cập https://git-scm.com/downloads
Tải file cài đặt Git thích hợp cho hệ điều hành của bạn, trong trường hợp này
là Windows và cài đặt nó vào máy cục bộ chạy Jenkins của bạn. Hoàn thành
hướng dẫn trên màn hình để cài đặt Git

- Bước 7: Bạn có thể thực thi các kho lưu trữ Git trong Jenkins sau khi cài đăt
Git. Để kiểm tra xem nó đã được cài đặt thành công vào hệ thống của bạn
hay chưa, hãy mở cửa sổ dòng lệnh, gõ “Git” và nhấn Enter. Bạn sẽ thấy
những tùy chọn khác nhau xuất hiện cho Git.

- Bước 8: Khi bạn đã có mọi thứ, hãy them URL Git vào Jenkins. Bạn sẽ
không thấy bất kì thông báo lỗi nào cho tích hợp Jenkins Git:
Git đã được cấu hình đúng trên hệ thống của bạn.

3.2. Q&A
1.Thông tin của các lần build nằm ở danh mục nào ?
a) Build history
b) Console Output
c) Dashboard
d) Settings
Giải pháp : Thông tin sẽ được hiển thị ở dạng các thanh trạng thái, các lần build sẽ
hiển thị ở “Build History”. Nếu quá trình Build thành công thì sẽ đánh số thứ tự
các lần thực hiện cùng màu “xanh dương”. Còn nếu build thất bại thì sẽ là ‘màu
đỏ‘. 

2.Ta cần làm gì để sửa lỗi khi build thất bại :

a. Kiểm tra đầu ra của console để tìm kiếm các thay đổi file bị thiếu.
b. Dọn dẹp và cập nhật local workspace.
c. Kiểm tra cấu hình project/job
d. Tất cả các ý trên.
Giải pháp: Người dùng cần kiểm tra đầu ra của console và tìm các file bị thiếu khi
chạy chương trình. Nếu vẫn không tìm ra vấn đề tốt nhất ta nên dọn dẹp và cập
nhật local workspace.

3.Những cách tốt nhất bảo đảm cơ sở dữ liệu Jenkins an toàn :

Có rất nhiều cách để đảm bảo an ninh ở mức cao nhất khi nói đến Jenkins, nhưng
một số trong những cách (nhưng không giới hạn - có thể tìm hiểu thêm ở những
hướng dẫn Jenkins tutorial khác) đáng chú ý hơn là giữ an ninh toàn cầu, chạy
kiểm tra bảo mật, giữ cho cơ sở dữ liệu được 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 đang trở thành một vấn đề cũng được rất quan
tâm và kiến thức về an ninh mạng cũng có thể sẽ xuất hiện trong các câu hỏi phỏng
vấn về Jenkins.

4.Những cách tốt nhất bảo đảm cơ sở dữ liệu Jenkins an toàn :

Có rất nhiều cách để đảm bảo an ninh ở mức cao nhất khi nói đến Jenkins, nhưng
một số trong những cách (nhưng không giới hạn - có thể tìm hiểu thêm ở những
hướng dẫn Jenkins tutorial khác) đáng chú ý hơn là giữ an ninh toàn cầu, chạy
kiểm tra bảo mật, giữ cho cơ sở dữ liệu được 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 đang trở thành một vấn đề cũng được rất quan
tâm và kiến thức về an ninh mạng cũng có thể sẽ xuất hiện trong các câu hỏi phỏng
vấn về Jenkins.

5.Tại sao nên sử dụng Tích hợp liên tục (CI) với Jenkins?
Tình huống: Chắc rằng tất cả các bạn đều biết đến điện thoại Nokia cũ. Nokia đã
từng thực hiện một quy trình gọi là build hàng đêm. Sau nhiều commit từ các nhà
phát triển khác nhau trong ngày, phần mềm được build hàng đêm. Vì phần mềm
chỉ được build một lần trong ngày nên việc cô lập, xác định và sửa lỗi trong một
codebase lớn là một điều rất 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 được build
và thử nghiệm ngay sau khi một nhà phát triển commit code. Nếu bất kỳ lỗi nào
được phát hiện, nhà phát triển tương ứng có thể nhanh chóng sửa chữa lỗi đó.
CHƯƠNG 4. ĐÁNH GIÁ - KẾT LUẬN

4.1. Đánh giá ưu điểm của Jenkins


- Jenkins đang được quản lý bởi cộng đồng rất cởi mở. Hàng tháng, họ tổ chức các
cuộc họp công khai và lấy ý kiến từ công chúng để phát triển dự án Jenkins.

- Cho đến nay khoảng 280 ticket đã được đóng và dự án phát hành ổn định ba
tháng một lần.

- Khi công nghệ phát triển, Jenkins cũng vậy. Cho đến nay Jenkins đã có khoảng
320 plugin được xuất bản trong cơ sở dữ liệu plugin của mình. Với các plugin,
Jenkins thậm chí còn trở nên mạnh mẽ hơn và nhiều tính năng hơn.

- Jenkins cũng hỗ trợ kiến trúc dựa trên đám mây để bạn có thể triển khai Jenkins
trên các nền tảng dựa trên đám mây.

- Lý do tại sao Jenkins trở nên phổ biến là nó được tạo ra bởi một nhà phát triển
dành cho các nhà phát triển.

4.2. Đánh giá nhược điểm của Jenkins


- Mặc dù Jenkins là một công cụ rất mạnh, nhưng nó có những nhược điểm.

- Cài đặt Jenkins khá dễ dàng và đơn giản nhưng production lại gây những khó
khăn cho người sử dụng. Bởi vậy, việc triển khai pipeline bằng Jenkinsfile sẽ đòi
hỏi phải lập trình bằng các ngôn ngữ khai báo riêng của nó.

- Hệ thống open source là một trong những kiến trúc đơn máy chủ, nó sẽ giúp cho
việc cài đặt trở nên dễ dàng hơn. Mặc dù vậy, nó có thể giới hạn được tài nguyên
của máy tính, máy ảo hoặc container. Khi đó, Jenkins lại không cho phép liên kết
giữa những máy chủ nếu như nó có thể gây ảnh hưởng đến hiệu năng.

- Jenkins thường hoạt động dựa vào các kiến trúc, công nghệ Java cũ và đặc biệt là
các servlet và Maven.
- Giao diện của nó đã lỗi thời và 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 hiện tại.

- Mặc dù Jenkins được nhiều nhà phát triển yêu thích, nhưng việc duy trì nó không
dễ dàng. Vì Jenkins chạy trên một máy chủ và yêu cầu một số kỹ năng như quản trị
viên máy chủ để giám sát hoạt động của nó.

- Một trong những lý do tại sao nhiều người không triển khai Jenkins là do nó khó
cấu hình.

- Tích hợp liên tục (CI) thường xuyên bị hỏng do một số thay đổi cài đặt nhỏ. Tích
hợp liên tục sẽ bị tạm dừng và do đó cần một số nhà phát triển chú ý.

4.3. Kết luận


- Trong đồ án, nhóm đã tổng hợp được đầy đủ thông tin liên quan đến việc sử dụng
công cụ Jenkins. Với những nhà phát triển đang tìm hiểu về các tác vụ tự động hóa
thì không thể không bỏ qua công cụ này.

- Jenkins là một opensource dùng để thực hiện chức năng tích hợp liên tục (gọi là
CI – Continuous Integration) và xây dựng các tác vụ tự động hóa. Nó tích hợp các
source code của các members trong team lại nhanh chóng một cách liên tục, theo
dõi sự thực thi và trạng thái thông qua các bước kiểm thử (Integration test, units
test). Tất nhiên là nhằm giúp sản phẩm chạy ổn định.

- Cho phép lưu trữ thông tin đăng nhập trong Jenkins. Cung cấp một API chuẩn
hóa cho các plugin khác để lưu trữ và truy xuất các loại thông tin xác thực khác
nhau.

- Jenkins giúp tự động hóa các quy trình trong phát triển phần mềm, hiện nay được
gọi theo thuật ngữ tích hợp liên tục. Jenkins là một phần mềm dạng server, chạy
trên nền serlver với sự hỗ trợ của Apche Tomcat. Nó hỗ trợ hầu hết các phần mềm
quản lý mã nguồn phổ biến hiện nay như Git, Maven, Gradle

TÀI LIỆU THAM KHẢO


Jenkins Handbook: https://www.jenkins.io/doc/book/

You might also like