Tự học kiểm thử tự động với Jmeter - Ep2: Tìm hiểu các element trong JMeter

Một kịch bản kiểm thử của JMeter bao gồm các thành phần phân cấp và có trật tự được tổ chức theo dạng cây:
Element in JMeter

1. Test Plan

Test Plan là là thành phần quan trọng nhất như là rễ của cây. Đối với một test plan, tên, mô tả và biến người dùng có thể được cấu hình.


Test plan

2. Thread Group

Thread group elements là điểm bắt đầu của một test plan bất kỳ. Tất cả các Controllers và Samplers phải được đặt dưới một thread group. Những elements còn lại ( ví dụ Listeners ) có thể đặt trực tiếp dưới test plan. Trong trường hợp đó chúng sẽ áp dụng đến tất cả thread group. Thread group element điều khiển số lượng threads mà JMeter sẽ sử dụng để thực thi kịch bản test.
Các điều khiển cho mộtThread Group cho phép bạn đặt số lượng thread cho mỗi nhóm.

Ví dụ: nếu bạn đặt số lượng thread là 100; JMeter sẽ tạo và mô phỏng 100 yêu cầu của người dùng đến máy chủ đang được kiểm thử


Thread Group

3. Samplers

Ở bài chia sẻ trước, mình có đề cập rằng JMeter hỗ trợ kiểm tra HTTP, FTP, JDBC và nhiều giao thức khác.

Chúng ta cũng đã biết rằng Thread Groups mô phỏng yêu cầu người dùng đến máy chủ.

Nhưng làm thế nào để một Thread Groups biết loại yêu cầu nào (HTTP, FTP, v.v.) cần thực hiện?

Câu trả lời là Samplers

Yêu cầu người dùng có thể là FTP Request, HTTP Request, JDBC Request ... Vv.


Samplers

  • FTP Request: Hãy tưởng tượng bạn muốn kiểm tra hiệu suất máy chủ FTP. Bạn có thể sử dụng FTP request sampler trong JMeter để thực hiện nhiệm vụ này. Bộ điều khiển này cho phép bạn gửi yêu cầu "download file" hoặc "upload file" FTP đến máy chủ FTP.
    FTP Request

Ví dụ: nếu bạn muốn tải xuống tệp "Test.txt" từ máy chủ FTP đang thử nghiệm, bạn cần định cấu hình một số tham số trong JMeter như hình dưới đây


FTP Request

JMeter sẽ gửi lệnh FTP đến máy chủ FTP ftp.example.com , sau đó tải xuống tệp Test.txt từ máy chủ đó.

  • HTTP request: Sampler này cho phép bạn gửi yêu cầu HTTP / HTTPS đến máy chủ web. Hãy xem xét ví dụ dưới đây. JMeter gửi yêu cầu HTTP đến trang web của Google và truy xuất các tệp hoặc hình ảnh HTML từ trang web này.


HTTP Request

  • JDBC request: Sampler này cho phép bạn thực hiện Kiểm tra hiệu suất cơ sở dữ liệu . Nó gửi một Yêu cầu JDBC (một truy vấn SQL) đến cơ sở dữ liệu.


JDBC Request

Ví dụ: máy chủ cơ sở dữ liệu có trường test_result được lưu trữ trong tên bảng test_tbl. Bạn muốn truy vấn dữ liệu này từ máy chủ cơ sở dữ liệu; bạn có thể định cấu hình JMeter để gửi truy vấn SQL đến máy chủ này để truy xuất dữ liệu.


JDBC Request Format

  • BSF request: Sampler này cho phép bạn viết một sampler bằng ngôn ngữ kịch bản BSF . Dưới đây là một ví dụ về BSF Sampler trong JMeter


BFS Sampler

  • Access Log Sampler: Sampler này cho phép bạn đọc nhật ký truy cập và tạo các HTTP request. Nhật ký có thể là hình ảnh, Html, CSS ...


Access Log Sampler

  • SMTP Sampler: Nếu bạn muốn kiểm thử một mail server, bạn có thể sử dụng SMTP sampler. Sampler này được sử dụng để gửi email bằng giao thức SMTP.

    SMTP Sampler

