+2

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.


Test plan

Khung thiết lập của Test Plan gồm 3 phần image.png

1. Name

2. User Define Variable
Chứa tên và giá trị các biến môi trường. Bạn có thể thêm biến bằng cách click button Add.
Các biến này sẽ được sử dụng trong suốt quá trình chạy project nếu nó được gọi đến

3. Test Plan Properties

Có 3 thuộc tính chính để cấu hình một Test Plan mà bạn có thể thể sử dụng để kiểm soát hành vi của Test Plan theo yêu cầu. Ba thuộc tính đó là:

Run Thread Groups Consecutively(i.e. one at a time)
Trong 1 Test Plan thì yêu cầu tối thiểu phải có ít nhất 1 Thread Group. Trong trường hợp Test Plan có nhiều hơn 1 Thread Group thì chúng sẽ thực hiện lần lượt từng cái nếu checkbox này được tick chọn. Ngược lại nếu checkbox này không được tick chọn thì tất cả các Thread Group sẽ được chạy song song.

Run tearDown Thread Groups after shutdown of main threads
Các luồng TearDown sẽ được thực thi sau khi việc thực hiện kiểm thử kết thúc thực hiện các luồng thông thường của nó. Nếu checkbox này được chọn, thì luồng này sẽ được chạy sau khi hoàn thành việc kiểm thử. Tính năng tearDown thường được sử dụng để báo cáo hoặc xóa các hoạt động trước đó.
Ví dụ: Nếu bạn muốn log sẽ được xóa tự động sau khi thực hiện chạy 1 Test Plan hoặc muốn các báo cáo có định dạng cụ thể thì có thể sử dụng thuộc tính này của Test Plan.

Functional Test Mode(i.e. save Response Data and Sampler Data) Nếu checkbox này được chọn, thì các thông tin của sampler requests (các requests gửi lên server) và response data (dữ liệu server phản hồi về) sẽ được lưu vào trong các listener (thành phần trong JMeter hiển thị các thông tin về request, response cũng như các thông số tính toán trong kiểm thử hiệu năng sẽ được nói chi tiết ở phần sau). Checkbox này cho phép chúng ta xác minh rằng kết quả trả về có đúng như mong đợi hay không.

Note: Thread Group là 1 thành phần con của Test Plan. Mỗi Thread Group đại diện cho 1 test case (Chúng ta sẽ hiểu rõ hơn ở phần sau).

Lưu ý: Tại 1 thời điểm chỉ có thể chạy duy nhất được 1 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.

Dưới đây là một số sapmler phổ biến chúng ta cần lưu ý:


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

Nếu bạn muốn gửi nhiều request http đến cùng một máy chủ, hãy cân nhắc sử dụng HTTP Request Defaults Configuration Element để bạn không phải nhập cũng 1 thông tin Server Name or IP cho mỗi 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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí