JMeter Các yếu tố và thành phần: Nhóm chỉ, Bộ lấy mẫu

⚡ Tóm tắt thông minh

JMeter Các thành phần là khối xây dựng của mọi kế hoạch kiểm thử: Nhóm luồng tạo ra người dùng ảo, Bộ lấy mẫu gửi các yêu cầu, Bộ lắng nghe hiển thị kết quả và Các thành phần cấu hình cung cấp các giá trị mặc định và dữ liệu mà các yêu cầu đó cần.

  • 🔘 Nhóm chủ đề: Mỗi luồng (thread) đại diện cho một người dùng ảo điều khiển ứng dụng đang được kiểm thử.
  • ☑️ Người lấy mẫu: Hãy xác định giao thức của yêu cầu — FTP, HTTP, JDBC, SMTP và nhiều hơn nữa.
  • Người nghe: Hiển thị kết quả dưới dạng đồ thị, cây, bảng hoặc tệp nhật ký.
  • 🧪 Các thành phần cấu hình: Thiết lập các giá trị mặc định và biến mà các bộ lấy mẫu sẽ sử dụng lại trong toàn bộ quá trình kiểm thử.
  • 🛠️ Chạy dựa trên dữ liệu: Cấu hình tập dữ liệu CSV cung cấp thông tin đăng nhập khác nhau cho mỗi người dùng mô phỏng.
  • Các từ tương đương hiện đại: Công cụ BSF Sampler đã bị loại bỏ; các bản phát hành hiện tại sử dụng script thông qua JSR223 và Groovy.

JMeter Các thành phần: Nhóm luồng, Bộ lấy mẫu, Bộ lắng nghe và Các thành phần cấu hình

Yếu tố trong là gì JMeter?

Các thành phần khác nhau của JMeter được gọi là các phần tử. Mỗi phần tử được thiết kế cho một mục đích cụ thể.

Hình dưới đây đưa ra một số thành phần chung trong JMeter và cho thấy cách chúng được sắp xếp trong một Nhóm Luồng (Thread Group).

JMeter Sơ đồ phân cấp phần tử với Nhóm Luồng (Thread Group) nằm trên các Bộ lấy mẫu (Samplers), Bộ điều khiển logic (Logic Controllers), Bộ lắng nghe (Listeners), Phần tử cấu hình (Configuration Elements), Khẳng định (Assertions), Bộ định thời (Timers) và Bộ xử lý (Processors).

Học tất cả các thành phần cùng một lúc sẽ dẫn đến sự bối rối và nhàm chán. Ở đây, chúng ta sẽ thảo luận về các thành phần cần thiết mà bạn cần biết trước khi bắt đầu. thử nghiệm in JMeter.

Các thành phần còn lại sẽ được thảo luận khi chúng được sử dụng trong các bài hướng dẫn tiếp theo. Các yếu tố được thảo luận trong bài hướng dẫn này được liệt kê bên dưới.

Nhóm chủ đề

Nhóm luồng (Thread Group) là một tập hợp các luồng. Mỗi luồng đại diện cho một người dùng sử dụng ứng dụng đang được kiểm thử. Về cơ bản, mỗi luồng mô phỏng một yêu cầu thực tế của người dùng gửi đến máy chủ.

Các điều khiển cho nhóm luồng cho phép bạn thiết lập số lượng luồng cho mỗi nhóm.

Ví dụ, nếu bạn đặt số luồng là 100, JMeter Sẽ tạo và mô phỏng 100 yêu cầu người dùng gửi đến máy chủ cần kiểm thử, như sơ đồ bên dưới minh họa.

Sơ đồ của một JMeter Nhóm luồng mô phỏng Người dùng 1 đến Người dùng 100, mỗi người dùng gửi một yêu cầu đến ứng dụng đang được kiểm thử.

Bảng điều khiển Nhóm luồng cũng có một khoảng thời gian khởi động, giúp phân bổ việc bắt đầu các luồng đó theo thời gian thay vì khởi chạy đồng loạt cho tất cả người dùng.

Người lấy mẫu

Như chúng ta đã biết, 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 các yêu cầu của người dùng gửi đến máy chủ.

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

Câu trả lời là Samplers.

Yêu cầu của người dùng có thể là yêu cầu FTP, yêu cầu HTTP, yêu cầu JDBC, v.v. Hình dưới đây liệt kê các bộ lấy mẫu được đề cập trong hướng dẫn này.

Liệt kê sơ đồ cây JMeter Các bộ lấy mẫu: Yêu cầu FTP, Yêu cầu HTTP, Yêu cầu JDBC, Bộ lấy mẫu BSF, Bộ lấy mẫu nhật ký truy cập và Bộ lấy mẫu SMTP.

