Kiểm thử tải, vì thế, là một biện pháp cần thiết giúp xác định trước giới hạn và khả năng chịu tải của hệ thống, qua đó hỗ trợ việc tối ưu hóa và nâng cao hiệu suất nhằm đáp ứng các tình
Trang 1TRƯỜNG ĐẠI HỌC LAO ĐỘNG – XÃ HỘI (CƠ SỞ II)
KHOA GIÁO DỤC ĐẠI CƯƠNG
TIỂU LUẬN MÔN: KIỂM THỬ PHẦN MỀM
ĐỀ TÀI:
KIỂM THỬ TẢI TRANG WEB
GVHD: ThS Phạm Trọng Huynh Sinh viên/ Nhóm thực hiện:
SV Châu Kim Phụng – Lớp Đ21HT1
SV Nguyễn Thị Lệ Huyền – Lớp Đ21HT1
TP Hồ Chí Minh, tháng 12 năm 2024
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
Cán bộ chấm thi 1 Cán bộ chấm thi 2
Trang 3MỤC LỤC
DANH MỤC BẢNG BIỂU 1
DANH MỤC HÌNH ẢNH 3
MỞ ĐẦU 5
Lý do chọn đề tài 5
Mục tiêu nghiên cứu 6
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 8
1.1 Khái niệm kiểm thử phần mềm 8
1.2 Các loại kiểm thử phần mềm 8
1.3 Vai trò của kiểm thử phần mềm 10
1.4 Khái niệm kiểm thử tải 10
1.5 Vai trò của kiểm thử tải 10
1.6 Phân loại các loại tải trong kiểm thử 11
1.6.1 Tải tĩnh (Static Load) 11
1.6.2 Tải động (Dynamic Load) 11
1.6.3 Tải tăng đột ngột (Spike Load) 11
1.7 Phương pháp thực hiện kiểm thử tải 12
1.7.1 Phương pháp tăng dần tải (Incremental Load Testing) 12
1.7.2 Kiểm thử căng thẳng (Stress Testing) 12
1.7.3 Kiểm thử tải duy trì (Endurance Testing) 12
1.7.4 Kiểm thử khả năng chịu tải (Capacity Testing) 12
1.7.5 Phương pháp tải được áp dụng 13
1.8 Các công cụ kiểm thử tải phổ biến 13
1.8.1 Giới thiệu các công cụ kiểm thử tải 13
1.8.2 Apache JMeter 13
1.8.3 Locust 14
1.8.4 Gatling 15
1.8.5 Apache Bench 15
1.8.7 Tiêu chí lựa chọn công cụ kiểm thử tải 16
1.9 Ý nghĩa của kiểm thử tải trong phát triển phần mềm 17
CHƯƠNG 2: QUY TRÌNH THỰC HIỆN KIỂM THỬ TẢI 18
2.1 Phân tích yêu cầu kiểm thử tải 18
Trang 42.2 Lập kế hoạch kiểm thử 19
2.2.1 Phạm vi kiểm thử 19
2.2.2 Hướng tiếp cận 21
2.3 Phát triển kịch bản kiểm thử 22
2.4 Thiết lập môi trường kiểm thử 25
2.5 Thực hiện kiểm thử tải 25
2.5.1 Thêm Thread Group 25
2.5.2 Thêm HTTP Request 27
2.5.2.1 Cấu hình yêu cầu để kiểm thử tải trang chủ Shopee 27
2.5.2.2 Cấu hình yêu cầu kiểm thử tải trường Lao động - Xã hội (II) 28
2.5.2.3 Cấu hình yêu cầu để kiểm thử tải trang học tiếng anh Study4 28
2.5.3 Thêm Listener 29
2.6 Kết thúc chu kỳ kiểm thử 30
2.6.1 Đối với trang chủ Shopee 30
2.6.2 Đối với trang Trường Lao động - Xã hội (II) 31
2.6.3 Đối với trang học tiếng anh Study4 32
CHƯƠNG 3: ĐÁNH GIÁ VÀ PHÂN TÍCH KẾT QUẢ 33
3.1 Đối với trang chủ Shopee 33
3.1.1 Tính toán kết quả mong đợi 33
3.1.2 Đánh giá kết quả thực tế khi kiểm thử tải trang chủ Shopee 36
3.1.3 Phân tích kết quả kiểm thử tải cho trang chủ Shopee 39
3.2 Đối với trang trường Đại học Lao động - Xã hội (II) 40
3.2.1 Tính toán kết quả mong đợi 40
3.2.2 Đánh giá kết quả khi kiểm thử tải trang Đại học Lao động - Xã hội (II) 43
3.2.3 Phân tích kết quả kiểm thử tải trang trường Lao động - Xã hội (II) 46
3.3 Kết quả kiểm thử tải trang học tiếng anh Study4 47
3.3.1 Tính toán kết quả mong đợi 47
3.3.2 Đánh giá kết quả thực tế khi kiểm thử tải trang Study4 50
3.3.3 Phân tích kết quả kiểm thử tải cho trang trường Lao động - Xã hội (II) 53
KẾT LUẬN 54
DANH MỤC TÀI LIỆU THAM KHẢO 55
Trang 5DANH MỤC BẢNG BIỂU
Bảng 1 Mô tả Test Case kiểm thử trang chủ Shopee 22 Bảng 2 Mô tả Test Case kiểm thử trang trường Lao động – Xã hội (II) 23 Bảng 3 Mô tả Test Case kiểm thử trang chủ Study4 24 Bảng 4 Tổng hợp kết quả kiểm thử tải của trang chủ Shopee 33 Bảng 5 Kết quả trung bình (kết quả mong đợi) khi kiểm thử trang chủ
trường Lao động - Xã hội (II)
41
Bảng 12 Mô tả Test Case kiểm thử tải trang trường Lao động - Xã hội
(II) khi có kết quả mong đợi
Trang 6Bảng 15 Đánh giá kết quả khi kiểm thử 2000 người với trang trường Lao
động - Xã hội (II)
45
Bảng 16 Tổng hợp kết quả kiểm thử của trang Study4 47
Bảng 17 Kết quả trung bình (kết quả mong đợi) khi kiểm thử trang
Trang 7DANH MỤC HÌNH ẢNH
Hình 2 Giao diện trang trường Lao động - Xã hội (II) 20
Hình 9 Cấu hình yêu cầu để kiểm thử tải trang chủ Shopee 27
Hình 10 Cấu hình yêu cầu để kiểm thử tải trang trường Lao động - Xã
hội (II)
28
Hình 11 Cấu hình yêu cầu để kiểm thử tải trang học tiếng anh Study4 28
Trang 8Hình 19 Summary Report của 500 người dùng ảo 32
Trang 9MỞ ĐẦU
Lý do chọn đề tài
Đề tài kiểm thử tải là một lựa chọn mang tính thực tiễn cao và đóng vai trò thiết yếu trong sự phát triển của các hệ thống và ứng dụng phần mềm hiện đại Trong bối cảnh ngày càng có nhiều ứng dụng và dịch vụ trực tuyến phục vụ hàng triệu người dùng trên khắp thế giới, yêu cầu về khả năng chịu tải và duy trì hiệu suất ổn định trở nên vô cùng quan trọng
Đối với bất kỳ một hệ thống hay dịch vụ nào, từ các ứng dụng di động đến các website thương mại điện tử và các hệ thống ngân hàng trực tuyến, khi số lượng người dùng tăng lên đột ngột, nếu hệ thống không đủ sức chịu tải thì sẽ dẫn đến hiện tượng chậm trễ, thậm chí ngưng hoạt động, gây tổn thất cả về tài chính lẫn uy tín cho các doanh nghiệp Kiểm thử tải, vì thế, là một biện pháp cần thiết giúp xác định trước giới hạn và khả năng chịu tải của hệ thống, qua đó hỗ trợ việc tối ưu hóa và nâng cao hiệu suất nhằm đáp ứng các tình huống trong thực tế
Kiểm thử tải đóng góp không nhỏ vào việc cải thiện trải nghiệm người dùng Khách hàng luôn kỳ vọng rằng các ứng dụng hoặc dịch vụ trực tuyến mà họ sử dụng phải hoạt động nhanh chóng và mượt mà bất kể số lượng người truy cập là bao nhiêu Khi một hệ thống không được tối ưu hóa để chịu tải, điều này không chỉ khiến người dùng cảm thấy khó chịu mà còn làm giảm khả năng quay lại sử dụng dịch vụ Do đó, thông qua việc kiểm thử tải, các doanh nghiệp có thể đảm bảo rằng hệ thống vẫn duy trì được tốc độ xử
lý và tính ổn định ngay cả trong điều kiện tải nặng, góp phần tạo nên sự hài lòng và giữ chân người dùng Đồng thời, kiểm thử tải còn là cách để phát hiện sớm các vấn đề tiềm
ẩn, giúp các doanh nghiệp phòng ngừa những sự cố nghiêm trọng trước khi chúng xảy
ra trong môi trường thực tế Điều này không chỉ giúp tiết kiệm chi phí khắc phục mà còn giúp tránh được các tổn thất do sự gián đoạn dịch vụ gây ra
Ngoài ra, kiểm thử tải còn là một lĩnh vực đòi hỏi nhiều về kiến thức chuyên môn
và kỹ thuật cao So với các loại kiểm thử phần mềm khác, kiểm thử tải phức tạp hơn bởi
nó yêu cầu người thực hiện có khả năng vận hành các công cụ kiểm thử, đồng thời phải hiểu rõ về hạ tầng hệ thống cũng như các yếu tố ảnh hưởng đến hiệu suất Một hệ thống phần mềm không chỉ là tập hợp của các dòng mã lệnh mà còn bao gồm các thành phần như máy chủ, cơ sở dữ liệu, mạng, và nhiều yếu tố liên quan khác
Trang 10Để đảm bảo kiểm thử tải hiệu quả, người thực hiện cần phải phối hợp nhịp nhàng giữa các thành phần này, đồng thời theo dõi và đánh giá các chỉ số hiệu suất cụ thể như thời gian phản hồi, băng thông, tốc độ xử lý, và sử dụng tài nguyên Do vậy, nghiên cứu
và thực hiện kiểm thử tải không chỉ giúp người thực hiện nâng cao kiến thức và kỹ năng
kỹ thuật mà còn đem đến nhiều thách thức thú vị, phù hợp cho những ai muốn mở rộng tầm hiểu biết về kiểm thử và hiệu suất hệ thống
Lựa chọn đề tài kiểm thử tải còn xuất phát từ tính ứng dụng rộng rãi của nó trong thực tiễn Ngày nay, không chỉ có các công ty công nghệ mới cần kiểm thử tải, mà hầu hết các ngành nghề đều có nhu cầu này, từ thương mại điện tử, tài chính, ngân hàng, đến viễn thông và truyền thông Trong lĩnh vực tài chính và ngân hàng, các ứng dụng phải đảm bảo khả năng chịu tải khi có lượng lớn người dùng truy cập vào các thời điểm quan trọng, như cuối tháng hoặc trong các đợt chuyển khoản lớn Kiểm thử tải giúp các ngành nghề này đảm bảo hệ thống luôn trong trạng thái sẵn sàng, phục vụ tối đa nhu cầu của người dùng
Tóm lại, đề tài kiểm thử tải được lựa chọn không chỉ bởi tính ứng dụng thiết thực trong việc đảm bảo hiệu suất và sự ổn định của các hệ thống phần mềm mà còn do những thách thức kỹ thuật và kiến thức chuyên môn mà nó mang lại Và cũng xin cảm ơn Thầy Phạm Trọng Huynh đã hướng dẫn tận tình, nếu có thiếu sót nào mong thầy góp ý để nhóm em có thể hoàn thành đề tài nghiên cứu của mình một cách tốt nhất
Mục tiêu nghiên cứu
Mục tiêu nghiên cứu của đề tài về kiểm thử tải là nhằm cung cấp cái nhìn tổng quan và sâu sắc về lý thuyết cũng như các phương pháp kiểm thử tải, từ đó nhấn mạnh vai trò của nó trong việc đảm bảo hiệu suất và độ ổn định của hệ thống phần mềm Để đạt được điều này, nghiên cứu sẽ tiến hành phân tích và so sánh các công cụ kiểm thử tải phổ biến như Apache JMeter, LoadRunner, hoặc Gatling…, cụ thể là đề tài này sẽ nghiên cứu về công cụ Apache JMeter nhằm đánh giá ưu và nhược điểm của công cụ trong các trường hợp sử dụng khác nhau Đồng thời, đề tài sẽ xây dựng một quy trình kiểm thử tải tiêu chuẩn bao gồm các bước từ chuẩn bị, mô phỏng kịch bản tải, thu thập
và phân tích dữ liệu đến đưa ra kết luận và giải pháp tối ưu Nghiên cứu cũng sẽ thực hiện thử nghiệm thực tế trên hệ thống cụ thể để đánh giá khả năng chịu tải trong nhiều điều kiện khác nhau, qua đó phát hiện các điểm yếu và đưa ra các đề xuất cải thiện Cuối
Trang 11cùng, mục tiêu quan trọng của nghiên cứu là đề xuất các giải pháp tối ưu hóa hệ thống dựa trên kết quả kiểm thử, giúp doanh nghiệp nâng cao khả năng chịu tải và tối ưu hiệu suất vận hành hệ thống trong thực tế
Trang 12CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Khái niệm kiểm thử phần mềm
Kiểm thử phần mềm là quá trình đánh giá và xác nhận rằng một ứng dụng hoặc hệ thống đáp ứng đúng các yêu cầu và kỳ vọng đề ra Mục đích của kiểm thử phần mềm là phát hiện và sửa chữa các lỗi, đồng thời xác nhận rằng hệ thống có thể hoạt động ổn định, bảo mật và đáp ứng yêu cầu người dùng trong nhiều điều kiện khác nhau Quá trình này giúp đảm bảo chất lượng phần mềm, tăng độ tin cậy và sẵn sàng của hệ thống trước khi được triển khai
Kiểm thử hồi quy (Regression Testing): Mục đích của kiểm thử hồi quy là xác định xem các thay đổi, bản vá hoặc cập nhật mới có ảnh hưởng tiêu cực đến các chức năng hiện có của phần mềm hay không Kiểm thử này rất quan trọng sau mỗi lần thay đổi mã
để đảm bảo rằng hệ thống vẫn hoạt động bình thường
Kiểm thử hiệu năng (Performance Testing): Kiểm thử này nhằm đánh giá hiệu suất của hệ thống dưới các điều kiện tải khác nhau, bao gồm thời gian phản hồi, tốc độ xử lý
và khả năng chịu tải Nó giúp xác định khả năng mở rộng và tối ưu hóa hiệu suất của phần mềm
Kiểm thử bảo mật (Security Testing): Đây là quá trình đánh giá tính bảo mật của phần mềm để phát hiện các lỗ hổng, điểm yếu và các mối đe dọa tiềm ẩn Kiểm thử bảo mật đảm bảo rằng dữ liệu và thông tin của người dùng được bảo vệ an toàn trước các cuộc tấn công từ bên ngoài
Trang 13Kiểm thử giao diện người dùng (UI Testing): Kiểm thử này đánh giá tính khả dụng
và trải nghiệm của người dùng trong giao diện của phần mềm Nó kiểm tra xem giao diện có trực quan, dễ sử dụng và hoạt động tốt trên các thiết bị và trình duyệt khác nhau hay không
Kiểm thử chấp nhận (Acceptance Testing): Là loại kiểm thử cuối cùng, được thực hiện để xác minh rằng phần mềm đáp ứng đầy đủ các yêu cầu của người dùng và sẵn sàng cho việc triển khai Kiểm thử chấp nhận thường được thực hiện bởi người dùng cuối hoặc nhóm QA để đảm bảo rằng sản phẩm cuối cùng đạt chất lượng cao
Kiểm thử tin cậy (Reliability Testing): Đánh giá khả năng hoạt động ổn định và đáng tin cậy của phần mềm trong một khoảng thời gian dài và trong các điều kiện khác nhau Kiểm tra phần mềm hoạt động liên tục mà không xảy ra lỗi, xác định khả năng chịu tải và tần suất các lỗi xảy ra nếu có Giúp đảm bảo phần mềm ít lỗi nhất có thể và giảm thiểu nguy cơ ngừng hoạt động trong thời gian sử dụng lâu dài, đặc biệt là trong các hệ thống quan trọng
Kiểm thử thành phần (Component Testing): Kiểm thử các thành phần hoặc module độc lập trong phần mềm, kiểm tra tính đúng đắn của từng phần trước khi tích hợp Kiểm thử trực tiếp từng thành phần dựa trên các yêu cầu cụ thể cho thành phần đó, đảm bảo chúng hoạt động như mong đợi trước khi tích hợp vào toàn hệ thống Phát hiện sớm lỗi trong các thành phần riêng lẻ, tránh lỗi phức tạp khi tích hợp toàn bộ hệ thống
Kiểm thử phần mềm (Software Testing): Là quy trình tổng thể để đánh giá chất lượng phần mềm, nhằm phát hiện và khắc phục lỗi để đảm bảo phần mềm đáp ứng đúng các yêu cầu và mong đợi của người dùng Bao gồm nhiều loại kiểm thử như kiểm thử chức năng, kiểm thử phi chức năng, kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận và các loại kiểm thử khác Giúp phát hiện các lỗi trong phần mềm, đảm bảo chất lượng, tính ổn định và đáng tin cậy của sản phẩm trước khi phát hành
Kiểm thử đồng thời (Concurrency Testing): Đánh giá khả năng hoạt động của phần mềm khi nhiều người dùng hoặc nhiều tác vụ được thực hiện đồng thời, đặc biệt quan trọng trong các hệ thống đa nhiệm Mô phỏng các tình huống trong đó nhiều người dùng hoặc nhiều yêu cầu xảy ra cùng một lúc để xem hệ thống có thể xử lý chúng một cách hiệu quả và đúng cách không Đảm bảo phần mềm có thể xử lý các tác vụ đồng thời mà không xảy ra lỗi, tăng tính ổn định cho các hệ thống có lượng truy cập cao
Trang 14Kiểm thử mô hình (Model-based Testing): Sử dụng các mô hình đại diện cho các hành vi hoặc yêu cầu của phần mềm để thiết kế và thực hiện các trường hợp kiểm thử Dựa trên các mô hình như mô hình trạng thái, luồng dữ liệu, hoặc sơ đồ trường hợp sử dụng để xác định và kiểm tra tất cả các trường hợp có thể xảy ra trong hệ thống Giúp bao quát đầy đủ các tình huống có thể xảy ra, cải thiện khả năng phát hiện lỗi và tối ưu hóa quy trình thiết kế trường hợp kiểm thử
1.3 Vai trò của kiểm thử phần mềm
Kiểm thử phần mềm đóng vai trò quan trọng trong việc đảm bảo chất lượng và độ tin cậy của ứng dụng hoặc hệ thống Nó giúp phát hiện sớm các lỗi và các vấn đề tiềm
ẩn, đảm bảo hệ thống vận hành ổn định, bảo mật và đáp ứng được nhu cầu của người dùng Kiểm thử phần mềm còn giúp cải thiện trải nghiệm người dùng, giảm thiểu rủi ro
về tài chính và uy tín cho doanh nghiệp khi triển khai sản phẩm ra thị trường Hơn nữa, quy trình kiểm thử hiệu quả còn giúp tiết kiệm chi phí và thời gian cho doanh nghiệp khi giảm thiểu việc phải sửa lỗi sau khi triển khai
1.4 Khái niệm kiểm thử tải
Kiểm thử tải là một loại kiểm thử hiệu suất nhằm xác định khả năng chịu tải của
hệ thống khi đối mặt với lượng người dùng tăng cao hoặc các yêu cầu xử lý nặng Mục đích của kiểm thử tải là đánh giá hiệu suất hệ thống trong các tình huống tải nặng để xác định giới hạn, điểm yếu và khả năng cải tiến của hệ thống Thông qua kiểm thử tải, các nhà phát triển có thể tối ưu hóa hiệu suất và đảm bảo hệ thống duy trì tính ổn định và tốc độ đáp ứng tốt ngay cả khi gặp tải trọng lớn
1.5 Vai trò của kiểm thử tải
Kiểm thử tải đóng vai trò quan trọng trong việc đảm bảo hệ thống có khả năng hoạt động ổn định dưới các điều kiện tải nặng, từ đó nâng cao trải nghiệm người dùng và tránh các sự cố gây mất uy tín cho doanh nghiệp Kiểm thử tải giúp phát hiện các vấn
đề tiềm ẩn về hiệu suất, chẳng hạn như thời gian phản hồi chậm hoặc sự cố ngừng hoạt động khi hệ thống gặp lượng truy cập tăng đột biến Nó cũng giúp tối ưu hóa hệ thống bằng cách chỉ ra các thành phần cần cải tiến, từ đó nâng cao hiệu suất tổng thể, giảm thiểu chi phí vận hành và tăng cường tính sẵn sàng của hệ thống trong môi trường thực
tế
Trang 151.6 Phân loại các loại tải trong kiểm thử
Kiểm thử tải bao gồm nhiều loại tải khác nhau, mỗi loại đều đại diện cho một tình huống tải cụ thể mà hệ thống có thể gặp phải Việc phân loại này giúp nhà phát triển và kiểm thử viên có kế hoạch phù hợp để đánh giá và tối ưu hóa hệ thống
1.6.1 Tải tĩnh (Static Load)
Tải tĩnh là loại tải cố định, không thay đổi trong quá trình kiểm thử Hệ thống được kiểm tra với một lượng tải không đổi trong một khoảng thời gian nhất định
Mục đích của kiểm tra hiệu suất và khả năng xử lý của hệ thống dưới một mức tải
ổn định để xác định các vấn đề tiềm ẩn trong hiệu suất
Ứng dụng của tải tĩnh thường được dùng để kiểm tra xem hệ thống có thể hoạt động ổn định trong điều kiện tải ổn định, chẳng hạn như số lượng người dùng cố định hoặc luồng dữ liệu không đổi
1.6.2 Tải động (Dynamic Load)
Tải động là loại tải thay đổi theo thời gian trong quá trình kiểm thử, bao gồm việc tăng hoặc giảm dần mức tải
Mục đích nhằm mô phỏng các tình huống thực tế khi số lượng người dùng hoặc các yêu cầu từ hệ thống tăng hoặc giảm một cách liên tục, để đánh giá khả năng của hệ thống đáp ứng khi tải biến đổi
Ứng dụng của tải động thường được sử dụng để mô phỏng các kịch bản sử dụng thực tế, chẳng hạn như số lượng người dùng tăng dần vào giờ cao điểm hoặc giảm xuống vào giờ thấp điểm
1.6.3 Tải tăng đột ngột (Spike Load)
Tải tăng đột ngột là khi mức tải tăng mạnh trong một thời gian rất ngắn rồi giảm nhanh trở lại Đây là một kịch bản tăng đột ngột về số lượng yêu cầu hoặc người dùng Đánh giá khả năng của hệ thống trong việc xử lý các tình huống bất thường, khi
có sự gia tăng đột ngột về tải (chẳng hạn như số lượng người dùng đồng thời) và phục hồi sau khi tải giảm
Ứng dụng của tải tăng đột ngột thường được sử dụng trong các trường hợp như kiểm tra khả năng hệ thống xử lý các đợt khuyến mãi lớn, giờ cao điểm của các sự kiện đặc biệt hoặc các tình huống tăng truy cập không dự đoán trước
Trang 161.7 Phương pháp thực hiện kiểm thử tải
Để đảm bảo hệ thống có thể hoạt động ổn định dưới các điều kiện tải khác nhau,
có nhiều phương pháp kiểm thử tải được áp dụng
1.7.1 Phương pháp tăng dần tải (Incremental Load Testing)
Đây là phương pháp kiểm thử mà mức tải được tăng dần theo từng bước, để kiểm tra khả năng chịu tải của hệ thống khi tải được nâng dần lên
Mục đích của phương pháp này xác định mức tải tối đa mà hệ thống có thể chịu đựng trước khi hiệu suất bị ảnh hưởng hoặc xuất hiện lỗi
Ứng dụng của phương pháp này thường áp dụng khi kiểm tra khả năng mở rộng
và các điểm yếu của hệ thống, nhằm phát hiện giới hạn chịu tải dần dần để đảm bảo hiệu suất ổn định
1.7.2 Kiểm thử căng thẳng (Stress Testing)
Kiểm thử căng thẳng là loại kiểm thử đẩy hệ thống vượt qua giới hạn tải thông thường để xác định khả năng chịu đựng tối đa và kiểm tra khả năng phục hồi sau khi đạt ngưỡng này
Mục đích nhằm để đánh giá độ bền của hệ thống khi gặp các điều kiện tải cực đại
và khả năng phục hồi sau khi bị quá tải
Ứng dụng của phương pháp này rất hữu ích để đánh giá các hệ thống quan trọng khi phải chịu đựng tải ngoài dự đoán, như ứng dụng thương mại điện tử trong dịp khuyến mãi lớn hoặc các dịch vụ truyền thông trực tiếp trong sự kiện
1.7.3 Kiểm thử tải duy trì (Endurance Testing)
Kiểm thử tải duy trì là loại kiểm thử mà hệ thống phải chịu tải trung bình hoặc tải cao trong một khoảng thời gian dài để đánh giá tính ổn định
Nhằm xác định các vấn đề có thể phát sinh do sử dụng lâu dài như rò rỉ bộ nhớ, phân mảnh tài nguyên, và hiệu suất giảm dần
Kiểm thử tải duy trì thường áp dụng cho các hệ thống cần đảm bảo khả năng vận hành liên tục như hệ thống quản lý sản xuất, phần mềm quản lý tài chính
1.7.4 Kiểm thử khả năng chịu tải (Capacity Testing)
Kiểm thử khả năng chịu tải là kiểm thử để xác định mức tải tối đa mà hệ thống
có thể xử lý trong khi vẫn duy trì được hiệu suất và đáp ứng yêu cầu của người dùng
Mục đích nhằm xác định giới hạn thực tế của hệ thống và đánh giá xem hệ thống
có thể đáp ứng yêu cầu trong các điều kiện tải tối đa dự kiến không
Trang 17Phương pháp này giúp tối ưu hóa khả năng mở rộng và lên kế hoạch nâng cấp hệ thống nếu cần thiết, đảm bảo hệ thống có thể phục vụ một số lượng người dùng tối đa
trong thời gian dài
1.7.5 Phương pháp tải được áp dụng
Để đánh giá hiệu suất của hệ thống một cách toàn diện và có cơ sở, chúng tôi lựa chọn phương pháp kiểm thử tải tăng dần Với phương pháp này, chúng tôi sẽ tăng dần
số lượng người dùng truy cập hệ thống, lần lượt ở các mức tải 500, 1000 và 2000 người dùng
Cách tiếp cận này giúp đánh giá sự ổn định của hệ thống khi lưu lượng truy cập tăng lên từng bước và phân tích các chỉ số hiệu suất quan trọng như thời gian phản hồi, thông lượng, tỷ lệ lỗi, và khả năng xử lý dữ liệu Bằng cách tăng dần số lượng người dùng, chúng tôi có thể theo dõi sát sao các điểm mà hệ thống bắt đầu có dấu hiệu giảm hiệu suất, từ đó xác định ngưỡng tải lý tưởng và tối ưu hóa cấu hình nhằm đảm bảo hệ thống hoạt động mượt mà, ổn định dưới các mức tải khác nhau
Phương pháp kiểm thử tải tăng dần cũng giảm thiểu rủi ro so với kiểm thử khả năng chịu tải, giúp chúng tôi có cái nhìn chính xác về khả năng phục vụ của hệ thống
mà không đặt hệ thống vào tình trạng quá tải cực hạn
1.8 Các công cụ kiểm thử tải phổ biến
Việc sử dụng các công cụ kiểm thử tải phù hợp là rất quan trọng trong quá trình thực hiện kiểm thử tải Dưới đây là một số công cụ phổ biến:
1.8.1 Giới thiệu các công cụ kiểm thử tải
Các công cụ kiểm thử tải được thiết kế để mô phỏng tải và theo dõi hiệu suất của
hệ thống Chúng cho phép người dùng tạo ra các kịch bản tải, thực hiện kiểm thử và thu thập dữ liệu để phân tích
1.8.2 Apache JMeter
Apache JMeter là một công cụ mã nguồn mở phổ biến được sử dụng để kiểm thử hiệu năng và tải trên các ứng dụng web và dịch vụ khác Được phát triển bởi Apache Software Foundation, JMeter cung cấp giao diện thân thiện và các tính năng mạnh mẽ
để kiểm thử tải, đánh giá hiệu suất của các ứng dụng, máy chủ, mạng, và API
JMeter giúp mô phỏng một lượng lớn người dùng ảo để gửi yêu cầu đến máy chủ,
từ đó đo lường hiệu suất và đánh giá khả năng chịu tải của hệ thống Hỗ trợ nhiều giao thức như HTTP, HTTPS, FTP, SOAP, REST, và JDBC, cho phép kiểm thử nhiều loại
Trang 18ứng dụng khác nhau Cung cấp các báo cáo chi tiết dưới dạng biểu đồ, giúp người kiểm thử phân tích hiệu suất dễ dàng hơn JMeter là công cụ mã nguồn mở, JMeter có thể được tùy chỉnh và mở rộng bằng cách thêm plugin để đáp ứng các yêu cầu kiểm thử phức tạp JMeter cung cấp giao diện kéo thả thân thiện, giúp người dùng thiết lập và chạy các kịch bản kiểm thử mà không cần viết mã phức tạp
Apache JMeter là công cụ phổ biến cho các loại kiểm thử hiệu năng, bao gồm kiểm thử tải (Load Testing), kiểm thử căng thẳng (Stress Testing), kiểm thử tải duy trì (Endurance Testing), và kiểm thử khả năng chịu tải (Capacity Testing) Công cụ này thường được sử dụng để đánh giá hiệu suất của các ứng dụng web, kiểm thử API và kiểm thử hiệu suất cơ sở dữ liệu
1.8.3 Locust
Locust là một công cụ kiểm thử hiệu năng mã nguồn mở, được thiết kế để thực hiện kiểm thử tải và kiểm thử hiệu suất cho các ứng dụng web và API Được phát triển bằng ngôn ngữ Python, Locust nổi bật với khả năng mô phỏng số lượng lớn người dùng đồng thời với một cách tiếp cận đơn giản và dễ sử dụng Một trong những điểm mạnh của Locust là khả năng mở rộng cao và giao diện người dùng trực quan, cho phép người kiểm thử dễ dàng theo dõi và phân tích các kết quả kiểm thử
Locust cung cấp một giao diện web trực quan cho phép người dùng dễ dàng cấu hình và theo dõi quá trình kiểm thử Người dùng có thể theo dõi thông tin thời gian thực như số lượng yêu cầu, tỷ lệ phản hồi, và độ trễ, giúp nhanh chóng phát hiện các vấn đề hiệu suất trong quá trình kiểm thử
Với việc sử dụng Python, Locust cho phép người dùng viết các kịch bản kiểm thử bằng mã lập trình, dễ dàng tùy chỉnh và mở rộng Điều này mang lại tính linh hoạt cao cho người kiểm thử, cho phép họ tạo ra các kịch bản phức tạp mà vẫn duy trì tính dễ đọc
và bảo trì
Locust cho phép mô phỏng hàng triệu người dùng đồng thời, giúp kiểm tra khả năng chịu tải của hệ thống dưới áp lực lớn Người kiểm thử có thể định nghĩa các đặc tính của người dùng ảo như tỷ lệ yêu cầu và thời gian chờ giữa các yêu cầu
Locust được thiết kế để chạy trên nhiều nút, cho phép phân tán tải kiểm thử trên nhiều máy tính Điều này có nghĩa là người dùng có thể dễ dàng tăng quy mô kiểm thử chỉ bằng cách thêm nhiều máy chủ, giúp đánh giá hiệu suất trong các điều kiện tải lớn hơn
Trang 19Locust hỗ trợ kiểm thử nhiều giao thức khác nhau, bao gồm HTTP/HTTPS, WebSockets, và các giao thức khác, giúp người dùng kiểm thử nhiều loại ứng dụng và dịch vụ khác nhau
Ứng dụng của Locust trong kiểm thử hiệu năng là kiểm thử tải (Load Testing), kiểm thử căng thẳng (Stress Testing), kiểm thử độ bền (Endurance Testing), kiểm thử khả năng chịu tải (Capacity Testing), xây dựng và mô phỏng các kịch bản tải thực tế
1.8.4 Gatling
Gatling là một công cụ kiểm thử tải hiện đại, được viết bằng Scala Nó nổi bật với khả năng mô phỏng tải cao và cung cấp báo cáo chi tiết về hiệu suất Gatling hỗ trợ cả REST và WebSocket, phù hợp cho việc kiểm tra ứng dụng web
1.8.5 Apache Bench
Apache Bench (ab) là một công cụ kiểm thử hiệu năng nhẹ và mạnh mẽ, được phát triển bởi Apache Software Foundation, chủ yếu dùng để đánh giá hiệu suất của máy chủ web Công cụ này cho phép người dùng thực hiện các bài kiểm thử tải đơn giản và nhanh chóng, với mục đích đo lường thời gian phản hồi, khả năng xử lý yêu cầu và hiệu suất tổng thể của ứng dụng web
Apache Bench được thiết kế với giao diện dòng lệnh, cho phép người dùng thực hiện các kiểm thử một cách nhanh chóng mà không cần cài đặt phức tạp Chỉ cần nhập lệnh và các tham số, người dùng có thể nhanh chóng bắt đầu kiểm thử hiệu suất
Công cụ này cho phép mô phỏng nhiều yêu cầu gửi đến máy chủ trong một khoảng thời gian nhất định, giúp đánh giá khả năng chịu tải của máy chủ và kiểm tra xem nó có thể xử lý bao nhiêu yêu cầu trong một khoảng thời gian
Apache Bench cung cấp nhiều thông tin quan trọng về hiệu suất, bao gồm thời gian trung bình để xử lý yêu cầu, tốc độ phản hồi, số lượng yêu cầu được xử lý trong một giây, và tỷ lệ lỗi Những thông tin này giúp người kiểm thử dễ dàng phân tích và đánh giá hiệu suất của hệ thống
Apache Bench cho phép người dùng gửi nhiều loại yêu cầu HTTP, bao gồm GET
và POST, giúp kiểm tra các loại hình thức tương tác khác nhau với ứng dụng web Người dùng có thể dễ dàng tùy chỉnh các tham số như số lượng yêu cầu, số lượng kết nối đồng thời, và thời gian kiểm thử, giúp điều chỉnh bài kiểm thử cho phù hợp với mục tiêu cụ thể
Trang 20Apache Bench thường được sử dụng trong các tình huống kiểm thử hiệu suất sau Kiểm thử tải (Load Testing), kiểm thử hiệu suất nhanh (Quick Performance Testing), phân tích điểm mạnh và điểm yếu của máy chủ, kiểm thử API, so sánh hiệu suất giữa các máy chủ
1.8.6 Phân tích ưu và nhược điểm của các công cụ
Các công cụ kiểm thử hiệu năng đóng vai trò quan trọng trong quá trình phát triển phần mềm, mỗi công cụ đều có những ưu điểm và nhược điểm riêng, phù hợp với các nhu cầu và mục tiêu khác nhau trong kiểm thử Apache JMeter, một công cụ mã nguồn
mở, nổi bật với khả năng hỗ trợ nhiều giao thức khác nhau như HTTP, FTP và JDBC, cùng với giao diện đồ họa thân thiện, giúp người dùng dễ dàng tạo và quản lý các kịch bản kiểm thử Tuy nhiên, JMeter có thể tiêu tốn nhiều tài nguyên hệ thống và đòi hỏi thời gian tìm hiểu để cấu hình các kịch bản phức tạp
Locust, một công cụ dựa trên Python, cho phép người dùng viết các kịch bản kiểm thử linh hoạt và cung cấp giao diện web trực quan để theo dõi kết quả trong thời gian thực Mặc dù Locust hỗ trợ mô phỏng hàng triệu người dùng đồng thời và có thể mở rộng tốt, nhưng nó chủ yếu tập trung vào giao thức HTTP và yêu cầu kiến thức lập trình
để viết kịch bản hiệu quả
Apache Bench là một công cụ dòng lệnh đơn giản và nhanh chóng, cho phép thực hiện các kiểm thử tải cơ bản với tốc độ cao, nhưng lại thiếu tính năng nâng cao và chỉ
hỗ trợ kiểm thử cho giao thức HTTP Việc lựa chọn công cụ kiểm thử hiệu năng phù hợp phụ thuộc vào yêu cầu cụ thể của dự án, kỹ năng của đội ngũ phát triển và môi trường làm việc, từ đó giúp đảm bảo rằng các ứng dụng có thể hoạt động hiệu quả và ổn định dưới tải cao
1.8.7 Tiêu chí lựa chọn công cụ kiểm thử tải
Khi lựa chọn công cụ kiểm thử tải, cần xem xét các tiêu chí như:
Khả năng tương thích với ứng dụng cần kiểm thử
Khả năng tương thích với ứng dụng cần kiểm thử
Tính linh hoạt và khả năng mở rộng của công cụ
Dễ sử dụng và khả năng tạo kịch bản kiểm thử
Khả năng phân tích và báo cáo kết quả
Cộng đồng hỗ trợ và tài liệu hướng dẫn
Trang 211.9 Ý nghĩa của kiểm thử tải trong phát triển phần mềm
Kiểm thử tải là một thành phần quan trọng trong quy trình phát triển phần mềm, nhằm đánh giá cách mà ứng dụng hoặc hệ thống hoạt động dưới áp lực tải cao Nó giúp xác định hiệu suất của hệ thống khi xử lý nhiều yêu cầu đồng thời, từ đó cho phép các nhà phát triển nắm bắt được khả năng xử lý của ứng dụng và tối ưu hóa mã nguồn hoặc cấu hình hệ thống khi cần thiết Bằng cách mô phỏng các tình huống sử dụng thực tế với nhiều người dùng đồng thời, kiểm thử tải giúp phát hiện các lỗi tiềm ẩn hoặc điểm yếu trong ứng dụng, như sự cố về hiệu suất, lỗi giao tiếp, hoặc sự cố tài nguyên, qua đó cho phép nhóm phát triển khắc phục những vấn đề này trước khi sản phẩm được triển khai cho người dùng thực tế
Ngoài ra, kiểm thử tải còn đảm bảo khả năng mở rộng của ứng dụng, tức là khả năng của hệ thống trong việc xử lý lưu lượng tăng đột ngột mà không ảnh hưởng đến hiệu suất, điều này rất quan trọng đối với các ứng dụng có thể gặp phải lưu lượng truy cập không đều, chẳng hạn như trong các sự kiện lớn hoặc giờ cao điểm Bằng cách đảm bảo rằng ứng dụng có thể xử lý tải cao mà không làm chậm thời gian phản hồi, kiểm thử tải góp phần cải thiện trải nghiệm người dùng, giúp cung cấp trải nghiệm mượt mà hơn Hơn nữa, kiểm thử tải cũng giúp xác định liệu cơ sở hạ tầng hiện tại có đủ mạnh
để hỗ trợ nhu cầu trong tương lai hay không, từ đó cho phép các tổ chức lập kế hoạch nâng cấp phần cứng hoặc thay đổi cấu trúc hệ thống để đảm bảo rằng nó có thể đáp ứng nhu cầu Nó còn có thể phân tích các yếu tố khác nhau của hệ thống như độ trễ mạng, thời gian phản hồi của máy chủ và khả năng xử lý của cơ sở dữ liệu, giúp các nhà phát triển có cái nhìn tổng thể về cách các thành phần khác nhau tương tác và ảnh hưởng đến hiệu suất tổng thể Cuối cùng, kiểm thử tải đóng vai trò trong việc giảm thiểu rủi ro và chi phí bằng cách phát hiện các vấn đề trước khi sản phẩm được triển khai cho người dùng thực tế, tiết kiệm chi phí sửa chữa sau khi sản phẩm đã được phát hành và tránh mất mát doanh thu do sự cố hệ thống Do đó, việc thực hiện kiểm thử tải thường xuyên trong quy trình phát triển phần mềm sẽ giúp các tổ chức phát triển các sản phẩm chất
lượng cao, đáng tin cậy và có khả năng mở rộng tốt
Trang 22CHƯƠNG 2: QUY TRÌNH THỰC HIỆN KIỂM THỬ TẢI
2.1 Phân tích yêu cầu kiểm thử tải
Trước khi thực hiện kiểm thử tải, ta phải tiến hành xác định các thông số được sử dụng là gì và có ý nghĩa như thế nào để kiểm thử một cách chính xác nhất Đối với kiểm thử tải trang web, để xác định một trang web có chạy ổn định hay không, và đánh giá khả năng chịu tải của hệ thống, ta dựa vào các thông số như: thời gian phản hồi trung bình, thời gian phản hồi tối thiểu,thời gian phản hồi tối đa, độ lệch chuẩn, tỷ lệ lỗi, thông lượng, tốc độ nhận dữ liệu, tốc độ gửi dữ liệu, kích thước trung bình mỗi yêu cầu Thời gian phản hồi trung bình (Average) là thời gian trung bình mà hệ thống phản hồi sau khi nhận yêu cầu từ người dùng Thời gian phản hồi trung bình thấp chứng tỏ hệ thống phản ứng nhanh với các yêu cầu Đảm bảo thời gian này ở mức hợp lý giúp người dùng có trải nghiệm tốt, không phải chờ đợi lâu để nhận kết quả
Thời gian phản hồi tối thiểu (Min) là thời gian ngắn nhất mà hệ thống phản hồi trong một tập hợp các yêu cầu Thời gian này giúp xác định mức tối thiểu của thời gian phản hồi, từ đó có thể đánh giá hệ thống có thể phản hồi nhanh nhất ở mức nào Nếu quá cao, có thể xem lại hiệu suất xử lý của hệ thống
Thời gian phản hồi tối đa (Max) là thời gian dài nhất mà hệ thống cần để phản hồi lại một yêu cầu Thời gian phản hồi tối đa là yếu tố quan trọng giúp nhận diện các yêu cầu "chậm" hoặc "quá chậm" Nếu thời gian này quá lớn, nó có thể khiến người dùng thấy ứng dụng chậm chạp hoặc thậm chí bị treo
Độ lệch chuẩn (Std Dev) là chỉ số đo lường độ biến động của thời gian phản hồi
so với giá trị trung bình Độ lệch chuẩn thấp cho thấy sự ổn định, nghĩa là thời gian phản hồi không có biến động lớn giữa các yêu cầu Nếu độ lệch chuẩn cao, có thể xảy ra tình trạng không nhất quán trong phản hồi, ảnh hưởng xấu đến trải nghiệm người dùng
Tỷ lệ lỗi (Error %) là tỷ lệ phần trăm yêu cầu bị lỗi trên tổng số yêu cầu được gửi
đi Giúp xác định tính ổn định và độ tin cậy của hệ thống Tỷ lệ lỗi càng thấp, hệ thống càng ổn định và tin cậy Nếu tỷ lệ lỗi cao, người dùng sẽ gặp nhiều sự cố khi truy cập ứng dụng
Thông lượng là số lượng yêu cầu mà hệ thống xử lý mỗi giây Thông lượng phản ánh khả năng của hệ thống trong việc đáp ứng nhu cầu người dùng, đặc biệt khi tải tăng cao Thông lượng cao nghĩa là hệ thống có thể phục vụ số lượng lớn người dùng đồng thời mà không ảnh hưởng đến hiệu suất
Trang 23Tốc độ nhận dữ liệu là lượng dữ liệu hệ thống nhận được từ người dùng mỗi giây, tính bằng KB Đánh giá tốc độ và khả năng của hệ thống trong việc nhận dữ liệu, đảm bảo ứng dụng có thể tiếp nhận các yêu cầu từ người dùng một cách hiệu quả
Tốc độ gửi dữ liệu là lượng dữ liệu hệ thống gửi lại cho người dùng mỗi giây, tính bằng KB Tốc độ gửi dữ liệu cao giúp đảm bảo hệ thống phản hồi nhanh chóng, đặc biệt khi số lượng yêu cầu đồng thời tăng cao
Kích thước trung bình mỗi yêu cầu là kích thước trung bình của dữ liệu mà mỗi yêu cầu gửi đi Chỉ số này cho thấy mức độ dữ liệu truyền tải mỗi lần yêu cầu, giúp đánh giá khả năng của hệ thống khi truyền dữ liệu Kích thước quá lớn có thể gây ra tải cao cho hệ thống
2.2 Lập kế hoạch kiểm thử
2.2.1 Phạm vi kiểm thử
Phạm vi kiểm thử tải bao gồm việc xác định rõ các thành phần của hệ thống cần được kiểm thử, từ máy chủ ứng dụng, cơ sở dữ liệu đến các dịch vụ API liên quan Các thành phần này phải đảm bảo khả năng chịu tải và duy trì hiệu suất ổn định khi gặp lượng truy cập lớn từ người dùng Phạm vi kiểm thử cũng bao gồm các chức năng quan trọng mà người dùng thường xuyên tương tác, như đăng nhập, tìm kiếm, thêm sản phẩm vào giỏ hàng, và thanh toán Đồng thời, cần xác định số lượng người dùng đồng thời tham gia vào quá trình kiểm thử, với mục tiêu mô phỏng các kịch bản tải thực tế và kiểm tra khả năng đáp ứng của hệ thống trong các tình huống khác nhau, từ tải tăng dần đến tải đột ngột hoặc tải duy trì trong thời gian dài Để đạt hiệu quả cao nhất, các giới hạn tải tối thiểu và tối đa mà hệ thống cần đáp ứng cũng cần được xác định, chẳng hạn như
số lượng yêu cầu tối đa mỗi giây, thời gian phản hồi tối đa cho mỗi yêu cầu, và tỷ lệ lỗi chấp nhận được
Phạm vi kiểm thử sẽ dựa trên môi trường kiểm thử mô phỏng chính xác hệ thống thực tế, bao gồm cả phần cứng, phần mềm và công cụ kiểm thử phù hợp, nhằm đảm bảo các kết quả kiểm thử phản ánh đúng hiệu suất của hệ thống trong môi trường sản xuất Phạm vi kiểm thử tải ở đây là kiểm tra tốc độ tải trang chủ khi có nhiều người dùng truy cập đồng thời; với số người truy cập là 500, 1000, 2000 trên 3 trang Shopee, trang trường Lao động - Xã hội (II), trang Study4
Trang 24Trang chủ Shopee
Hình 1: Giao diện trang Shopee
Trang trường Lao động - Xã hội (II)
Hình 2: Giao diện trang trường Lao động - Xã hội (II)
Trang 25Trang học tiếng anh Study4
Hình 3: Giao diện trang Study4
cụ như Apache JMeter sẽ được sử dụng để mô phỏng hàng ngàn người dùng ảo truy cập trang web đồng thời, hỗ trợ việc tạo tải lớn và thu thập các chỉ số như thời gian phản hồi, throughput, và tỷ lệ lỗi
Trong quá trình kiểm thử, các chỉ số hiệu suất sẽ được giám sát qua công cụ để phân tích kết quả một cách chi tiết Cuối cùng, dữ liệu thu thập sẽ được tổng hợp và đánh giá, từ đó xác định các vấn đề cần cải thiện và đề xuất các giải pháp tối ưu hóa cho
hệ thống
Trang 26Loop count
Min Max
1000 120
Std Dev Error % Throughput
2000 180
Received Sent Avg Bytes
Bảng 1: Mô tả Test Case kiểm thử trang chủ Shopee
Trang 27Loop count
Min Max
1000 120
Std Dev Error % Throughput
2000 180
Received Sent Avg Bytes
Bảng 2: Mô tả Test Case kiểm thử trang trường Lao động – Xã hội (II)
Trang 28Loop count
Min Max
1000 120
Std Dev Error % Throughput
2000 180
Received Sent Avg Bytes
Bảng 3: Mô tả Test Case kiểm thử trang chủ Study4
Trang 292.4 Thiết lập môi trường kiểm thử
Thiết lập môi trường kiểm thử tải là một bước quan trọng để đảm bảo quá trình kiểm thử diễn ra hiệu quả và chính xác Đầu tiên, cần xác định các yêu cầu về phần cứng, bao gồm cấu hình máy chủ cho ứng dụng và cơ sở dữ liệu, đảm bảo đủ tài nguyên như CPU, RAM và ổ cứng để xử lý tải lớn
Bên cạnh đó, phần mềm cần thiết cũng cần được cài đặt, bao gồm hệ điều hành, máy chủ web (như Apache) Mạng cũng cần được cấu hình phù hợp để mô phỏng các điều kiện thực tế, bao gồm băng thông và độ trễ Tiếp theo, công cụ kiểm thử như Apache JMeter sẽ được cài đặt và cấu hình để tạo tải theo các kịch bản đã định
Sau khi xây dựng các kịch bản kiểm thử mô phỏng hành vi người dùng thực tế, cần theo dõi các chỉ số hiệu suất của hệ thống trong quá trình kiểm thử bằng các công
cụ giám sát như Summary Report Cuối cùng, kiểm tra lại môi trường để đảm bảo tất cả các thành phần hoạt động chính xác trước khi tiến hành chạy các bài kiểm thử tải và phân tích kết quả để đề xuất các giải pháp tối ưu hóa nếu cần thiết
2.5 Thực hiện kiểm thử tải
2.5.1 Thêm Thread Group
Nhấp chuột phải vào Test Plan > Add > Threads (Users) > Thread Group
Hình 4: Tạo Thread Group