Trang chủ Lập trình Kiểm tra tốc độ và chịu tải của API bằng Apache JMeter

Kiểm tra tốc độ và chịu tải của API bằng Apache JMeter

19
0
Kiểm tra tốc độ và chịu tải của API bằng Apache JMeter
Kiểm tra tốc độ và chịu tải của API bằng Apache JMeter

Sản phẩm dịch vụ của bạn sẽ ra sao nếu có một lượng lớn người truy cập? Server sẽ phản hồi lại các yêu cầu của Client trong bao lâu? Apache Jmeter là một ứng dụng phần mềm sẽ giúp các bạn trả lời những câu hỏi đó

Ở bài viết này, mình sẽ làm một cách đơn giản về cách kiểm tra tốc độ, chịu tải của API bạn viết với Apache JMeter.

1. Vậy Apache JMeter là gì?

  1. Là một phần mềm mã nguồn mở được viết bằng ngôn ngữ Java.
  2. Là công cụ để kiểm tra hiệu suất (Performance) trên cả tài nguyên tĩnh (Static) và tài nguyên động (Dynamic).
  3. Và được dùng để đo độ tải nặng (heave load) trên một server, nhóm server, mạng hoặc các đối tượng khác.

Nói cách khác, nó là cỗ máy mô phỏng vô số trường hợp, kịch bản truy vấn khác nhau và hiển thị báo cáo của hiệu xuất dữ liệu theo nhiều cách, kể cả CSV, XML và đồ thị các kiểu. Vì nó là phần mềm Java nên có thế chạy trên mọi hệ điều hành, chỉ cần Java 6 trở lên là được rồi.

2. Những tính năng của Apache JMeter

  • Khả năng kiểm tra thử tải và hiệu năng của nhiều giao thức ứng dụng, máy chủ khác nhau như:
    1. Web – HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
    2. SOAP/REST Webservices
    3. FTP
    4. Database via JDBC
    5. LDAP
    6. Message-oriented middleware (MOM) via JMS
    7. Mail – SMTP(S), POP3(S) and IMAP(S)
    8. Native commands or shell scripts
    9. TCP
    10. Các đổi tượng Java
  • Đầy đủ các tính năng test IDE, cho phép ghi lại các test plan một cách nhanh chóng (Từ trình duyệt hoặc các ứng dụng )
  • Chế độ dòng lệnh (Command-line) để kiểm tra độ tải từ các hệ điều hành tương thích với Java (Linux, Window, Mac …)
  • Đưa ra báo cáo và trình bày HTML động
  • Dễ dàng tương tác thông qua khả năng trích xuất dữ liệu từ các định dạng phản hồi phổ biến như HTML, JSO, XML…
  • Do viết bằng Java nên nó có tính đa nền tảng (Kiểm thử trên nền tảng nào cũng được)
  • Cho phép mô phỏng đồng thời nhiều thread
  • Bộ nhớ đệm và cho phép phân tích, tái hiện kết quả test một cách offiline
  • Caching and offline analysis/replaying of test results.
  • Phần lõi có khả năng mở rộng cao

3. Cài đặt Apache JMeter

Yêu cầu: Java 8 hoặc Java 9 cho Apache JMeter 5.0 trở lên

Download tại website, sau khi tải xong, giải nén file zip trong thư mục bạn muốn.

Cài đặt Apache JMeter, chọn phiên bản 5.2.1.zip

Bây giờ các bạn hãy truy cập vào thư mục bin của jmeter sau đó chạy dòng lệnh

./jmeter.sh
chạy jmeter.sh để chay giao diện ứng dụng Apache JMeter

Lưu ý: Vì Apache Jmeter được viết 100% bằng Java nên để chạy được Apache Jmeter các bạn cần phải cài đặt JRE hoặc JDK

Sau khi chạy jmeter.sh, một màn hình giao diện hiện lên.

1. Trong Thread Group, mình chọn số lượng user là 10 là số thread tạo ra của mỗi user là 1000. Như vậy, trong cùng một lúc mình tạo ra khoảng 10000 request lên API test.

Tuỳ vào yêu cầu của công việc mà bạn có thể cài đặt số lượng user và thread tạo ra
Tuỳ vào yêu cầu của công việc mà bạn có thể cài đặt số lượng user và thread tạo ra

2. Mình tạo một HTTP request kiểm tra API bên dưới.

Nhập đầy đủ thông tin của request: method, post, IP, path.

Nhập đầy đủ thông tin của request: method, post, IP, path.

3. Sau đó, hãy bấm nút Play để kiểm tra, kết quả sẽ được hiển thị bên dưới màn hình View Results in Table dưới đây:

Trong lần test này, rõ ràng API của mình đã ngỏm hết 😀

Trên đây là bài viết hướng dẫn download, cài đặt và chạy thử Apache JMeter một lần kiểm tra độ chịu tải của API, kết quả ko được đẹp cho lắm :D,

Chúc các bạn thành công!