Yêu cầu FTP

Giả sử bạn muốn kiểm tra hiệu năng của máy chủ FTP. Bạn có thể sử dụng bộ lấy mẫu yêu cầu FTP 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 “tệp tải xuống” hoặc “tệp tải lên” FTP tới máy chủ FTP.

Sơ đồ hiển thị JMeter Gửi yêu cầu FTP đến máy chủ FTP để tải lên hoặc tải xuống tệp tin.

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

Bảng mẫu yêu cầu FTP với máy chủ ftp.example.com, cổng 21, tệp từ xa Test.txt và đăng nhập ẩn danh.

Bảng điều khiển thiết lập máy chủ thành ftp.example.com, cổng 21, tệp từ xa là Test.txt và tùy chọn get(RETR), vậy nên JMeter Gửi lệnh FTP đến máy chủ đó và tải xuống tệp.

Yêu cầu HTTP

Bộ lấy mẫu này cho phép bạn gửi yêu cầu HTTP/HTTPS đến máy chủ web.

Hãy xem ví dụ dưới đây: JMeter gửi yêu cầu HTTP tới Google Trang web này truy xuất các tệp HTML hoặc hình ảnh từ đó.

Sơ đồ của JMeter gửi yêu cầu HTTP tới Google Các trang web và việc nhận lại mã HTML và hình ảnh.

Trong phần hướng dẫn JMeter Kiểm tra năng suấtChúng tôi sẽ giải thích chi tiết hơn về yêu cầu HTTP này. Đây là bộ lấy mẫu phổ biến nhất. kiểm tra ứng dụng web Công việc phụ thuộc vào điều đó.

Yêu cầu JDBC

Công cụ lấy mẫu này cho phép bạn thực thi cơ sở dữ liệu. kiểm tra năng suất. Nó gửi Yêu cầu JDBC (truy vấn SQL) tới cơ sở dữ liệu.

Sơ đồ của JMeter Gửi truy vấn SQL đến máy chủ cơ sở dữ liệu và nhận kết quả.

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

Bảng điều khiển Yêu cầu JDBC với Loại truy vấn được đặt thành Câu lệnh Chọn và truy vấn là select test_result from test_tbl where id = 1

Loại truy vấn ở đây là câu lệnh SELECT và truy vấn có nội dung như sau: select test_result from test_tbl where id = 1Một phần tử Cấu hình Kết nối JDBC phải cung cấp nhóm kết nối mà trường Tên Biến trỏ đến.

Bộ lấy mẫu BSF

Bộ lấy mẫu này cho phép bạn viết một bộ lấy mẫu bằng cách sử dụng một BSF ngôn ngữ kịch bản.

Đây là một ví dụ về thiết bị lấy mẫu BSF. JMeter, với các trường dành cho ngôn ngữ kịch bản, các tham số được truyền cho kịch bản và kịch bản nội tuyến hoặc tệp kịch bản bên ngoài.

Bảng điều khiển BSF Sampler với các trường dành cho ngôn ngữ kịch bản, tham số, tệp kịch bản bên ngoài và nội dung kịch bản nội tuyến.

Lưu ý về việc ngừng hỗ trợ: Họ linh kiện BSF đã bị loại bỏ để thay thế bằng linh kiện JSR223 và không còn xuất hiện trong tài liệu nữa. JMeter tham chiếu thành phầnTrên các phiên bản hiện tại, hãy sử dụng Máy lấy mẫu JSR223 với Groovy, công cụ này biên dịch kịch bản và hoạt động tốt hơn nhiều khi chịu tải. Bảng điều khiển phía trên được giữ lại ở đây vì các kế hoạch kiểm thử cũ vẫn còn chứa nó.

Trình lấy mẫu nhật ký truy cập

Công cụ lấy mẫu này cho phép bạn đọc nhật ký truy cập và tạo các yêu cầu HTTP. Các mục nhật ký có thể là hình ảnh, HTML, CSS, v.v.

Bảng điều khiển Access Log Sampler hiển thị các trường máy chủ và cổng mặc định, lớp plugin TCLogParser và vị trí tệp nhật ký.

Trường Parser mặc định là org.apache.jmeter.protocol.http.util.accesslog.TCLogParservà trường Vị trí Tệp Nhật ký trỏ đến JMeter Tại nhật ký mà bạn muốn phát lại.

Trình lấy mẫu SMTP

Nếu bạn muốn kiểm tra máy chủ thư điện tử, bạn có thể sử dụng SMTP Sampler. Công cụ này được dùng để gửi thư điện tử bằng giao thức SMTP.

Bảng điều khiển SMTP Sampler với các cài đặt máy chủ, địa chỉ thư, tùy chọn xác thực và bảo mật, và cài đặt tin nhắn.

