NỘI DUNG BÀI HỌC

✅ Giới thiệu
✅ Cấu trúc cơ bản của Regex
✅ Regular Expression Extractor
✅ Ví dụ minh họa

1. Regex là gì?

Regex (Regular Expression): Cú pháp đặc biệt dùng để tìm kiếm, so khớp và xử lý chuỗi văn bản.

Ứng dụng:

  • Kiểm tra dữ liệu nhập (validation).

  • Tìm kiếm nâng cao.

  • Thay thế chuỗi.

  • Trích xuất dữ liệu từ log/file.

2. Cấu trúc cơ bản của Regex

🔹 Ký tự thường

Khớp chính xác ký tự.
Ví dụ: abc khớp với "abc".

🔹 Metacharacters (ký tự đặc biệt)

Ký hiệu Ý nghĩa Ví dụ
. Bất kỳ ký tự nào a.c khớp "abc", "a1c"
^ Bắt đầu chuỗi ^Hello khớp "Hello world"
$ Kết thúc chuỗi world$ khớp "Hello world"
* Lặp lại 0 hoặc nhiều lần ab* khớp "a", "abbb"
+ Lặp lại 1 hoặc nhiều lần ab+ khớp "ab", "abbb"
? 0 hoặc 1 lần colou?r khớp "color", "colour"
{n} Lặp đúng n lần \d{3} khớp "123"
{n,m} Lặp từ n đến m lần a{2,4} khớp "aa", "aaa", "aaaa"
[] Một ký tự trong tập [abc] khớp "a", "b", "c"
() Nhóm (abc)+ khớp "abcabc"
| OR (hoặc) cat|dog khớp "cat" hoặc "dog"

🔹 Nhóm ký tự viết tắt

Ký hiệu Ý nghĩa Ví dụ
\d Chữ số (0-9) \d\d"12"
\w Ký tự chữ/số/_ \w+"abc123"
\s Khoảng trắng \s" " hoặc \t
\D Không phải số \D"a"
\W Không phải ký tự chữ/số \W"!"
\S Không phải khoảng trắng \S"a"

3. Regular Expression Extractor

a. Khái niệm

  • Regular Expression Extractor là một Post-Processor trong JMeter.

  • Chức năng: trích xuất dữ liệu từ response (HTML, JSON, XML, text…) dựa vào biểu thức Regex.

  • Dữ liệu trích xuất sẽ được lưu vào biến để dùng cho các request tiếp theo.

👉 Thêm bằng cách:
Right click → Add → Post Processors → Regular Expression Extractor.


b. Các trường cấu hình chính

Trường Ý nghĩa
Name Tên của Extractor (tùy chọn).
Apply to Áp dụng cho: Main sample, Sub-samples, Both…
Field to check Chọn nội dung cần so khớp: Response Body, Headers, URL, Response Code, Response Message.
Reference Name Tên biến lưu giá trị trích xuất (ví dụ: sessionId).
Regular Expression Biểu thức Regex để trích xuất.
Template Chỉ định group nào trong regex được lưu, thường là $1$.
Match No. Chọn kết quả: 1 = kết quả đầu tiên, -1 = tất cả.
Default Value Giá trị mặc định nếu không tìm thấy kết quả.

4. Ví dụ

Câu 1 – JSON Response

Response:

{ "status": "success", "user": { "id": 12345, "username": "john_doe", "email": "john@example.com" }, "auth": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9", "expires_in": 3600 } }

Cần trích xuất: token

Regex nào đúng?

  • A. "token": "(.*?)"

  • B. "username": "(.*?)"

  • C. "token":\s*"(.*?)"

  • D. "id": (\d+)

👉 Đáp án: C (vì xử lý được khoảng trắng).

Câu 2 – HTML Response

Response:

<h1>Welcome back, John Doe!</h1> <div class="menu"> <a href="/profile/12345">My Profile</a> <a href="/orders/ORD998877">My Orders</a> </div>

Cần trích xuất: 12345

Regex nào đúng?

  • A. href="(.*?)"

  • B. /profile/(\d+)

  • C. <h1>(.*?)</h1>

  • D. \d+

👉 Đáp án: B (match chính xác số trong URL).

Câu 3 – XML Response

Response:

<response> <transaction> <id>TXN5566778899</id> <amount currency="USD">2500.75</amount> </transaction> </response>

Cần trích xuất: TXN5566778899

Regex nào đúng?

  • A. <id>(.*?)</id>

  • B. <amount>(.*?)</amount>

  • C. status>(.*?)<

  • D. <id>\d+</id>

👉 Đáp án: A.

Câu 4 – Header Response

Header:

Set-Cookie: SESSIONID=qwerty123abc; Path=/; Secure; HttpOnly

Cần trích xuất: qwerty123abc

Regex nào đúng?

  • A. SESSIONID=(.*?);

  • B. Set-Cookie: (.*?)

  • C. Path=(.*?)

  • D. SESSIONID=(.*)

👉 Đáp án: A.

Câu 5 – Body Text

Response:

Order confirmed! Your order ID is #ORD2025001.

Cần trích xuất: ORD2025001

Regex nào đúng?

  • A. #(.*?)\.

  • B. ORD\d+

  • C. order ID is #(.*?)\.

  • D. #ORD(\d+)

👉 Đáp án: D (match ORD + số, loại bỏ ký tự #).

5. Kết luận & Bài tập thêm

  • Regular Expression Extractor là công cụ quan trọng trong JMeter để xử lý dữ liệu động.

  • Nên luyện tập với nhiều loại response: JSON, HTML, XML, Header, Body text.

  • Thực hành với Match No. = -1 để lấy nhiều giá trị cùng lúc.











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