NỘI DUNG BÀI HỌC

✅ Giới thiệu
✅ 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ì sao cần sử dụng nó.

  • Biết cách chạy file .jmx bằng dòng lệnh thay vì giao diện GUI.

  • Biết xuất kết quả ra file .jtl và 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

 
jmeter -n -t <tên_file_test.jmx> -l <tên_file_ket_qua.jtl> -e -o <thư_mục_báo_cáo>

🔹 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:

 
cd C:\apache-jmeter-5.6.3\bin

Bước 2: Chạy lệnh CLI

 
jmeter -n -t "C:\Test\LoginTest.jmx" -l "C:\Test\result.jtl" -e -o "C:\Test\report"

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 Time có 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)

 
nohup jmeter -n -t LoginTest.jmx -l result.jtl -e -o report > output.log 2>&1 &

Giúp bạn chạy test ngay cả khi đóng terminal.

🔹 2. Truyền biến động vào test

 
jmeter -n -t Test.jmx -Jthreads=500 -Jduration=300 -l result.jtl

→ Trong test plan, có thể dùng ${__P(threads)}${__P(duration)} để đọc giá trị động.

🔹 3. Gộp nhiều kết quả .jtl thành một báo cáo

 
jmeter -g combined.jtl -o final_report


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 ý

  1. Chạy file LoginTest.jmx ở CLI mode, sinh ra result.jtlreport/.

  2. Mở index.html, phân tích các chỉ số chính.

  3. Thay đổi số lượng thread bằng tham số dòng lệnh -Jthreads và so sánh kết quả.

Teacher

Teacher

NGUYỄN TRÍ DIỆN

Fullstack QA

With over 4 years of experience in software testing — including manual, automation, and performance testing — I have built a strong foundation in delivering high-quality software.

I specialize in the E-commerce and Banking domains, with deep understanding of business flows, performance requirements, and testing standards.

Strong in critical thinking and problem-solving, I proactively identify issues and drive effective solutions.

With an engineering mindset, I continuously update my skills and contribute across functions to help teams achieve their goals.


Cộng đồng Automation Testing Việt Nam:

🌱 Telegram Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 
Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

Chia sẻ khóa học lên trang

Bạn có thể đăng khóa học của chính bạn lên trang Anh Tester để kiếm tiền

Danh sách bài học