Bảng điều khiển này nhóm các cài đặt máy chủ, địa chỉ thư, xác thực và cài đặt tin nhắn, đồng thời in các cổng mặc định bên cạnh trường Cổng: SMTP 25, SSL 465 và StartTLS 587.

Người nghe

Các trình lắng nghe hiển thị kết quả thực thi kiểm thử. Chúng có thể trình bày kết quả ở nhiều định dạng khác nhau như cây, bảng, đồ thị hoặc tệp nhật ký.

Sơ đồ minh họa cách Listener hiển thị kết quả dưới dạng đồ thị, cây, bảng và báo cáo.

Kết quả đồ thị Trình lắng nghe hiển thị thời gian phản hồi của máy chủ trên biểu đồ, kèm theo số lượng mẫu, giá trị trung bình, độ lệch chuẩn, thông lượng và giá trị trung vị được in bên dưới.

Biểu đồ kết quả hiển thị thời gian phản hồi cùng với dữ liệu, giá trị trung bình, trung vị, độ lệch chuẩn và chuỗi thông lượng.

Xem cây kết quả Hiển thị kết quả của mỗi yêu cầu người dùng ở định dạng HTML cơ bản, với tab kết quả Sampler báo cáo thời gian tải, độ trễ, kích thước và mã phản hồi.

Hiển thị kết quả của trình lắng nghe Tree với danh sách yêu cầu ở bên trái và tab kết quả Sampler hiển thị mã phản hồi 200.

Xem kết quả dưới dạng bảng Hiển thị tóm tắt kết quả xét nghiệm dưới dạng bảng, mỗi hàng tương ứng với một mẫu.

Xem kết quả trong trình lắng nghe dạng bảng với các cột hiển thị số mẫu, thời gian bắt đầu, tên luồng, nhãn và thời gian lấy mẫu.

Tệp nhật ký ghi lại cùng một bản tóm tắt dưới dạng văn bản, đó là những gì bạn giữ lại khi chạy thử nghiệm mà không có giao diện người dùng đồ họa (GUI).

Bảng tóm tắt nhật ký tổng hợp liệt kê các nhãn máy lấy mẫu với số lượng mẫu, giá trị trung bình và một hàng TỔNG CỘNG.

Thực hành tốt nhất: Các trình lắng nghe giao diện người dùng (GUI) tiêu tốn bộ nhớ và làm sai lệch kết quả, vì vậy hãy chạy các bài kiểm tra tải thực tế ở chế độ không có GUI và mở tệp kết quả đã lưu sau đó.

Các yếu tố cấu hình

Các phần tử cấu hình thiết lập các giá trị mặc định và biến số để các bộ lấy mẫu sử dụng sau này.

Hình dưới đây cho thấy một số thành phần cấu hình thường được sử dụng trong JMeter.

Sơ đồ cây của JMeter Các thành phần cấu hình: Cấu hình tập dữ liệu CSV, Trình quản lý cookie HTTP, Thành phần cấu hình đăng nhập, Cài đặt mặc định yêu cầu HTTP và Cài đặt mặc định yêu cầu FTP

Cấu hình tập dữ liệu CSV

Giả sử bạn muốn kiểm tra một trang web với 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 kịch bản để nhập các 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 và mật khẩu) có thể được lưu trữ trong một tệp văn bản. JMeter Nó có một thành phần 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à tách chúng thành các biến.

JMeter Cây kế hoạch kiểm thử với cấu hình tập dữ liệu CSV được chọn trong bộ điều khiển Đăng nhập cùng với các thiết lập mặc định yêu cầu HTTP.

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

Tệp văn bản csv_data.txt chứa bốn hàng dữ liệu được phân tách bằng dấu phẩy, bao gồm tên người dùng, mật khẩu và thời hạn cookie.

Trình quản lý cookie HTTP

Hãy để chúng tôi hiểu điều này với một ví dụ.

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

Bạn đăng nhập bằng tên người dùng và mật khẩu của mình.

Tên người dùng và mật khẩu của bạn sẽ được lưu trữ trên máy tính dưới dạng cookie.

Lần sau khi bạn ghé thăm www.google.comBạn không cần đăng nhập lại, vì trình duyệt sẽ sử dụng cookie của bạn làm dữ liệu người dùng để đăng nhập.

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

Yêu cầu HTTP mặc định

Phần tử này cho phép bạn đặt các giá trị mặc định mà bộ điều khiển Yêu cầu HTTP của bạn sử dụng.

Ví dụ,

Bạn đang gửi 100 yêu cầu HTTP đến máy chủ google.com.

Bạn sẽ phải nhập tên máy chủ google.com thủ công cho cả 100 yêu cầu.

