Hướng dẫn kiểm thử hiệu năng website với Jmeter - Part 1 - Performance Testing
KIỂM THỬ HIỆU NĂNG WEBSITE DÙNG JMETER PART 1
I. GIỚI THIỆU:
Chào các bạn, trải nghiệm người dùng khi vào 1 trang web bất kỳ lần đầu chính là ấn tượng đầu tiên của người dùng đối với nhà phát triển đó. Người dùng sẽ tự đặt câu hỏi xem website này load có nhanh không? Vào dùng có ngon không? Click các button thì phản hồi có mượt không?...Đặc biệt là những trang web đòi hỏi chịu tải nhiều với số lượng lớn request như website thương mại điện tử, hay là các trang web trường để đăng ký tín chỉ cho sinh viên.
Bởi vậy, việc kiểm thử hiệu năng là một phần không thể thiếu của việc phát triển phần mềm ngày nay, nó sẽ quyết định đến danh tiếng của website đó. Vì tiếng lành đồn xa, hệ thống ngon thì sẽ truyền tai nhau sử dụng....
Ngày hôm nay, tôi sẽ giới thiệu cho các bạn các kiểm thử hiệu năng dùng Jmeter một cách cơ bản mà tôi đã dùng trong một số dự án liên quan đến hệ thống nhà hàng và hệ thống thương mại điện tử để những bạn mới tiếp cận cũng nắm được nhé!
II. ĐỊNH NGHĨA VÀ CÁCH DÙNG:
A. KHÁI QUÁT VỀ MỘT SỐ LOẠI PERFORMANCE TESTING
1. Load testing: Đánh giá ứng dụng, tìm ngưỡng của hệ thống có thể xử lý tốt (nhưng đừng nhầm lẫn là tìm ngưỡng mà hệ thống “sập”). Xác định được Maximum load là bao nhiêu.
2. Stress testing: Quá sức chịu đựng của hệ thống hay đánh giá ngoài khả năng chịu đựng. Tìm điểm chết của hệ thống, hệ thống có thể khả năng phục hồi lại không.
3. Spike testing: Thường áp dụng với hệ thống Thương mại điện tử. Đánh giá sự đột biến cao với khoảng thời gian ngắn thì hệ thống sẽ xử lý như nào.
B. ĐỊNH NGHĨA
JMeter là một ứng dụng Java desktop với giao diện đồ hoạ sử dụng Java Swing graphical API. JMeter có thể được sử dụng để kiểm tra hiệu suất của cả các tài nguyên tĩnh như JavaScript và HTML, cũng như các tài nguyên động, chẳng hạn như JSP, Servlets và AJAX.
JMeter là công cụ có thể test tải, test chức năng, test hồi quy... trên nhiều giao thức và các công nghệ khác nhau: Web: HTTP, HTTPS, Web service: SOAP, Database với JDBC drivers, File với FTP service, Mail với SMTP. JMeter lưu test plan của nó ở định dạng XML . Do đó cho có thể dùng text editor bất kỳ để generate test plan.
Ngoài Jmeter, có thể sử dụng Loadrunner cũng là tool phổ biến.
Lợi ích khi sử dụng Jmeter:
- Open source/free
- Support multi-protocol
- Record & Playback – Record
- Easy installation
- Script Test: Jmeter can be integrated with Bean Shell & Selenium for automated testing
- Multi Platform: Windows, Linux, Mac, v.v
C. CÁCH JMETER LÀM VIỆC
Meter mô phỏng một nhóm người dùng gửi yêu cầu đến server và trả về thông tin thống kê của server thông qua biểu đồ, bảng biểu các thứ rất hữu ích cho việc testing API của developers song song với Postman.
D. KHỞI TẠO & CÀI ĐẶT
- B1: Download file Apache Jmeter
- B2: Để chạy được Jmeter, bạn cần cài thêm JDK của Java
- B3: Chạy Jmeter: Jmeter.bat trong thư mục /bin
Cấu trúc thư mục:
/bin: Chứa tập lệnh JMeter để khởi động JMeter
/docs: Tệp tài liệu JMeter
/extras: tập tin bổ sung liên quan đến kiến
/lib/: Chứa thư viện Java cần thiết cho JMeter
/lib/ext: chứa các tệp jar cốt lõi cho JMeter và các giao thức, hỗ trợ các plugin khác như Concurrency Thread
/lib/junit: Thư viện Junit dùng cho JMeter
/printable_docs: Chứa tài liệu đọc cho người dùng
III. CÁC ELEMENT QUAN TRỌNG THƯỜNG DÙNG TRONG JMETER
Có vô vàn các element trong Jmeter với nhiều mục đích khác nhau, tuy nhiên trong bài viết này tôi sẽ giới thiệu giới hạn một số element thường dùng với level basic nhất.
Các JMeter Elements: Thread Group, Samplers, Listeners, Configuration
- Thread Group
Thread Group là một tập hợp các Thread. Mỗi thread đại diện cho một người dùng sử dụng ứng dụng đang được thử nghiệm. Về cơ bản, mỗi Thread mô phỏng một yêu cầu thực của người dùng tới máy chủ. Mỗi thread sẽ bao gồm 1 hoặc nhiều request khác nhau
Ví dụ: Thread Group với giá trị "Number of Threads" là 50 được hiểu là giả lập 50 người dùng, mỗi người dùng tạo ra một request đến server.
- Samplers
Như nghĩa đen của nó, Samplers là các mẫu thử, dùng để thử nghiệm các đối tượng là các kiểu request khác nhau tới đối tượng đích cần kiểm thử
- Listeners:
Hiển thị kết quả của việc thực hiện kiểm thử. Họ có thể hiển thị kết quả ở một định dạng khác, chẳng hạn như tree, table, graph hoặc log file
Các listener thường dùng
- Configuration Elements thường dùng
Dùng để thiết lập các input đầu vào, import file, set up các điều kiện khác...
- CSV Data Set Config: Giả sử bạn muốn kiểm tra một trang web cho 100 người dùng đăng nhập bằng các thông tin đăng nhập được tham số hóa với file csv
- HTTP Cookie Manager: Nếu bạn có Yêu cầu HTTP và phản hồi chứa cookie, trình quản lý cookie sẽ tự động lưu trữ cookie đó và sẽ sử dụng cookie đó cho tất cả các yêu cầu trong tương lai đối với trang web cụ thể đó.
- HTTP Header Manager: Set các trường cho Header.
- Login Config Element Cho phép bạn thêm hoặc ghi đè cài đặt tên người dùng và mật khẩu trong trình lấy mẫu.
Trên đây là những giới thiệu sơ bộ về những thành phần sẽ dùng trong việc kiểm thử hiệu năng cơ bản, ở phần 2 chúng ta sẽ đi tìm hiểu cách tạo testplan, chạy testplan và report báo cáo hiệu năng website bằng Jmeter nhé.
Author: Poppin Khiem Mohammad
All rights reserved