NỘI DUNG BÀI HỌC

✅ Giới thiệu
✅ JMeter HTTP(S) Test Script Recorder
✅ Proxy Settings
✅ Correlation, Parameterization, Think Time, Transaction Controller

1. Mục tiêu bài học

Sau phần này, học viên sẽ có thể:

  • Hiểu khái niệm recordingproxy trong JMeter.

  • Biết cách cấu hình HTTP(S) Test Script Recorder để ghi thao tác web.

  • Cấu hình proxy trên trình duyệt và xử lý HTTPS certificate.

  • Hiểu cách JMeter hoạt động như một proxy server.

  • Biết tinh chỉnh script sau khi ghi: parameterization, correlation, think time.

  • Xử lý các lỗi thường gặp khi ghi script.


2. Khái niệm về proxy

1. Proxy là gì?

Proxy (máy chủ trung gian) là một máy chủ nằm giữa Client (trình duyệt)Server (ứng dụng web).
Nó có nhiệm vụ chuyển tiếp yêu cầu (request) từ client đến server và trả lại phản hồi (response) ngược lại.

🔸 Mô hình hoạt động:

 
BrowserProxyWeb ServerProxyBrowser

🔸 Vai trò:

  • Giúp theo dõi, ghi lại, hoặc lọc request.

  • Che giấu IP thật của client (trong các hệ thống an toàn).

  • Trong JMeter: phục vụ mục đích ghi lại luồng request thực tế của người dùng.


3. Jmeter proxy

🔹 Cơ chế hoạt động:

  1. Khi bạn nhấn Start trong HTTP(S) Test Script Recorder, JMeter:

    • Khởi tạo proxy server nội bộ tại localhost:8888.

    • Lắng nghe mọi request từ trình duyệt gửi đến.

  2. Trình duyệt được cấu hình để gửi tất cả request qua JMeter Proxy.

  3. Khi bạn thao tác (login, search, logout,…):

    • Request đi qua JMeter → được ghi lại dưới dạng HTTP Sampler trong Thread Group.

    • Response từ server cũng đi qua JMeter → JMeter trả lại cho trình duyệt.

🔸 Sơ đồ minh họa:

 
┌────────────┐ ┌──────────────────┐ ┌──────────────┐ │ Trình duyệt │ ───→ │ JMeter Proxy │ ───→ │ Web Server │ │ (Browser) │ ←─── │ (Recorder) │ ←─── │ (Ứng dụng) │ └────────────┘ └──────────────────┘ └──────────────┘

🔹 Đối với HTTPS:

  • Vì dữ liệu HTTPS được mã hóa, JMeter sẽ tạo chứng chỉ tạm (CA) để giải mã request/response.

  • Chứng chỉ nằm tại:

     
    <JMETER_HOME>/bin/ApacheJMeterTemporaryRootCA.crt
  • Bạn cần import chứng chỉ này vào trình duyệt để cho phép ghi HTTPS mà không bị lỗi bảo mật.


4. Cấu trúc script trong recording

Ví dụ cấu trúc sau khi ghi:

 
Test Plan
├── Thread Group
│ ├── HTTP Request Defaults
│ ├── HTTP Cookie Manager
│ ├── HTTP Header Manager
│ ├── Transaction Controller (Login)
│ │ └── HTTP Request (POST /login)
│ ├── Transaction Controller (Search)
│ │ └── HTTP Request (GET /search?q=item)
└── WorkBench
└── HTTP(S) Test Script Recorder

5. Thực hành

🪜 Bước 1: Tạo cấu trúc cơ bản

  1. Mở JMeter

  2. Thêm Thread Group:
    Add → Threads → Thread Group

  3. Thêm các thành phần hỗ trợ:

    • HTTP Request Defaults (cấu hình domain)

    • HTTP Cookie Manager

    • HTTP Header Manager


🪜 Bước 2: Thêm HTTP(S) Test Script Recorder

  1. Mở tab WorkBench

  2. Add → Non-Test Elements → HTTP(S) Test Script Recorder

  3. Cấu hình:

    • Port: 8888

    • Target Controller: chọn nơi lưu các request (thường là Thread Group hoặc Recording Controller)

    • URL Patterns to Exclude: (.*\.png|.*\.css|.*\.js|.*\.jpg) để bỏ các request tài nguyên không cần thiết