Thay vào đó, bạn có thể thêm một phần tử HTTP Request Defaults duy nhất với trường “Server Name or IP” được đặt thành google.com, như hình bên dưới.

Bảng cài đặt mặc định yêu cầu HTTP với tên máy chủ là google.com, cổng 80 và thời gian chờ kết nối và phản hồi.

Không cần phải gõ đi gõ lại 100 lần. Phần này sẽ được giải thích chi tiết trong hướng dẫn. JMeter Kiểm tra năng suất.

Phần tử cấu hình đăng nhập

Phần tử Cấu hình Đăng nhập 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 các 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 Với tên người dùng và mật khẩu. Bạn có thể sử dụng Phần tử Cấu hình Đăng nhập để thêm thiết lập tên người dùng và mật khẩu này vào yêu cầu người dùng.

Bảng điều khiển phần tử cấu hình đăng nhập với tên người dùng là guru99 và trường mật khẩu được che giấu.

So sánh phần tử cấu hình đăng nhập với cấu hình tập dữ liệu CSV.

Phần tử cấu hình đăng nhập Cấu hình tập dữ liệu CSV
Được sử dụng để mô phỏng đăng nhập của một người dùng Được sử dụng để mô phỏng nhiều lần đăng nhập của người dùng.
Chỉ thích hợp để lưu trữ thông tin đăng nhập (tên người dùng và mật khẩu). Thích hợp cho số lượng lớn các tham số

Kết hợp hai yếu tố này, chúng bao quát hầu hết mọi tình huống xác thực mà bạn gặp phải. công cụ kiểm tra hiệu suất làm việc.

Câu Hỏi Thường Gặp

Nó nói JMeter Cần bao nhiêu thời gian để tất cả các luồng đều hoạt động? Mười luồng với thời gian khởi động 100 giây sẽ bắt đầu cách nhau mười giây. Thời gian khởi động quá ngắn sẽ làm quá tải máy chủ và gây ra các lỗi mà người dùng thực sự không bao giờ gây ra.

Bộ hẹn giờ chèn một khoảng dừng giữa các yêu cầu để tải mô phỏng giống với việc duyệt web thực tế thay vì gây ra hiện tượng quá tải. Các điều kiện kiểm tra từng phản hồi, đánh dấu một mẫu là thất bại nếu mã trạng thái, văn bản hoặc thời gian không khớp với những gì bạn đã chỉ định.

Chúng nhóm và phân nhánh các yêu cầu bên dưới. Bộ điều khiển vòng lặp (Loop Controller) lặp lại các phần tử con của nó, bộ điều khiển điều kiện (If Controller) chạy chúng có điều kiện, và bộ điều khiển giao dịch (Transaction Controller) báo cáo toàn bộ nhóm như một bước tính thời gian duy nhất trong kết quả.

Không. Các trình lắng nghe như View Results Tree sẽ lưu trữ dữ liệu mẫu và làm sai lệch các con số mà chúng báo cáo. Hãy chạy thử nghiệm ở chế độ không có giao diện đồ họa, ghi kết quả vào một tệp, sau đó tải tệp đó vào trình lắng nghe sau khi quá trình chạy hoàn tất.

Các phần tử cấu hình và bộ tiền xử lý được áp dụng trước, sau đó bộ lấy mẫu chạy, rồi đến các bộ hậu xử lý, các khẳng định và trình lắng nghe. Phạm vi cũng rất quan trọng: một phần tử được đặt ở cấp độ kế hoạch sẽ áp dụng cho mọi yêu cầu bên dưới nó.

Phương pháp này rất hữu ích để phát hiện các mẫu. Việc cung cấp tập tin kết quả cho trợ lý sẽ giúp hiển thị các nhãn chậm nhất, các cụm lỗi và xu hướng thời gian phản hồi nhanh hơn nhiều so với việc đọc từng hàng. Luôn luôn xác nhận lại kết quả so với các mẫu thô trước khi thực hiện bất kỳ hành động nào.

Vâng. Nó soạn thảo Groovy cho người cũtracViệc gán giá trị, xây dựng tải trọng và thiết lập biến bên trong phần tử JSR223. Hãy kiểm tra mọi đề xuất, vì nó thường truy cập vào API BeanShell đã lỗi thời hoặc các biến mà... JMeter Không phơi bày.

Một nhóm luồng (Thread Group) và một bộ lấy mẫu (sampler). Mọi thứ khác đều là tùy chọn. Trên thực tế, một trình lắng nghe (listener) được thêm vào để hiển thị kết quả, và các giá trị mặc định hoặc tệp dữ liệu được thêm vào khi các giá trị giống nhau bắt đầu lặp lại trong các yêu cầu.

Tóm tắt bài viết này với: