NỘI DUNG BÀI HỌC
✅ CSV data set config
✅ Xử lý dữ liệu đặc biệt
✅ Ví dụ minh họa
✅ CSV data set config
1. Khái niệm

File CSV (Comma-Separated Values) là một loại tệp văn bản dùng để lưu trữ dữ liệu dạng bảng (giống như dữ liệu trong Excel hoặc Google Sheets) theo cấu trúc đơn giản.
a. Đặc điểm chính
- Cấu trúc: Mỗi dòng trong file CSV là một bản ghi (record).
- Phân tách: Các cột (field) trong bản ghi thường được phân tách bằng dấu phẩy (,).
- Ví dụ:
- Họ tên,Tuổi,Địa chỉ
- Nguyễn Văn A,25,Hà Nội
- Trần Thị B,30,Hồ Chí Minh
- Định dạng: Là file văn bản thuần (.csv), có thể mở bằng nhiều phần mềm khác nhau (Notepad, Excel, Google Sheets, Python, R...).
- Tương thích cao: CSV được dùng phổ biến để trao đổi dữ liệu giữa các hệ thống khác nhau nhờ sự đơn giản, nhẹ và dễ xử lý.
b. Ưu điểm
- Nhẹ, dung lượng nhỏ.
- Tương thích với nhiều ứng dụng.
c. Nhược điểm
- Không hỗ trợ định dạng dữ liệu phức tạp (màu sắc, công thức, biểu đồ như Excel).
- Có thể gặp lỗi nếu dữ liệu có chứa dấu phẩy, xuống dòng hoặc ký tự đặc biệt (trường hợp này cần dùng dấu ngoặc kép " " để bao dữ liệu).
👉 Nói ngắn gọn: CSV là file văn bản lưu dữ liệu dạng bảng, các cột được phân tách bởi dấu phẩy.
Bạn nhận được yêu cầu thực hiện kiểm thử hiệu năng cho chức năng đăng nhập. Sau khi xây dựng và cấu hình xong Test Plan, bạn đang có sẵn một tài khoản. Tuy nhiên, nếu chỉ sử dụng duy nhất tài khoản này để thực hiện test thì sẽ không phản ánh đúng tình huống thực tế (nhiều người dùng khác nhau đăng nhập đồng thời).
Để mô phỏng chính xác hành vi thực tế, bạn cần cấu hình sao cho mỗi request được gửi đi sẽ sử dụng dữ liệu khác nhau từ tập dữ liệu đã chuẩn bị trước. JMeter cung cấp CSV Config Element phù hợp để trích xuất dữ liệu từ file và cho phép sử dụng linh hoạt ở bất kỳ đâu trong Test Plan.
2. Csv data set config

📌 Các trường trong CSV Data Set Config
- Filename
- Đường dẫn tới file CSV chứa dữ liệu.
- Có thể là đường dẫn tuyệt đối (C:/data/test.csv) hoặc tương đối (đặt file trong thư mục JMeter test).
- File Encoding
- Kiểu mã hóa file (UTF-8, ANSI, v.v).
- Nếu file có tiếng Việt thì nên để UTF-8 để tránh lỗi font.
- Variable Names (comma-delimited)
- Danh sách các tên biến tương ứng với từng cột trong file CSV.
- Nếu bỏ trống → JMeter sẽ lấy dòng đầu tiên của file CSV làm header (tên biến).
- Ví dụ: username,email
- Delimiter (use ‘\t’ for tab)
- Ký tự phân cách giữa các cột trong CSV.
- Mặc định là dấu phẩy (,).
- Nếu file dùng dấu khác (vd: ; hoặc tab), bạn phải chỉnh lại ở đây.
- Allow quoted data?
- Có cho phép đọc dữ liệu nằm trong dấu ngoặc kép " " không.
- Dùng trong trường hợp dữ liệu chứa dấu phẩy, xuống dòng...
- Recycle on EOF?
- EOF = End of File (cuối file).
- True (Yes): Khi đọc hết file, JMeter quay lại từ đầu (tái sử dụng dữ liệu).
- False (No): Khi đọc hết file, JMeter không lặp lại dữ liệu.
- Stop thread on EOF?
- True (Yes): Khi hết dữ liệu, thread (user ảo) sẽ dừng lại.
- False (No): Thread vẫn chạy, nhưng biến sẽ trả về rỗng.
- Thường dùng khi bạn muốn mỗi thread chỉ chạy đúng số dòng dữ liệu trong CSV.
- Sharing mode
- Cách chia sẻ file CSV giữa các thread:
- All threads: Tất cả thread dùng chung file CSV, đọc tuần tự.
- Current thread group: Mỗi Thread Group dùng file riêng.
- Current thread: Mỗi thread có bản copy riêng của file CSV.
- Identifier: Cho phép bạn định nghĩa nhóm thread nào chia sẻ chung.
- Cách chia sẻ file CSV giữa các thread:
3. Xử lý dữ liệu đặc biệt trong CSV
a. Dữ liệu chứa dấu ,
- Bọc cả field trong dấu ngoặc kép " ".
- Ví dụ file csv như sau:
username,password,address
user1,12345,"123, Nguyễn Trãi, Hà Nội"
b. Dữ liệu chứa dấu "
- Escape bằng cách lặp lại 2 dấu ngoặc kép "".
- Ví dụ file csv:
username,password,address
user1,12345,"123, Nguyễn Trãi, ""Khu A"""
- JMeter sẽ đọc thành:
123, Nguyễn Trãi, "Khu A"
c. Dữ liệu chứa cả dấu , và "
- Kết hợp cả hai quy tắc trên.
- Ví dụ file csv:
username,password,address
user1,12345,"45, Lê Lợi, ""Block B"""
4. Ví dụ minh họa đầy đủ
File users.csv
username,password,address
user1,12345,"123, Nguyễn Trãi, ""Khu A"""
user2,67890,"45, Lê Lợi, ""Block B"""
a. Cấu hình trong JMeter
- Filename: csv
- Variable Names: username,password,address
- Delimiter: ,
- Allow quoted data?: True
- Recycle on EOF?: False
- Stop thread on EOF?: True
Kết quả trong JMeter
- Thread 1 →
- ${username} = user1
- ${password} = 12345
- ${address} = 123, Nguyễn Trãi, "Khu A"
- Thread 2 →
- ${username} = user2
- ${password} = 67890
- ${address} = 45, Lê Lợi, "Block B"
Thực hành: Sử dụng dumy sample để mô phỏng request và Debug sample để test script cho học viên thực hành