NỘI DUNG BÀI HỌC
✅ Cách chạy TestPlan bằng CLI
✅ Bản chất báo cáo và cách tạo báo cáo HTML
✅ Nắm được lợi ích trong thực tế (CI/CD, performance test automation)
1. Mục tiêu bài học
Sau khi hoàn thành bài học này, học viên sẽ:
-
Hiểu được CLI Mode là gì và vì sao cần sử dụng nó.
-
Biết cách chạy file
.jmxbằng dòng lệnh thay vì giao diện GUI. -
Biết xuất kết quả ra file
.jtlvà báo cáo HTML. -
Nắm được lợi ích trong thực tế (CI/CD, performance test automation).
2. Giới thiệu vấn đề
Khi bạn mới làm quen với JMeter, bạn thường chạy test qua giao diện GUI bằng cách nhấn nút ▶️.
Ví dụ:
Bạn mở JMeter, thiết kế test plan gồm Thread Group → HTTP Request → View Results Tree, rồi nhấn Start để chạy thử.
❗ Tuy nhiên, GUI mode chỉ phù hợp để thiết kế, debug và test nhỏ.
Nếu bạn dùng GUI để chạy test thật (ví dụ 1000 user, 1 giờ chạy liên tục), bạn sẽ gặp vấn đề:
-
JMeter GUI tiêu tốn rất nhiều RAM và CPU.
-
Dữ liệu log hiển thị trong GUI khiến máy bị chậm, có thể treo.
-
Kết quả có thể không chính xác do overhead từ GUI.
👉 Giải pháp: Dùng CLI Mode (Non-GUI Mode) để chạy test.
3. CLI Mode là gì?
CLI (Command Line Interface) Mode là cách chạy JMeter không cần giao diện đồ họa, chỉ dùng lệnh trong terminal hoặc cmd.
Khi chạy ở CLI mode, JMeter sẽ:
-
Nạp file
.jmx. -
Chạy toàn bộ test logic giống như GUI.
-
Ghi kết quả ra file
.jtl. -
(Tuỳ chọn) Sinh báo cáo HTML tự động.
👉 Không hiển thị giao diện, nên JMeter chạy nhẹ hơn, ổn định hơn, phù hợp test thực tế hoặc chạy trong pipeline CI/CD.
4. Cấu trúc lệnh cơ bản
🔹 1. Cú pháp
🔹 2. Giải thích tham số
| Tham số | Ý nghĩa |
|---|---|
-n |
Chạy ở Non-GUI (CLI) Mode |
-t |
Đường dẫn tới file .jmx |
-l |
Đường dẫn để lưu kết quả .jtl |
-e |
Sinh báo cáo HTML sau khi chạy xong |
-o |
Thư mục xuất báo cáo HTML (phải là thư mục trống) |
5. Ví dụ thực hành
🧩 Tình huống:
Bạn có một test plan tên LoginTest.jmx với 100 user, mỗi user gửi request đăng nhập đến API.
Bạn muốn chạy test 5 phút và xem kết quả sau khi chạy.
🧠 Cách làm:
Bước 1: Mở terminal tại thư mục chứa JMeter
Ví dụ trên Windows:
Bước 2: Chạy lệnh CLI
Bước 3: Sau khi hoàn thành, xem báo cáo
Mở thư mục C:\Test\report\index.html → JMeter HTML Dashboard sẽ hiện ra với các biểu đồ:
-
Response Time Over Time
-
Throughput
-
Error %
-
90th, 95th, 99th percentile
🧩 Kết quả đạt được:
-
Test chạy nhanh, nhẹ, không bị lag.
-
Báo cáo đẹp, dễ đọc.
-
Có thể dễ dàng tích hợp vào Jenkins, GitLab CI, hoặc cron job tự động.
6. So sánh GUI vs CLI Mode
| Tiêu chí | GUI Mode | CLI Mode |
|---|---|---|
| Hiển thị giao diện | ✅ Có | ❌ Không |
| Mức tiêu thụ tài nguyên | 🔺 Cao | ✅ Thấp |
| Phù hợp cho | Thiết kế test | Chạy test thật |
| Độ ổn định khi chạy lâu | ❌ Dễ treo | ✅ Ổn định |
| Tích hợp CI/CD | ⚠️ Hạn chế | ✅ Dễ dàng |
| Tốc độ xử lý | Trung bình | Nhanh hơn 2–3 lần |
| Sinh báo cáo HTML | Thủ công | ✅ Tự động với -e -o |
7. Nếu KHÔNG dùng CLI Mode sẽ thế nào?
Giả sử bạn vẫn dùng GUI để chạy 1000 user:
-
CPU tăng vọt 100%, RAM chiếm gần như toàn bộ.
-
View Results Tree lưu toàn bộ response → treo JMeter.
-
Kết quả
Average Response Timecó thể sai lệch do tải GUI. -
Không thể tích hợp vào Jenkins pipeline (vì cần mở giao diện).
👉 Kết luận: GUI chỉ dùng để thiết kế, CLI dùng để thi hành test thực tế.
8. Nâng cao – Tùy chỉnh thêm
🔹 1. Chạy test trong background (Linux)
Giúp bạn chạy test ngay cả khi đóng terminal.
🔹 2. Truyền biến động vào test
→ Trong test plan, có thể dùng ${__P(threads)} và ${__P(duration)} để đọc giá trị động.
🔹 3. Gộp nhiều kết quả .jtl thành một báo cáo
9. Kết luận
✅ CLI Mode là cách chạy JMeter tối ưu trong kiểm thử hiệu năng thực tế.
Nó giúp:
-
Tiết kiệm tài nguyên.
-
Chạy ổn định và nhanh hơn.
-
Dễ dàng tích hợp CI/CD.
-
Tự động sinh báo cáo chuyên nghiệp.
💡 Hãy nhớ: “Thiết kế bằng GUI – Chạy thật bằng CLI”.
🎓 Bài tập thực hành gợi ý
-
Chạy file
LoginTest.jmxở CLI mode, sinh raresult.jtlvàreport/. -
Mở
index.html, phân tích các chỉ số chính. -
Thay đổi số lượng thread bằng tham số dòng lệnh
-Jthreadsvà so sánh kết quả.
