KIỂM THỬ PHẦN MỀM, NGHIÊN CỨU VÀ SỬ DỤNG JMETER,Kiểm thử phần mềm là một phương pháp để kiểm tra sản phẩm phần mềm thực tế có phù hợp với các yêu cầu mong đợi hay không, đảm bảo sản phẩm phần mềm không có khiếm khuyết. Liên quan đến việc thực thi các thành phần phần mềm hệ thống bằng cách sử dụng các công cụ thủ công hoặc tự động để đánh giá một hoặc nhiều thuộc tính quan tâm. Mục đích của kiểm thử phần mềm là xác định các lỗi, khoảng trống hoặc các yêu cầu còn thiếu đối lập với các yêu cầu thực tế.
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
======***======
BÁO CÁO THỰC NGHIỆM THUỘC HỌC PHẦN:
KIỂM THỬ PHẦN MỀM
ĐỀ TÀI: NGHIÊN CỨU VÀ SỬ DỤNG JMETER
Nhóm - Lớp: Nhóm 20 - 20212IT6013002
Trang 2BÁO CÁO THỰC NGHIỆM THUỘC HỌC PHẦN:
KIỂM THỬ PHẦN MỀM
ĐỀ TÀI: NGHIÊN CỨU VÀ SỬ DỤNG JMETER
Nhóm - Lớp: Nhóm 20 - 20212IT6013002
Thành viên:
Hà nội, 2022
Trang 3DANH MỤC CÁC HÌNH VẼ 1
DANH MỤC CÁC BẢNG 3
LỜI CẢM ƠN 4
CHƯƠNG 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 5
1.1 Khái niệm 5
1.2 Các kĩ thuật cơ bản của kiểm thử phần mềm 5
1.2.1 Kiểm thử hộp đen 5
1.2.2 Kiểm thử hộp trắng 5
1.3 Quy trình kiểm thử phần mềm 6
CHƯƠNG 2 TỔNG QUAN VỀ NỘI DUNG NGHIÊN CỨU 9
2.1 Giới thiệu Jmeter 9
2.2 Cài đặt Jmeter 11
2.3 Tổng quan về giao diện Jmeter 13
2.4 Các thành phần Jmeter 13
2.5 Một số chức năng thường sử dụng trong Jmeter 19
2.5.1 HTTP Request 19
2.5.2 FTP Request 23
2.5.3 JDBC Request 25
CHƯƠNG 3 ỨNG DỤNG KIỂM THỬ 28
3.1 Lập kế hoạch đánh giá 28
3.1.1 Môi trường kiểm thử 28
Trang 4DANH MỤC CÁC HÌNH VẼ
Hình 2.1 Cách thức hoạt động của Jmeter 10
Hình 2.2 Kiểm tra phiên bản java 11
Hình 2.3 Chọn phiên bản cài đặt JMeter 11
Hình 2.4 Tệp jmeter.bat 12
Hình 2.5 Tệp jmeter-server.bat 13
Hình 2.6 Màn hình chính JMeter 13
Hình 2.7 Một số yếu tố phổ biến trong JMeter 14
Hình 2.8 Mô phỏng yêu cầu người dùng đến máy chủ thử nghiệm 14
Hình 2.9 FTP Request 15
Hình 2.10 Ví dụ FTP Request 15
Hình 2.11 Ví dụ HTTP Request 16
Hình 2.12 Mô tả JDBC Request 16
Hình 2.13 Ví dụ JDBC Request 16
Hình 2.14 Access log sampler 17
Hình 2.15 Các kiểu hiển thị kết quả của việc thực hiện kiểm tra 17
Hình 2.16 Hiển thị kết quả kiểu biểu đồ 18
Hình 2.17 Hiển thị kết quả kiểu cây dữ liệu 18
Hình 2.18 Hiển thị kết quả dạng bảng 19
Hình 2.19 Hiển thị tóm tắt kết quả trong tệp văn bản 19
Hình 2.20 HTTP Request tạo nhóm chủ đề 20
Hình 2.21 HTTP Request các thuộc tính nhóm chủ đề 20
Hình 2.22 HTTP Request tạo HTTP Request Default 21
Hình 2.23 HTTP Request Default Nhập tên trang web kiểm tra 21
Hình 2.24 Tạo HTTP Request 22
Hình 2.25 HTTP Request tạo đường dẫn kiểm tra 22
Hình 2.26 HTTP Request tạo hiển thị kết quả dạng đồ thị 22
Hình 2.27 HTTP Request kết quả kiểm tra 23
Hình 2.28 FTP Request tạo nhóm chủ đề 23
Hình 2.29 FTP Request tạo nhóm chủ đề FTP Users 24
Hình 2.30 FTP Request tạo FTP Request Default 24
Hình 2.31 FTP Request tạo FTP Request cho file1 và file2 24
Hình 2.32 FTP Request tạo hiển thị kết quả dạng bảng 24
Hình 2.33 FTP Request kết quả kiểm tra 25
Trang 5Hình 2.34 JDBC Request tạo nhóm chủ đề 25
Hình 2.35 JDBC Request tạo nhóm chủ đề JDBC Users 25
Hình 2.36 JDBC Request tạo JDBC Configuration 26
Hình 2.37 JDBC Request tạo JDBC Request 26
Hình 2.38 JDBC Request tạo hiển thị kết quả dạng báo cáo 27
Hình 2.39 JDBC Request kết quả kiểm tra 27
Hình 3.1 Các plugin sử dụng 29
Hình 3.2 Kết quả kiểm thử cơ sở 30
Hình 3.3 Thời gian đáp ứng chấp nhận được của hệ thống 31
Hình 3.4 Thiết lập kịch bản kiểm thử 32
Hình 3.5 Kết quả thử nghiệm với số người dùng đồng thời khác nhau 34
Hình 3.6 Tỉ lệ lỗi với số người dùng đồng thời khác nhau 35
Hình 3.7 Kết quả chạy thử nghiệm dưới dạng biểu đồ 35
Trang 6DANH MỤC CÁC BẢNG
Bảng 3.1 Cấu hình máy kiểm thử 28Bảng 3.2 Kịch bản kiểm thử 29
Trang 7LỜI CẢM ƠN
Lời đầu tiên, nhóm em xin gửi lời tri ân sâu sắc đến thầy ThS Hoàng
Quang Huy Trong quá trình tìm hiểu và học tập môn Kiểm thử phần mềm,
nhóm đã nhận được sự hướng dẫn và những chia sẻ rất tận tình, tâm huyết của thầy Từ những hướng dẫn tận tình của thầy cùng với kiến thức mà nhóm đã học
tập, tìm hiểu, chúng em đã hoàn thành báo cáo đề tài “Nghiên cứu và sử dụng
JMeter”.
Với tất cả sự cố gắng, nỗ lực của mình, nhóm em đã hoàn thành tốt nhất bài báo cáo này Nhưng chúng em vẫn rất mong nhận được sự góp ý của thầy
cô và các bạn để bài báo cáo của chúng em được hoàn thiện hơn
Kính chúc thầy cô thật nhiều sức khoẻ và hạnh phúc.
Nhóm em xin chân thành cảm ơn!
Trang 8CHƯƠNG 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM
1.1 Khái niệm
Kiểm thử phần mềm là một phương pháp để kiểm tra sản phẩm phần
mềm thực tế có phù hợp với các yêu cầu mong đợi hay không, đảm bảo sảnphẩm phần mềm không có khiếm khuyết Liên quan đến việc thực thi các thànhphần phần mềm / hệ thống bằng cách sử dụng các công cụ thủ công hoặc tựđộng để đánh giá một hoặc nhiều thuộc tính quan tâm Mục đích của kiểm thửphần mềm là xác định các lỗi, khoảng trống hoặc các yêu cầu còn thiếu đối lậpvới các yêu cầu thực tế
1.2 Các kĩ thuật cơ bản của kiểm thử phần mềm
1.2.1 Kiểm thử hộp đen
Kiểm thử hộp đen là một phương pháp kiểm thử phần mềm trong đó các
chức năng của ứng dụng phần mềm được kiểm tra mà không cần có kiến thức vềcấu trúc mã nội bộ, chi tiết triển khai và đường dẫn nội bộ Kiểm thử hộp đenchủ yếu tập trung vào đầu vào và đầu ra của các ứng dụng phần mềm và hoàntoàn dựa trên các yêu cầu và thông số kỹ thuật của phần mềm Kiểm thử hộp đencòn được gọi là kiểm tra hành vi
1.2.2 Kiểm thử hộp trắng
White Box Testing (kiểm thử hộp trắng) là kỹ thuật kiểm thử phần
mềm trong đó cấu trúc bên trong, thiết kế và mã hóa của phần mềm được kiểmtra để xác minh luồng đầu vào-đầu ra, cải thiện thiết kế, khả năng sử dụng vàbảo mật Trong kiểm thử hộp trắng người kiểm thử có thể nhìn thấy mã bêntrong nên còn được gọi với tên khác như Kiểm thử hộp rõ ràng (Clear boxtesting), Kiểm thử hộp mở (Open box testing), Kiểm thử hộp trong suốt(Transparent box testing), Kiểm thử dựa trên mã (Code-based testing) và Kiểmthử hộp thủy tinh (Glass box testing)
Trang 91.3 Quy trình kiểm thử phần mềm
- Phân tích yêu cầu: Nhóm kiểm tra nghiên cứu các yêu cầu từ quan
điểm kiểm thử để xác định các yêu cầu có thể kiểm thử và nhóm
QA có thể tương tác với các bên liên quan khác nhau để hiểu cácyêu cầu một cách chi tiết Các yêu cầu có thể là chức năng hoặc phichức năng Tính khả thi của tự động hóa cho dự án kiểm thử cũngđược thực hiện trong giai đoạn này
o Đầu vào: Bao gồm các tài liệu đặc tả yêu cầu, tài liệu thiết
kế hệ thống, tài liệu khách hàng yêu cầu về các tiêu chí chấpnhận của sản phẩm, bản mẫu của khách hàng yêu cầu (nếucó)
o Đầu ra: Bao gồm tài liệu chứa các câu hỏi và câu trả lời liên
quan đến nghiệp vụ của hệ thống, tài liệu báo cáo tính khảthi, phân tích rủi ro của việc kiểm thử phần mềm
- Lập kế hoạch kiểm thử: là giai đoạn trong đó người quản lý cấp
cao QA xác định chiến lược kế hoạch kiểm thử cùng với những nỗlực và ước tính chi phí cho dự án Hơn nữa, các nguồn lực, môi
Kết thúc kiểm thử Thực thi kiểm thử Chuẩn bị môi trường kiểm thử Thiết kế kịch bản kiểm thử Lập kế hoạch kiểm thử Phân tích yêu cầu kiểm thử
Trang 10yêu cầu, tài liệu báo cáo tính khả thi, phân tích rủi ro của việckiểm thử phần mềm.
o Đầu ra: Bao gồm các tài liệu như kế hoạch kiểm thử, ước
tính thử nghiệm, lịch trình kiểm thử
- Thiết kế kịch bản kiểm thử: bao gồm việc tạo, xác minh và làm
lại các trường hợp kiểm thử & tập lệnh kiểm thử sau khi kế hoạchkiểm thử đã sẵn sàng Ban đầu, dữ liệu kiểm thử được xác định,được tạo và xem xét và sau đó được làm lại dựa trên các điều kiệntiên quyết Cuối cùng, nhóm QA bắt đầu quá trình phát triển cáctrường hợp kiểm thử cho các đơn vị riêng lẻ
o Đầu vào: Bao gồm các tài liệu như kế hoạch kiểm thử, ước
tính thử nghiệm, lịch trình kiểm thử của đầu ra trong giaiđoạn Lập kế hoạch kiểm thử và các tài liệu đặc tả được cậpnhật
o Đầu ra: Bao gồm các tài liệu thiết kế kiểm thử, test
case(trường hợp thử nghiệm), các danh mục và dữ liệu cầnkiểm thử,kịch bản tự động kiểm thử
- Chuẩn bị môi trường kiểm thử: quyết định các điều kiện phần
mềm và phần cứng mà theo đó một sản phẩm làm việc được thửnghiệm Đây là một trong những khía cạnh quan trọng của quá trìnhthử nghiệm và có thể được thực hiện song song với giai đoạn Thiết
kế trường hợp kiểm thử Nhóm kiểm thử có thể không tham gia vàohoạt động này nếu nhóm phát triển cung cấp môi trường kiểm thử.Nhóm kiểm thử được yêu cầu thực hiện kiểm tra mức độ sẵn sàng(smoke testing) của môi trường nhất định
o Đầu vào: Là kết quả đầu ra của giai đoạn Thiết kế kịch bản
kiểm thử
o Đầu ra: Môi trường đã được cài đặt đúng theo yêu cầu, sẵn
sàng cho việc kiểm thử và kết quả của smoke test case
- Thực thi kiểm thử: được thực hiện bởi người kiểm thử, trong đó
kiểm thử bản dựng phần mềm được thực hiện dựa trên các kế hoạchkiểm thử và các trường hợp kiểm thử đã chuẩn bị Quá trình nàybao gồm việc thực thi tập lệnh thử nghiệm, bảo trì tập lệnh thửnghiệm và báo cáo lỗi Nếu lỗi được báo cáo thì nó sẽ được hoàn
Trang 11nguyên trở lại nhóm phát triển để sửa chữa và sẽ thực hiện kiểm tralại.
o Đầu vào: Bao gồm các tài liệu thiết kế kiểm thử, test case
(trường hợp thử nghiệm), các danh mục và dữ liệu cần kiểmthử, kịch bản tự động kiểm thử trong đầu ra của giai đoạnThiết kịch bản kiểm thử
o Đầu ra: Bao gồm tài liệu đặc tả kết quả kiểm thử, danh sách
các lỗi tìm được
- Kết thúc kiểm thử: là giai đoạn hoàn thành việc thực hiện thử
nghiệm bao gồm một số hoạt động như báo cáo hoàn thành kiểmthử, thu thập kết quả kiểm thử Các thành viên trong nhóm kiểmthử gặp gỡ, thảo luận và phân tích các tài liệu kiểm thử để xác địnhcác chiến lược phải được thực hiện trong tương lai, rút ra bài học từchu trình kiểm thử hiện tại Ý tưởng là để loại bỏ tắc nghẽn quytrình cho các chu kỳ kiểm thử trong tương lai
o Đầu vào: bao gồm tất cả những tài liệu liên quan đã được
tổng hợp, ghi chép và hoàn thiện đầy đủ trong suốt quy trìnhkiểm thử của dự án
o Đầu ra: gồm các tài liệu: Test report (báo cáo kiểm thử),
Test result (kết quả kiểm thử)
Trang 12CHƯƠNG 2 TỔNG QUAN VỀ NỘI DUNG NGHIÊN CỨU
2.1 Giới thiệu Jmeter
Apache JMeterTM là phần mềm mã nguồn mở thuần Java, được phát
triển lần đầu tiên bởi Stefano Mazzocchi thuộc Apache Software Foundation,được thiết kế để kiểm thử hành vi chức năng (load test functional behavior) và
đo lường hiệu suất Có thể sử dụng JMeter để phân tích và đo lường hiệu suấtcủa ứng dụng web hoặc nhiều dịch vụ khác nhau Kiểm thử hiệu suất có nghĩa làkiểm thử một ứng dụng web với sức tải, lưu lượng người dùng đồng thời JMeterban đầu được sử dụng để kiểm thử ứng dụng Web hoặc ứng dụng FTP Ngàynay, JMeter được sử dụng để kiểm thử chức năng, kiểm thử máy chủ cơ sở dữliệu, v.v
Ưu điểm của Jmeter:
- Open-source license: JMeter hoàn toàn miễn phí, cho phép nhà
phát triển sử dụng mã nguồn để phát triển
- Friendly GUI: JMeter cực kỳ dễ sử dụng và không mất thời gian
để làm quen
- Platform independent: JMeter là ứng dụng Java thuần túy 100%.
Vì vậy, Jmeter có thể chạy trên nhiều nền tảng
- Full multithreading framework: JMeter cho phép lấy mẫu đồng
các chức năng khác nhau bởi một nhóm luồng riêng biệt
- Visualize Test Result: Kết quả kiểm tra có thể được hiển thị ở một
định dạng khác như biểu đồ, bảng, cây và tệp
- Easy installation: Chỉ cần sao chép và chạy tệp * bat để chạy
JMeter Không cần cài đặt
- Highly Extensible: Có thể viết các trường hợp kiểm thử của riêng
người phát triển JMeter hỗ trợ các plug-in trực quan hóa cho phép
mở rộng kiểm thử
- Simulation: JMeter có thể mô phỏng nhiều người dùng với các
luồng đồng thời, tạo ra một tải nặng đối với ứng dụng web đangđược kiểm thử
- Record & Playback – Record: hoạt động của người dùng trên
trình duyệt và mô phỏng chúng trong ứng dụng web bằng Jmeter
Trang 13Hình 2.1 Cách thức hoạt động của Jmeter
- Script Test: Jmeter có thể được tích hợp với Bean Shell &
Selenium để kiểm tra tự động
JMeter mô phỏng một nhóm người dùng gửi yêu cầu đến máy chủ và trả
về thông tin thống kê của máy chủ thông qua sơ đồ đồ họa (graphical diagrams)
JMeter sử dụng trên các hệ điều hành phổ biến hiện nay: Linux,Windows, Mas OS, Ubuntu
Cách thức hoạt động của Jmeter:
Bắt đầu
Tạo request đến server
và mô phỏng một số lượng người dùng
Trang 142.2 Cài đặt Jmeter
Bước 1: Cài đặt Java
- Cài đặt Java JDK
- Kiểm tra trên Windows / Linux: nhập lệnh java-version
Hình 2.2 Kiểm tra phiên bản java
Bước 2: Tải xuống JMeter
- Phiên bản mới nhất của JMeter là Apache JMeter 5.4.3 Có thể tải
về tại Apache JMeter - Download Apache JMeter
- Chọn tệp Binaries (zip hoặc tgz) để tải xuống như trong hình bên
dưới
Hình 2.3 Chọn phiên bản cài đặt JMeter
Bước 3: Cài đặt
- Cài đặt JMeter cực kỳ dễ dàng và đơn giản Chỉ cần giải nén tệp zip
/ tgz vào thư mục muốn cài đặt JMeter
Trang 15Bước 4: Khởi chạy
- Có thể khởi động JMeter ở 3 chế độ
o GUI Mode
o Server Mode
o Command Line Mode
- Khởi động JMeter ở Chế độ GUI
- Nếu sử dụng Window, chỉ cần chạy tệp /bin/jmeter.bat để khởi
động JMeter ở chế độ GUI
Hình 2.4 Tệp jmeter.bat
- Cách chạy JMeter ở Chế độ không GUI
o Khởi động JMeter ở Chế độ máy chủ Chế độ máy chủ được
sử dụng để kiểm tra phân tán Hoạt động như một mô hìnhmáy khách-máy chủ Trong mô hình, JMeter chạy trên máychủ ở chế độ máy chủ Trên máy khách, JMeter chạy ở chế
độ GUI
o Khởi động chế độ máy chủ, chạy tệp bat \ jmeter-server.batnhư hình dưới
Trang 17Hình 2.7 Một số yếu tố phổ biến trong JMeter
- Thread Group:
o Thread Group là một tập hợp các chủ đề Mỗi luồng đại diệncho một người dùng sử dụng ứng dụng đang được thửnghiệm Mỗi luồng mô phỏng một yêu cầu thực của ngườidùng đến máy chủ
o Các điều khiển cho một nhóm chủ đề cho phép đặt số lượngchủ đề cho mỗi nhóm
o Ví dụ: nếu đặt số luồng là 100, JMeter sẽ tạo và mô phỏng
100 yêu cầu của người dùng đến máy chủ đang được thửnghiệm
Hình 2.8 Mô phỏng yêu cầu người dùng đến máy chủ thử nghiệm
Trang 18- FTP request:
o Bộ điều khiển cho phép gửi yêu cầu “tải tệp xuống” hoặc
“tệp tải lên” tới máy chủ FTP
Hình 2.9 FTP Request
o Ví dụ: nếu muốn tải xuống tệp “Test.txt” từ máy chủ FTPđang được kiểm tra, cần định cấu hình một số tham số trongJMeter như hình dưới
HTTP RequestFTP Request
Sampler
Trang 19o Ví dụ: JMeter gửi một yêu cầu HTTP đến trang web củaGoogle và truy xuất các tệp HTML hoặc hình ảnh từ trangweb này.
Trang 20Hình 2.13 Ví dụ JDBC Request
- Access Log Sampler:
o Cho phép đọc nhật ký truy cập và tạo các yêu cầu HTTP.Nhật ký có thể là hình ảnh, Html, CSS…
Hình 2.14 Access log sampler
- Listeners:
o Hiển thị kết quả của việc thực hiện kiểm tra Có thể hiển thịkết quả ở một định dạng khác, chẳng hạn như cây, bảng, biểu
đồ hoặc tệp nhật ký
Trang 21Hình 2.15 Các kiểu hiển thị kết quả của việc thực hiện kiểm tra
Hình 2.16 Hiển thị kết quả kiểu biểu đồ
Trang 22Hình 2.17 Hiển thị kết quả kiểu cây dữ liệu
Hình 2.18 Hiển thị kết quả dạng bảng
Trang 23Hình 2.19 Hiển thị tóm tắt kết quả trong tệp văn bản
2.5 Một số chức năng thường sử dụng trong Jmeter
2.5.1 HTTP Request
- Cho phép gửi một yêu cầu HTTP / HTTPS đến một máy chủ web
- Ví dụ tạo kiểm tra hiệu suất
o Tạo nhóm chủ đề
Hình 2.20 HTTP Request tạo nhóm chủ đề
o Nhập các thuộc tính
Trang 24Hình 2.21 HTTP Request các thuộc tính nhóm chủ đề
o Tạo HTTP Request Default
Hình 2.22 HTTP Request tạo HTTP Request Default
o Nhập tên trang web kiểm tra trong bảng điều khiển HTTPRequest Default
Trang 25Hình 2.23 HTTP Request Default Nhập tên trang web kiểm tra
o Tạo HTTP Request
Hình 2.24 Tạo HTTP Request
o Tạo đường dẫn muốn kiểm tra
Hình 2.25 HTTP Request tạo đường dẫn kiểm tra
o Tạo hiển thị kết quả dạng đồ thị