4. Listener

Listener hiển thị kết quả thực hiện test. Nó có thể hiển thị kết quả ở định dạng khác nhau như cây, bảng, biểu đồ hoặc file log.


Listeners

  • Kết quả dạng biểu đồ hiển thị thời gian phản hồi của máy chủ ở dạng biểu đồ như sau:


Graph

  • Xem kết quả dạng cây hiển thị kết quả của yêu cầu người dùng ở định dạng HTML cơ bản:

    Tree

  • Bảng kết quả hiển thị tóm tắt kết quả kiểm tra ở định dạng bảng:


View table

  • File log hiển thị tóm tắt kết quả kiểm tra trong tệp văn bản:


Log Summary

5. Config Element

Một số yếu tố cấu hình thường được sử dụng trong JMeter:


Configuration Elements

  • CSV Data Set Config: Giả sử bạn muốn kiểm tra một trang web cho 100 người dùng đăng nhập bằng các thông tin đăng nhập khác nhau. Bạn không cần phải ghi lại kịch bản 100 lần! Bạn có thể tham số hóa tập lệnh để nhập thông tin đăng nhập khác nhau. Thông tin đăng nhập này (ví dụ: Tên người dùng, mật khẩu) có thể được lưu trữ trong một tệp văn bản. JMeter có một yếu tố cho phép bạn đọc các tham số khác nhau từ tệp văn bản đó. Đó là "CSV Data Set Config", được sử dụng để đọc các dòng từ tệp và chia chúng thành các biến.


CSV Data Set Config

Đây là một ví dụ về CSV Data. Đó là một tệp văn bản chứa thông tin người dùng và mật khẩu để đăng nhập trang web mục tiêu của bạn


CSV Data

  • HTTP Cookie Manager

Có một ví dụ n hư sau:

Bạn đã sử dụng trình duyệt của mình (Firefox, IE, Chrome... Vv) để duyệt www.google.com

Bạn đăng nhập bằng username và password của bạn. username và password của bạn sẽ được lưu trữ trong máy tính của bạn dưới dạng cookie. Lần tới, khi bạn truy cập www.google.com , bạn không cần phải đăng nhập lại vì trình duyệt của bạn sẽ sử dụng cookie làm dữ liệu người dùng để đăng nhập.

Trình quản lý cookie HTTP cũng có tính năng tương tự như trình duyệt web. Nếu bạn có HTTP request và phản hồi có chứa cookie, trình quản lý cookie sẽ tự động lưu trữ cookie đó và sẽ sử dụng nó cho tất cả các yêu cầu trong tương lai tới trang web cụ thể đó.

  • HTTP request default

Phần tử này cho phép bạn đặt các giá trị mặc định mà HTTP Request controllers của bạn sử dụng.
Ví dụ:
Bạn đang gửi 100 HTTP requests đến máy chủ google.com . Bạn sẽ phải nhập thủ công tên máy chủ = google.com cho tất cả 100 yêu cầu này. Thay vào đó, bạn có thể thêm một HTTP request defaults với trường "Server Name or IP" = google.com. Không cần gõ 100 lần!


HTTP Request Default

  • Login Config Element

Login Config Element cho phép bạn thêm hoặc ghi đè cài đặt tên người dùng và mật khẩu trong bộ lấy mẫu.

Ví dụ: bạn muốn mô phỏng một người dùng đăng nhập vào trang web www.facebook.com bằng username và password. Bạn có thể sử dụng Login Config Element để thêm cài đặt username và password này trong yêu cầu người dùng:


Login Config Element

So sánh Login Config Element với CSV data Config

Login Config Element CSV Data Config
Được sử dụng để mô phỏng một người dùng đăng nhập Được sử dụng để mô phỏng đăng nhập nhiều người dùng
Chỉ thích hợp cho tham số đăng nhập (người dùng và mật khẩu) Thích hợp cho số lượng lớn các tham số


Tham khảo: https://www.guru99.com/jmeter-element-reference.html

All Rights Reserved