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

📘 Regular Expression Extractor

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"
    ` ` OR (hoặc)
    () Nhóm (abc)+ khớp "abcabc"
     
  • 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 có thể được lưu vào biến và sử dụng cho các request tiếp theo.
  • Thêm Regular Expression Extractor vào request cần bắt dữ liệu
    (Right click → Add → Post Processors → Regular Expression Extractor).


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

Khi thêm Regular Expression Extractor, bạn sẽ thấy các trường:

Trường Ý nghĩa
Name Tên của Extractor (tuỳ 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 nhóm (group) nào trong regex được lưu, thường là $1$.
Match No. Chọn kết quả nào nếu có nhiều kết quả khớp: 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 giá trị token.

Regex nào đúng?
A. "token": "(.*?)"
B. "username": "(.*?)"
C. "token":\s*"(.*?)"
D. "id": (\d+)

Đáp án: C

  • A: Sai vì không xử lý khoảng trắng
  • B: Sai vì lấy username
  • C: Đúng, lấy giá trị token bất kể khoảng trắng
  • D: Sai vì trích số id­­­­

Câu 2 – HTML Response

Response:

<!DOCTYPE html>

<html>

<head>

  <title>Dashboard</title>

</head>

<body>

  <h1>Welcome back, John Doe!</h1>

  <div class="menu">

    <a href="/profile/12345">My Profile</a>

    <a href="/orders/ORD998877">My Orders</a>

    <a href="/logout">Logout</a>

  </div>

  <footer>© 2025 Example Corp</footer>

</body>

</html>

Muốn trích số 12345.

  1. href="(.*?)"
    B. /profile/(\d+)
    C. <h1>(.*?)</h1>
    D. \d+

Đáp án: B

  • A: Sai vì lấy cả /profile/12345
  • B: Đúng, match chính xác số trong URL
  • C: Sai vì lấy text trong <h1>
  • D: Sai vì \d+ có thể match nhầm số khác

Câu 3 – XML Response

<response>

  <status>success</status>

  <transaction>

    <id>TXN5566778899</id>

    <amount currency="USD">2500.75</amount>

    <method>CreditCard</method>

    <timestamp>2025-09-10T14:25:30Z</timestamp>

  </transaction>

</response>

Trích số 987654.

A. <id>(.*?)</id>
B. <amount>(.*?)</amount>
C. status>(.*?)<
D. <id>\d+</id>

Đáp án: A

  • A: Đúng, lấy nội dung trong <id>
  • B: Sai vì lấy amount
  • C: Sai vì không liên quan
  • D: Sai vì không có group ( ) để lấy số

Câu 4 – Header

HTTP/1.1 200 OK

Date: Tue, 10 Sep 2025 08:30:00 GMT

Server: Apache/2.4.41 (Ubuntu)

Content-Type: application/json; charset=UTF-8

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

Cache-Control: no-cache, no-store, must-revalidate

Content-Length: 245

Connection: keep-alive

Trích qwerty123abc

A. SESSION=(.*?);
B. Set-Cookie: (.*?)
C. Path=(.*?)
D. SESSION=(.*)

Đáp án: A

  • A: Đúng vì lấy giá trị giữa SESSION= và ;
  • B: Sai vì lấy toàn bộ header
  • C: Sai vì match Path=/
  • D: Sai vì greedy, ăn hết

Câu 5 – Body Text

Order confirmed! Your order ID is #ORD2025001.

Trích ORD2025001

A. #(.*?)\.
B. ORD\d+
C. order ID is #(.*?)\.
D. #ORD(\d+)

Đáp án: D

  • A: Sai vì dính dấu chấm cuối
  • B: Sai vì có thể nhầm ORD khác
  • C: Sai vì vẫn dính dấu .
  • D: Đúng vì match ORD + số, bỏ dấu #

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

  • Regular Expression Extractor là công cụ quan trọng để xử lý dữ liệu động trong test script.
  • Học viên nên luyện tập với JSON, HTML, XML, Header, Body text.
  • Thực hành với Match No. = -1 để lấy nhiều giá trị.

 











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