🪜 Bước 3: Cấu hình Proxy trong trình duyệt

  1. Mở trình duyệt (Chrome/Firefox)

  2. Vào phần Network Proxy Settings

    • HTTP Proxy: localhost

    • Port: 8888

  3. Tắt cache để đảm bảo ghi được mọi request.


🪜 Bước 4: Xử lý HTTPS (nếu có)

  1. Trong JMeter → nhấn Start trong Recorder
    → sinh file ApacheJMeterTemporaryRootCA.crt

  2. Mở Chrome:

     
    Settings → Privacy and Security → Manage Certificates → Import
  3. Import chứng chỉ trên vào Trusted Root Certification Authorities.


🪜 Bước 5: Bắt đầu ghi (Record)

  1. Nhấn Start trong Recorder

  2. Mở trình duyệt và thao tác trên ứng dụng:

    • Đăng nhập

    • Tìm kiếm sản phẩm

    • Xem chi tiết

    • Đăng xuất

  3. Sau khi hoàn tất → nhấn Stop trong JMeter.

  4. Toàn bộ request sẽ xuất hiện trong Thread Group.


6. Tinh chỉnh test script

Mục tiêu Công cụ / Cách làm
Xóa request không cần Chọn request ảnh, CSS, JS → Delete
Gom nhóm hành động Dùng Transaction Controller (Login, Search, Logout)
Biến hóa dữ liệu (Parameterization) Dùng CSV Data Set Config
Xử lý giá trị động (Correlation) Dùng Regular Expression Extractor hoặc JSON Extractor
Thêm thời gian chờ người dùng (Think Time) Dùng Constant Timer hoặc Gaussian Random Timer

7. Bài tập thực hành

Kịch bản: Ghi lại thao tác Đăng nhập → Tìm kiếm → Đăng xuất

  1. Ghi lại thao tác thật trên website demo.

  2. Xóa các request tài nguyên phụ.

  3. Thêm CSV Data Set Config chứa danh sách user/password.

  4. Thêm Transaction Controller cho từng hành động.

  5. Chạy lại script với 5 users, 2 vòng lặp.

8. Kiểm tra và debug script

  • Dùng View Results Tree để xem chi tiết request/response.

  • Dùng Debug Sampler để in giá trị biến.

  • Kiểm tra lỗi thường gặp:

    • 403/401 → Thiếu token hoặc session

    • 404 → Sai đường dẫn

    • 500 → Lỗi server do dữ liệu test không hợp lệ


9. Các lỗi thường gặp và cách khắc phục

Lỗi Nguyên nhân Cách xử lý
Không ghi được request Proxy sai port hoặc chưa cấu hình trong browser Kiểm tra lại cổng 8888 và proxy browser
Lỗi HTTPS “Untrusted” Chưa import CA của JMeter Import ApacheJMeterTemporaryRootCA.crt
Request chứa ảnh, CSS, JS Không lọc khi ghi Dùng “URL Patterns to Exclude”
Không lưu session Thiếu Cookie Manager Thêm HTTP Cookie Manager
CSRF token sai Ứng dụng có giá trị động Thêm Extractor để lấy token từ response

10. Bestpractice

  • Dùng Recording Template (File → Templates → Recording) để tạo cấu trúc mẫu.

  • Dùng BlazeMeter Chrome Extension nếu không muốn cấu hình proxy thủ công.

  • Chia nhỏ luồng test (modular recording) → dễ quản lý.

  • Dùng cURL → Import cURL vào JMeter khi không thể ghi bằng proxy.


11. Tổng kết

Kiến thức Đạt được
Hiểu Proxy là gì
Biết JMeter hoạt động như proxy
Cấu hình Recorder và Browser
Ghi và tinh chỉnh test script
Debug và khắc phục lỗi ghi

12. Tài liệu và công cụ tham khảo

  • Trang chủ Apache JMeter: https://jmeter.apache.org

  • JMeter Recording Template: File → Templates → Recording

  • Video hướng dẫn: BlazeMeter Academy – JMeter Recording

  • Website demo khuyến nghị:

    • https://demo.testfire.net

    • https://the-internet.herokuapp.com

13. Kết luận

Phần “Recording Test Script” là bước khởi đầu quan trọng nhất trong việc xây dựng bài kiểm thử hiệu năng.
Hiểu rõ cách JMeter hoạt động như một proxy, cách cấu hình và xử lý dữ liệu động giúp tester:

  • Ghi đúng luồng nghiệp vụ thực tế.

  • Tiết kiệm thời gian thiết kế test.

  • Đảm bảo script chạy ổn định trong load test quy mô lớn.

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