jMeter - Hướng dẫn nhanh

Trước khi đi vào chi tiết của JMeter, trước tiên chúng ta hãy hiểu một vài thuật ngữ liên quan đến việc thử nghiệm bất kỳ ứng dụng nào.

  • Performance Test- Thử nghiệm này đặt kỳ vọng hiệu suất tốt nhất có thể trong một cấu hình cơ sở hạ tầng nhất định. Nó cũng nêu bật sớm trong quá trình thử nghiệm nếu cần thực hiện bất kỳ thay đổi nào trước khi ứng dụng đi vào sản xuất.

  • Load Test - Bài kiểm tra này về cơ bản được sử dụng để kiểm tra hệ thống dưới tải cao nhất mà nó được thiết kế để hoạt động.

  • Stress Test - Thử nghiệm này là một nỗ lực để phá vỡ hệ thống bằng cách áp đảo tài nguyên của nó.

JMeter là gì?

JMeter là một phần mềm có thể thực hiện kiểm tra tải, kiểm tra chức năng (chức năng) kinh doanh theo định hướng hiệu suất, kiểm tra hồi quy, v.v., trên các giao thức hoặc công nghệ khác nhau.

Stefano Mazzocchicủa Apache Software Foundation là nhà phát triển ban đầu của JMeter. Ông viết nó chủ yếu để kiểm tra hiệu suất của Apache JServ (bây giờ được gọi là dự án Apache Tomcat). Apache sau đó đã thiết kế lại JMeter để nâng cao GUI và thêm khả năng kiểm tra chức năng.

JMeter là một ứng dụng Java dành cho máy tính để bàn có giao diện đồ họa sử dụng API đồ họa Swing. Do đó, nó có thể chạy trên bất kỳ môi trường / máy trạm nào chấp nhận máy ảo Java, ví dụ - Windows, Linux, Mac, v.v.

Các giao thức được hỗ trợ bởi JMeter là:

  • Web - Trang web HTTP, HTTPS 'web 1.0' web 2.0 (ajax, flex và flex-ws-amf)

  • Dịch vụ Web - SOAP / XML-RPC

  • Cơ sở dữ liệu thông qua trình điều khiển JDBC

  • Thư mục - LDAP

  • Dịch vụ định hướng nhắn tin qua JMS

  • Dịch vụ - POP3, IMAP, SMTP

  • Dịch vụ FTP

Các tính năng của JMeter

Sau đây là một số tính năng của JMeter:

  • Là một phần mềm mã nguồn mở, nó có sẵn miễn phí.

  • Nó có một GUI đơn giản và trực quan.

  • JMeter có thể tiến hành kiểm tra tải và hiệu suất cho nhiều loại máy chủ khác nhau - Web - HTTP, HTTPS, SOAP, Cơ sở dữ liệu thông qua JDBC, LDAP, JMS, Mail - POP3, v.v.

  • Nó là một công cụ độc lập với nền tảng. Trên Linux / Unix, JMeter có thể được gọi bằng cách nhấp vào JMeter shell script. Trên Windows, nó có thể được gọi bằng cách khởi động tệp jmeter.bat.

  • Nó có đầy đủ Swing và hỗ trợ thành phần nhẹ (JAR được biên dịch trước sử dụng gói javax.swing. *).

  • JMeter lưu trữ các kế hoạch thử nghiệm của mình ở định dạng XML. Điều này có nghĩa là bạn có thể tạo kế hoạch thử nghiệm bằng trình soạn thảo văn bản.

  • Khung đa luồng đầy đủ của nó cho phép lấy mẫu đồng thời theo nhiều luồng và lấy mẫu đồng thời các chức năng khác nhau bởi các nhóm luồng riêng biệt.

  • Nó rất có thể mở rộng.

  • Nó cũng có thể được sử dụng để thực hiện kiểm tra chức năng và tự động của các ứng dụng.

JMeter hoạt động như thế nào?

JMeter mô phỏng một nhóm người dùng gửi yêu cầu đến máy chủ mục tiêu và trả về số liệu thống kê cho thấy hiệu suất / chức năng của máy chủ / ứng dụng mục tiêu thông qua bảng, biểu đồ, v.v.

Hãy xem hình sau mô tả cách hoạt động của JMeter:

JMeter là một khuôn khổ cho Java, vì vậy yêu cầu đầu tiên là phải cài đặt JDK trong máy của bạn.

Yêu cầu hệ thống

JDK 1.6 trở lên.
Ký ức Không có yêu cầu tối thiểu.
Dung lượng đĩa Không có yêu cầu tối thiểu.
Hệ điều hành Không có yêu cầu tối thiểu.

Bước 1: Xác minh cài đặt Java

Trước hết, hãy xác minh xem bạn đã cài đặt Java trong hệ thống của mình chưa. Mở bảng điều khiển của bạn và thực hiện một trong các thao tác saujava các lệnh dựa trên hệ điều hành bạn đang làm việc.

Hệ điều hành Bài tập Chỉ huy
các cửa sổ Mở bảng điều khiển lệnh c: \> java -version
Linux Mở Command Terminal $ java -version
Mac Mở thiết bị đầu cuối máy: ~ joseph $ java -version

Nếu bạn đã cài đặt Java trong hệ thống của mình, bạn sẽ nhận được đầu ra phù hợp dựa trên hệ điều hành bạn đang làm việc.

Hệ điều hành Đầu ra
các cửa sổ

phiên bản java "1.7.0_25"

Môi trường thời gian chạy Java (TM) SE (bản dựng 1.7.0_25-b15)

Máy chủ ảo Java HotSpot (TM) 64-Bit (bản dựng 23.25-b01, chế độ hỗn hợp)

Linux

phiên bản java "1.7.0_25"

Môi trường thời gian chạy Java (TM) SE (bản dựng 1.7.0_25-b15)

Máy chủ ảo Java HotSpot (TM) 64-Bit (bản dựng 23.25-b01, chế độ hỗn hợp)

Mac

phiên bản java "1.7.0_25"

Môi trường thời gian chạy Java (TM) SE (bản dựng 1.7.0_25-b15)

Máy chủ ảo Java HotSpot (TM) 64-Bit (bản dựng 23.25-b01, chế độ hỗn hợp)

Nếu bạn chưa cài đặt Java, hãy cài đặt Bộ phát triển phần mềm Java (SDK) từ www.oracle.com/technetwork/java/javase/downloads/index.html . Chúng tôi giả sử Java 1.7.0_25 là phiên bản đã cài đặt cho hướng dẫn này.

Bước 2: Đặt Môi trường Java

Đặt JAVA_HOMEbiến môi trường để trỏ đến vị trí thư mục cơ sở, nơi Java được cài đặt trên máy của bạn. Ví dụ -

Hệ điều hành Đầu ra
các cửa sổ Đặt biến môi trường JAVA_HOME thành C: \ Program Files \ Java \ jdk1.7.0_25
Linux xuất JAVA_HOME = / usr / local / java-current
Mac export JAVA_HOME = / Library / Java / Home

Nối vị trí trình biên dịch Java vào Đường dẫn hệ thống.

Hệ điều hành Đầu ra
các cửa sổ Nối chuỗi; C: \ Program Files \ Java \ jdk1.7.0_25 \ bin vào cuối biến hệ thống, Đường dẫn.
Linux xuất PATH = $ PATH: $ JAVA_HOME / bin /
Mac không yêu cầu

Xác minh cài đặt Java bằng java -version như đã giải thích ở trên.

Bước 3: Tải xuống JMeter

Tải xuống phiên bản mới nhất của JMeter từ https://jmeter.apache.org/download_jmeter.cgi. Đối với hướng dẫn này, chúng tôi đã tải xuống apache-jmeter-2.9 và sao chép nó vào thư mục C: \> JMeter.

Cấu trúc thư mục sẽ giống như hình dưới đây:

  • apache-jmeter-2.9
  • apache-jmeter-2.9\bin
  • apache-jmeter-2.9\docs
  • apache-jmeter-2.9\extras
  • apache-jmeter-2.9\lib\
  • apache-jmeter-2.9\lib\ext
  • apache-jmeter-2.9\lib\junit
  • apache-jmeter-2.9\printable_docs

Bạn có thể đổi tên thư mục mẹ (tức là apache-jmeter-2.9) nếu muốn, nhưng không thay đổi bất kỳ tên thư mục con nào.

Bước 4: Chạy JMeter

Sau khi tải xuống JMeter, hãy chuyển đến thư mục bin . Trong trường hợp này, nó là/home/manisha/apache-jmeter-2.9/bin. Bây giờ hãy nhấp vào phần sau -

Hệ điều hành Đầu ra
các cửa sổ jmeter.bat
Linux jmeter.sh
Mac jmeter.sh

Sau một lúc tạm dừng, JMeter GUI sẽ xuất hiện, đây là một ứng dụng Swing, như được thấy trong ảnh chụp màn hình sau:

Đây là trang chính và trang mặc định của công cụ.

Kế hoạch kiểm tra là gì?

Kế hoạch thử nghiệm có thể được xem như một vùng chứa để chạy thử nghiệm. Nó xác định những gì cần kiểm tra và cách thực hiện nó. Một kế hoạch kiểm tra hoàn chỉnh bao gồm một hoặc nhiều phần tử như nhóm luồng, bộ điều khiển logic, bộ điều khiển tạo mẫu, bộ nghe, bộ định thời, xác nhận và các phần tử cấu hình. Một kế hoạch kiểm tra phải có ít nhất một nhóm luồng.

Viết kế hoạch kiểm tra

Làm theo các bước dưới đây để viết một kế hoạch kiểm tra -

Bước 1: Khởi động cửa sổ JMeter

Mở cửa sổ JMeter bằng cách nhấp vào /home/manisha/apache-jmeter-2.9/bin/jmeter.sh. Cửa sổ JMeter sẽ xuất hiện như bên dưới:

Đây là một cửa sổ JMeter đơn giản và trống không có bất kỳ phần tử bổ sung nào được thêm vào nó. Nó chứa hai nút -

  • Test Plan node - là nơi kế hoạch thử nghiệm thực được lưu giữ.

  • Workbench node- Nó chỉ đơn giản cung cấp một nơi để lưu trữ tạm thời các phần tử kiểm tra khi không sử dụng, cho mục đích sao chép / dán. Khi bạn lưu kế hoạch thử nghiệm của mình, các mục Workbench sẽ không được lưu cùng với nó.

Bước 2: Thêm / xóa phần tử

Các phần tử (sẽ được thảo luận trong chương tiếp theo Các phần tử của Kế hoạch Kiểm tra ) có thể được thêm vào kế hoạch kiểm tra bằng cách nhấp chuột phải vào nút Kế hoạch Kiểm tra và chọn một phần tử mới từ danh sách "thêm".

Ngoài ra, bạn có thể tải một phần tử từ tệp và thêm nó bằng cách chọn tùy chọn "hợp nhất" hoặc "mở".

Ví dụ: hãy để chúng tôi thêm phần tử Nhóm chủ đề vào Kế hoạch kiểm tra như được hiển thị bên dưới:

Để loại bỏ một phần tử, hãy đảm bảo rằng phần tử được chọn, nhấp chuột phải vào phần tử và chọn tùy chọn "loại bỏ".

Bước 3: Tải và lưu các phần tử

Để tải một phần tử từ tệp -

  • Nhấp chuột phải vào phần tử cây hiện có mà bạn muốn thêm phần tử đã tải vào.
  • Chọn Hợp nhất.
  • Chọn tệp mà bạn đã lưu các phần tử.
  • JMeter sẽ hợp nhất các phần tử vào cây.

Theo mặc định, JMeter không lưu phần tử, bạn cần lưu nó một cách rõ ràng.

Để lưu các phần tử cây -

  • Nhấp chuột phải vào phần tử.
  • Chọn tùy chọn Lưu lựa chọn dưới dạng ....

JMeter sẽ lưu phần tử được chọn, cộng với tất cả các phần tử con bên dưới nó. Theo mặc định, JMeter không lưu các phần tử, bạn cần phải lưu nó một cách rõ ràng như đã đề cập trước đó.

Bước 4: Định cấu hình các phần tử cây

Bất kỳ phần tử nào trong Kế hoạch kiểm tra đều có thể được cấu hình bằng cách sử dụng các điều khiển có trong khung bên tay phải của JMeter. Các điều khiển này cho phép bạn định cấu hình hành vi của phần tử thử nghiệm cụ thể đó. Ví dụ: Nhóm chủ đề có thể được định cấu hình cho một số người dùng, khoảng thời gian tăng tốc, v.v., như được hiển thị bên dưới -

Bước 5: Lưu kế hoạch kiểm tra

Bạn có thể lưu toàn bộ Kế hoạch thử nghiệm bằng cách sử dụng Save hoặc là "Save Test Plan As ..." từ menu Tệp.

Bước 6: Chạy kế hoạch kiểm tra

Bạn có thể chạy Kế hoạch thử nghiệm bằng cách nhấp vào Start(Control + r) từ Runmục menu. Khi JMeter bắt đầu chạy, nó sẽ hiển thị một hộp nhỏ màu xanh lá cây ở cuối bên phải của phần ngay dưới thanh thực đơn.

Các số bên trái của ô màu xanh lá cây là số luồng đang hoạt động / tổng số luồng. Những điều này chỉ áp dụng cho thử nghiệm chạy cục bộ; chúng không bao gồm bất kỳ luồng nào bắt đầu trên các hệ thống từ xa khi sử dụng chế độ máy khách-máy chủ.

Bước 7: Dừng kế hoạch kiểm tra

Bạn có thể dừng thử nghiệm của mình theo hai cách -

  • Sử dụng Stop(Control + '.'). Nó dừng các chủ đề ngay lập tức nếu có thể.

  • Sử dụng Shutdown(Control + ','). Nó yêu cầu các chủ đề dừng lại khi kết thúc bất kỳ công việc hiện tại nào.

Kế hoạch Kiểm tra JMeter bao gồm các yếu tố kiểm tra được thảo luận bên dưới. Kế hoạch kiểm tra bao gồm ít nhất một Nhóm chủ đề. Trong mỗi Nhóm chủ đề, chúng tôi có thể đặt một tổ hợp của một hoặc nhiều phần tử khác - Bộ lấy mẫu, Bộ điều khiển logic, Phần tử cấu hình, Trình xử lý và Bộ định thời gian. Mỗi Bộ lấy mẫu có thể được đặt trước bởi một hoặc nhiều phần tử Tiền xử lý, tiếp theo là phần tử Hậu xử lý và / hoặc phần tử Xác nhận. Hãy để chúng tôi xem chi tiết từng yếu tố này -

Nhóm chủ đề

Các yếu tố Nhóm chủ đề là điểm bắt đầu của kế hoạch thử nghiệm của bạn. Như tên cho thấy, các phần tử nhóm luồng kiểm soát số lượng luồng mà JMeter sẽ sử dụng trong quá trình thử nghiệm. Chúng tôi cũng có thể kiểm soát những điều sau thông qua Nhóm chủ đề -

  • Đặt số lượng chủ đề

  • Đặt thời gian tăng tốc

  • Đặt số lần lặp lại thử nghiệm

Bảng Điều khiển Nhóm Chủ đề trông như thế này -

Bảng Nhóm Chủ đề chứa các thành phần sau:

  • Action to be taken after a Sampler error - Trong trường hợp có bất kỳ lỗi nào xảy ra trong quá trình thực hiện kiểm tra, bạn có thể để kiểm tra -

    • Continue đến phần tử tiếp theo trong bài kiểm tra

    • Stop Thread để dừng Thread hiện tại.

    • Stop Test hoàn toàn, trong trường hợp bạn muốn kiểm tra lỗi trước khi nó tiếp tục chạy.

  • Number of Threads - Mô phỏng số lượng người dùng hoặc kết nối với ứng dụng máy chủ của bạn.

  • Ramp-Up Period Xác định khoảng thời gian JMeter sẽ chạy tất cả các luồng.

  • Loop Count - Xác định số lần thực hiện kiểm tra.

  • Scheduler checkbox - Sau khi được chọn, phần Cấu hình Bộ lập lịch xuất hiện ở cuối bảng điều khiển.

  • Scheduler Configuration - Bạn có thể cấu hình thời gian bắt đầu và kết thúc chạy thử nghiệm.

Bộ điều khiển

JMeter có hai loại Bộ điều khiển - Bộ điều khiển mẫuBộ điều khiển logic .

Người lấy mẫu

Trình lấy mẫu cho phép JMeter gửi các loại yêu cầu cụ thể đến máy chủ. Chúng mô phỏng một yêu cầu của người dùng cho một trang từ máy chủ đích. Ví dụ: bạn có thể thêm bộ lấy mẫu HTTP Request nếu bạn cần thực hiện POST, GET hoặc DELETE trên dịch vụ HTTP.

Một số trình lấy mẫu hữu ích là -

  • Yêu cầu HTTP
  • Yêu cầu FTP
  • Yêu cầu JDBC
  • Yêu cầu Java
  • Yêu cầu SOAP / XML
  • Yêu cầu RPC

Ảnh chụp màn hình sau đây cho thấy một Bảng điều khiển Trình lấy mẫu Yêu cầu HTTP -

Bộ điều khiển logic

Bộ điều khiển logic cho phép bạn kiểm soát thứ tự xử lý của các Trình lấy mẫu trong một Chủ đề. Bộ điều khiển logic có thể thay đổi thứ tự của một yêu cầu đến từ bất kỳ phần tử con nào của chúng. Một số ví dụ là - Bộ điều khiển ForEach, Bộ điều khiển While, Bộ điều khiển vòng lặp, Bộ điều khiển IF, Bộ điều khiển thời gian chạy, Bộ điều khiển xen kẽ, Bộ điều khiển thông lượng và Bộ điều khiển chạy một lần.

Ảnh chụp màn hình sau đây cho thấy một Bảng điều khiển Bộ điều khiển vòng lặp -

Danh sách sau đây bao gồm tất cả các Bộ điều khiển Logic mà JMeter cung cấp:

  • Bộ điều khiển đơn giản
  • Bộ điều khiển vòng lặp
  • Bộ điều khiển một lần
  • Bộ điều khiển xen kẽ
  • Bộ điều khiển ngẫu nhiên
  • Bộ điều khiển thứ tự ngẫu nhiên
  • Bộ điều khiển thông lượng
  • Bộ điều khiển thời gian chạy
  • Nếu Bộ điều khiển
  • Trong khi Bộ điều khiển
  • Công tắc điều khiển
  • ForEach Controller
  • Bộ điều khiển mô-đun
  • Bao gồm bộ điều khiển
  • Kiểm soát giao dịch
  • Bộ điều khiển ghi

Các đoạn thử nghiệm

Phân đoạn thử nghiệm là một loại phần tử đặc biệt được đặt ở cùng cấp với phần tử Nhóm chủ đề. Nó được phân biệt với Nhóm chủ đề ở chỗ nó không được thực thi trừ khi nó được tham chiếu bởi Bộ điều khiển mô-đun hoặc Bao gồm_Controller. Phần tử này hoàn toàn là để sử dụng lại mã trong các Kế hoạch thử nghiệm.

Người nghe

Trình nghe cho phép bạn xem kết quả của Trình lấy mẫu dưới dạng bảng, đồ thị, cây hoặc văn bản đơn giản trong một số tệp nhật ký. Chúng cung cấp quyền truy cập trực quan vào dữ liệu do JMeter thu thập về các trường hợp thử nghiệm khi một thành phần Sampler của JMeter được thực thi.

Người nghe có thể được thêm vào bất kỳ đâu trong bài kiểm tra, kể cả trực tiếp trong kế hoạch kiểm tra. Họ sẽ chỉ thu thập dữ liệu từ các phần tử bằng hoặc thấp hơn mức của họ. Danh sách sau đây bao gồm tất cả các Trình nghe mà JMeter cung cấp:

  • Cấu hình Lưu Kết quả Mẫu
  • Biểu đồ kết quả đầy đủ
  • Kết quả đồ thị
  • Spline Visualizer
  • Kết quả khẳng định
  • Xem cây kết quả
  • Báo cáo tổng hợp
  • Xem kết quả trong bảng
  • Trình ghi dữ liệu đơn giản
  • Theo dõi kết quả
  • Biểu đồ phân phối (alpha)
  • Biểu đồ tổng hợp
  • Trình hiển thị thư
  • BeanShell Listener
  • Báo cáo tổng hợp

Hẹn giờ

Theo mặc định, một chuỗi JMeter gửi yêu cầu mà không tạm dừng giữa mỗi bộ lấy mẫu. Đây có thể không phải là điều bạn muốn. Bạn có thể thêm phần tử hẹn giờ cho phép bạn xác định khoảng thời gian chờ giữa mỗi yêu cầu.

Danh sách sau đây hiển thị tất cả các bộ hẹn giờ mà JMeter cung cấp:

  • Hẹn giờ liên tục
  • Hẹn giờ ngẫu nhiên Gaussian
  • Hẹn giờ ngẫu nhiên thống nhất
  • Bộ hẹn giờ thông lượng không đổi
  • Đồng bộ hóa bộ hẹn giờ
  • Giờ JSR223
  • BeanShell Time
  • Giờ BSF
  • Giờ ngẫu nhiên Poisson

Ảnh chụp màn hình sau đây cho thấy một Bảng điều khiển Bộ hẹn giờ Không đổi -

Khẳng định

Các xác nhận cho phép bạn bao gồm một số kiểm tra xác thực về phản hồi yêu cầu của bạn được thực hiện bằng Trình lấy mẫu. Sử dụng xác nhận, bạn có thể chứng minh rằng ứng dụng của bạn đang trả lại dữ liệu chính xác. JMeter đánh dấu khi một xác nhận không thành công.

Danh sách sau đây bao gồm tất cả các xác nhận mà JMeter cung cấp:

  • Xác nhận vỏ đậu
  • Xác nhận BSF
  • So sánh khẳng định
  • Khẳng định JSR223
  • Xác nhận phản hồi
  • Khẳng định thời lượng
  • Khẳng định kích thước
  • Xác nhận XML
  • Xác nhận của BeanShell
  • Khẳng định MD5Hex
  • Xác nhận HTML
  • Khẳng định XPath
  • Xác nhận lược đồ XML

Ảnh chụp màn hình sau đây cho thấy một Bảng điều khiển xác nhận phản hồi -

Phần tử cấu hình

Phần tử cấu hình cho phép bạn tạo các giá trị mặc định và các biến để Người lấy mẫu sử dụng. Chúng được sử dụng để thêm hoặc sửa đổi các yêu cầu do Người lấy mẫu thực hiện.

Chúng được thực thi khi bắt đầu phạm vi mà chúng là một phần, trước bất kỳ Trình lấy mẫu nào nằm trong cùng phạm vi. Do đó, một Phần tử cấu hình chỉ được truy cập từ bên trong nhánh nơi nó được đặt.

Danh sách sau đây bao gồm tất cả các Phần tử cấu hình mà JMeter cung cấp:

  • Counter
  • Cấu hình tập dữ liệu CSV
  • Yêu cầu FTP Mặc định
  • Trình quản lý ủy quyền HTTP
  • Trình quản lý bộ nhớ đệm HTTP
  • Trình quản lý cookie HTTP
  • Máy chủ proxy HTTP
  • Yêu cầu HTTP mặc định
  • Trình quản lý tiêu đề HTTP
  • Yêu cầu Java mặc định
  • Cấu hình kho khóa
  • Cấu hình kết nối JDBC
  • Phần tử cấu hình đăng nhập
  • Yêu cầu LDAP mặc định
  • Yêu cầu mở rộng LDAP mặc định
  • Cấu hình bộ lấy mẫu TCP
  • Biến do người dùng xác định
  • Yếu tố cấu hình đơn giản
  • Biến ngẫu nhiên

Phần tử tiền xử lý

Phần tử tiền xử lý là thứ chạy ngay trước khi trình lấy mẫu thực thi. Chúng thường được sử dụng để sửa đổi cài đặt của Yêu cầu mẫu ngay trước khi nó chạy hoặc để cập nhật các biến không được trích xuất từ ​​văn bản phản hồi.

Danh sách sau đây bao gồm tất cả các phần tử tiền xử lý mà JMeter cung cấp:

  • Trình phân tích cú pháp liên kết HTML
  • Công cụ sửa đổi ghi lại URL HTTP
  • Công cụ sửa đổi thông số người dùng HTTP
  • Thông số người dùng
  • Bộ xử lý tiền JDBC
  • Bộ tiền xử lý JSR223
  • Tham số người dùng RegEx
  • BeanShell PreProcessor
  • Bộ tiền xử lý BSF

Phần tử xử lý hậu kỳ

Bộ xử lý hậu kỳ thực thi sau khi bộ lấy mẫu kết thúc quá trình thực thi của nó. Phần tử này thường được sử dụng nhất để xử lý dữ liệu phản hồi, ví dụ, để truy xuất một giá trị cụ thể để sử dụng sau này.

Danh sách sau đây bao gồm tất cả các Phần tử Hậu xử lý mà JMeter cung cấp:

  • Bộ trích xuất biểu thức chính quy
  • XPath Extractor
  • Trình xử lý hành động trạng thái kết quả
  • JSR223 PostProcessor
  • JDBC PostProcessor
  • BSF PostProcessor
  • CSS / JQuery Extractor
  • BeanShell PostProcessor
  • Debug PostProcessor

Thứ tự thực thi của các phần tử kiểm tra

Sau đây là thứ tự thực hiện của các phần tử kế hoạch thử nghiệm:

  • Các yếu tố cấu hình
  • Pre-Processors
  • Timers
  • Sampler
  • Bộ xử lý hậu kỳ (trừ khi SampleResult là rỗng)
  • Khẳng định (trừ khi SampleResult là rỗng)
  • Người nghe (trừ khi SampleResult là rỗng)

Hãy để chúng tôi xây dựng một kế hoạch kiểm tra đơn giản để kiểm tra một trang web. Chúng tôi viết một kế hoạch kiểm tra trong Apache JMeter để chúng tôi có thể kiểm tra hiệu suất của trang web được hiển thị bởi URL - www.tutorialspoint.com .

Khởi động JMeter

Mở cửa sổ JMeter bằng cách nhấp vào /home/manisha/apache-jmeter-2.9/bin/jmeter.sh. Cửa sổ JMeter xuất hiện như bên dưới:

Đổi tên Kế hoạch Kiểm tra

Thay đổi tên của nút kế hoạch thử nghiệm thành Thử nghiệm Mẫu trong hộp văn bản Tên . Bạn cần thay đổi tiêu điểm thành nút bàn làm việc và quay lại nút Kế hoạch kiểm tra để xem tên được phản ánh.

Thêm nhóm chủ đề

Bây giờ chúng ta thêm phần tử đầu tiên của chúng ta vào cửa sổ. Chúng tôi thêm một Nhóm chủ đề, là một trình giữ chỗ cho tất cả các phần tử khác như Bộ lấy mẫu, Bộ điều khiển và Trình nghe. Chúng tôi cần một cái để chúng tôi có thể định cấu hình số lượng người dùng để mô phỏng.

Trong JMeter, tất cả các phần tử nút được thêm vào bằng cách sử dụng menu ngữ cảnh.

  • Bấm chuột phải vào phần tử mà bạn muốn thêm nút phần tử con.

  • Chọn tùy chọn thích hợp để thêm.

  • Nhấp chuột phải vào Bài kiểm tra mẫu (Kế hoạch kiểm tra của chúng tôi) → Thêm → Chủ đề (Người dùng) → Nhóm chủ đề. Do đó, Nhóm chủ đề được thêm vào trong nút Kế hoạch kiểm tra (Kiểm tra mẫu).

  • Đặt tên Nhóm chủ đề là Người dùng . Đối với chúng tôi, phần tử này có nghĩa là người dùng truy cập Trang chủ TutorialsPoint.

Thêm trình lấy mẫu

Chúng tôi cần thêm một Trình lấy mẫu trong Nhóm Chủ đề (Người dùng) của chúng tôi. Như đã thực hiện trước đó để thêm nhóm Chủ đề, lần này chúng tôi sẽ mở menu ngữ cảnh của nút Nhóm chủ đề (Người dùng) bằng cách nhấp chuột phải và chúng tôi sẽ thêm Trình lấy mẫu yêu cầu HTTP bằng cách chọn Thêm → Trình lấy mẫu → tùy chọn yêu cầu HTTP.

Nó sẽ thêm một HTTP Request Sampler trống trong nút Nhóm Chủ đề (Người dùng). Hãy để chúng tôi định cấu hình phần tử nút này -

  • Name- Chúng tôi sẽ thay đổi tên để phản ánh hành động những gì chúng tôi muốn đạt được. Chúng tôi sẽ đặt tên nó làVisit TutorialsPoint Home Page

  • Server Name or IP- Ở đây, chúng ta phải gõ tên máy chủ web. Trong trường hợp của chúng tôi, nó làwww.tutorialspoint.com. (http: // phần không được viết, đây chỉ là tên của máy chủ hoặc IP của nó)

  • Protocol - Chúng tôi sẽ để trống phần này, có nghĩa là chúng tôi muốn HTTP làm giao thức.

  • Path- Chúng ta sẽ gõ đường dẫn là / (gạch chéo). Nó có nghĩa là chúng tôi muốn trang gốc của máy chủ.

Thêm người nghe

Bây giờ chúng ta sẽ thêm một người nghe. Hãy để chúng tôi thêm Trình xử lý cây xem kết quả dưới nút Nhóm chủ đề (Người dùng). Nó sẽ đảm bảo rằng kết quả của Trình lấy mẫu sẽ có sẵn để xem trong phần tử nút Trình xử lý này.

Để thêm người nghe -

  • Mở menu ngữ cảnh

  • Nhấp chuột phải vào Nhóm chủ đề (Người dùng)

  • Chọn Thêm → Trình nghe → Xem tùy chọn Cây kết quả

Chạy kế hoạch thử nghiệm

Bây giờ với tất cả các thiết lập, hãy để chúng tôi thực hiện kế hoạch thử nghiệm. Với cấu hình của Nhóm chủ đề (Người dùng), chúng tôi giữ tất cả các giá trị mặc định. Nó có nghĩa là JMeter sẽ thực thi trình lấy mẫu chỉ một lần. Nó tương tự như một người dùng duy nhất, chỉ một lần.

Điều này tương tự như việc người dùng truy cập một trang web thông qua trình duyệt, với trình lấy mẫu JMeter. Để thực hiện kế hoạch kiểm tra, hãy chọn Chạy từ menu và chọn tùy chọn Bắt đầu.

Apache JMeter yêu cầu chúng tôi lưu kế hoạch kiểm tra trong tệp đĩa trước khi thực sự bắt đầu kiểm tra. Điều này rất quan trọng nếu bạn muốn chạy kế hoạch thử nghiệm nhiều lần. Bạn có thể chọn chạy nó mà không cần lưu.

Xem đầu ra

Chúng tôi đã giữ cài đặt của nhóm luồng là một luồng (chỉ một người dùng) và vòng lặp trong 1 lần (chỉ chạy một lần), do đó chúng tôi sẽ nhận được kết quả của một giao dịch duy nhất trong Trình nghe cây kết quả dạng xem.

Chi tiết của kết quả trên là -

  • Màu xanh lục so với tên Truy cập Trang chủ TutorialsPoint cho biết thành công.

  • JMeter đã lưu trữ tất cả các tiêu đề và phản hồi được gửi bởi máy chủ web và sẵn sàng hiển thị cho chúng tôi kết quả theo nhiều cách.

  • Tab đầu tiên là Kết quả lấy mẫu. Nó hiển thị dữ liệu JMeter cũng như dữ liệu do máy chủ web trả về.

  • Tab thứ hai là Request, hiển thị tất cả dữ liệu được gửi đến máy chủ web như một phần của yêu cầu.

Tab cuối cùng là Dữ liệu phản hồi. Trong tab này, trình nghe hiển thị dữ liệu nhận được từ máy chủ ở định dạng văn bản.

Đây chỉ là một kế hoạch thử nghiệm đơn giản chỉ thực hiện một yêu cầu. Nhưng sức mạnh thực sự của JMeter là gửi cùng một yêu cầu, như thể nhiều người dùng đang gửi nó. Để kiểm tra các máy chủ web có nhiều người dùng, chúng tôi cần thay đổi cài đặt Nhóm Chủ đề (Người dùng).

Trong chương này, chúng ta sẽ xem cách tạo một kế hoạch kiểm tra đơn giản để kiểm tra máy chủ cơ sở dữ liệu. Đối với mục đích thử nghiệm của chúng tôi, chúng tôi sử dụng máy chủ cơ sở dữ liệu MYSQL. Bạn có thể sử dụng bất kỳ cơ sở dữ liệu nào khác để thử nghiệm. Để cài đặt và tạo bảng trong MYSQL, vui lòng tham khảo Hướng dẫn MYSQL .

Sau khi MYSQL được cài đặt, hãy làm theo các bước bên dưới để thiết lập cơ sở dữ liệu -

  • Tạo một cơ sở dữ liệu với tên "hướng dẫn".

  • Tạo một bảng hướng dẫn_tbl .

  • Chèn bản ghi vào tutorial_tbl như hình dưới đây -

mysql> use TUTORIALS;
Database changed
mysql> INSERT INTO tutorials_tbl 
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn PHP", "John Poul", NOW());
  
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn MySQL", "Abdul S", NOW());
 
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("JAVA Tutorial", "Sanjay", '2007-05-06');

Query OK, 1 row affected (0.01 sec)
mysql>
  • Sao chép trình điều khiển JDBC thích hợp sang /home/manisha/apache-jmeter-2.9/lib.

Tạo kế hoạch kiểm tra JMeter

Hãy để chúng tôi bắt đầu JMeter từ /home/manisha/apache-jmeter-2.9/bin/jmeter.sh.

Thêm người dùng

Để tạo một nhóm Chủ đề,

  • Nhấp chuột phải vào Kế hoạch kiểm tra.

  • Chọn Thêm → Chủ đề (Người dùng) → Nhóm chủ đề.

  • Do đó, nhóm luồng được thêm vào trong nút Kế hoạch kiểm tra.

  • Đổi tên Nhóm chủ đề này thành Người dùng JDBC .

Chúng tôi sẽ không thay đổi các thuộc tính mặc định của Nhóm Chủ đề.

Thêm yêu cầu JDBC

Bây giờ chúng ta đã xác định người dùng của mình, đã đến lúc xác định các tác vụ mà họ sẽ thực hiện. Trong phần này, chỉ định các yêu cầu JDBC thực hiện.

  • Nhấp chuột phải vào phần tử JDBC Users.

  • Lựa chọn Add → Config Element → JDBC Connection Configuration.

  • Thiết lập các trường sau (chúng tôi đang sử dụng cơ sở dữ liệu MySQL được gọi là hướng dẫn) -

    • Tên biến liên kết với nhóm. Điều này cần xác định cấu hình duy nhất. Nó được sử dụng bởi JDBC Sampler để xác định cấu hình sẽ được sử dụng. Chúng tôi đã đặt tên nó là thử nghiệm .

    • URL cơ sở dữ liệu - jdbc: mysql: // localhost: 3306 / hướng dẫn.

    • Lớp trình điều khiển JDBC: com.mysql.jdbc.Driver.

    • Tên người dùng: root.

    • Mật khẩu: mật khẩu cho người chủ.

Các trường khác trên màn hình được để ở dạng mặc định như hình dưới đây -

Bây giờ hãy thêm Yêu cầu JDBC tham chiếu đến nhóm cấu hình JDBC được xác định ở trên. Chọn phần tử Người dùng JDBC.

  • Nhấp vào nút chuột phải của bạn để nhận menu Thêm

  • Lựa chọn Add → Sampler → JDBC Request.

  • Chọn phần tử mới này để xem Bảng điều khiển của nó.

  • Chỉnh sửa các thuộc tính như hình dưới đây -

    • Tên biến liên kết với nhóm. Điều này cần phải xác định duy nhất cấu hình. Nó được sử dụng bởi JDBC Sampler để xác định cấu hình sẽ được sử dụng. Đặt tên cho nó là thử nghiệm .

    • Tên - Học.

    • Nhập Tên nhóm - kiểm tra (giống như trong phần tử cấu hình).

    • Loại truy vấn - Chọn câu lệnh.

    • Nhập trường Chuỗi truy vấn SQL.

Tạo trình nghe

Bây giờ thêm phần tử Listener. Phần tử này chịu trách nhiệm lưu trữ tất cả các kết quả của các yêu cầu JDBC của bạn trong một tệp và trình bày mô hình trực quan của dữ liệu.

  • Chọn phần tử Người dùng JDBC

  • Thêm trình nghe Cây kết quả dạng xem (Add → Listener → View Results Tree).

Lưu và thực hiện kế hoạch kiểm tra

Bây giờ lưu kế hoạch thử nghiệm ở trên dưới dạng db_test.jmx . Thực hiện kế hoạch thử nghiệm này bằng cách sử dụngRun → Start Lựa chọn.

Xác minh đầu ra

Trong hình ảnh cuối cùng, bạn có thể thấy rằng hai bản ghi đã được chọn.

Trong chương này, chúng ta sẽ xem cách kiểm tra một trang FTP bằng JMeter. Hãy để chúng tôi tạo một Kế hoạch kiểm tra để kiểm tra trang FTP.

Đổi tên kế hoạch kiểm tra

  • Mở cửa sổ JMeter bằng cách nhấp vào /home/manisha/apache-jmeter-2.9/bin/jmeter.sh

  • Nhấp vào nút Kế hoạch Kiểm tra.

  • Đổi tên nút Kế hoạch kiểm tra này thành TestFTPSite.

Thêm nhóm chủ đề

Thêm một Nhóm chủ đề, là trình giữ chỗ cho tất cả các phần tử khác như Bộ lấy mẫu, Bộ điều khiển và Trình nghe.

  • Nhấp chuột phải vào TestFTPSite (Kế hoạch thử nghiệm của chúng tôi)

  • Chọn Thêm → Chủ đề (Người dùng) → Nhóm chủ đề. Nhóm chủ đề sẽ được thêm vào trong nút Kế hoạch kiểm tra (TestFTPSite).

  • Sửa đổi các thuộc tính mặc định của Nhóm chủ đề để phù hợp với thử nghiệm của chúng tôi như sau:

    • Name - FTPusers

    • Number of Threads (Users) - 4

    • Ramp-Up Period - để giá trị mặc định là 0 giây.

    • Loop Count - 1

Thêm trình lấy mẫu - Yêu cầu FTP

Bây giờ chúng ta đã xác định người dùng của mình, đã đến lúc xác định các tác vụ mà họ sẽ thực hiện. Thêm các phần tử Yêu cầu FTP. Chúng tôi thêm hai phần tử yêu cầu FTP, một phần tử truy xuất tệp và phần tử kia đặt tệp trên trang ftp.

  • Chọn phần tử người dùng FTP.

  • Nhấp chuột phải vào nút chuột để nhận menu Thêm

  • Chọn Thêm → Trình lấy mẫu → Yêu cầu FTP.

  • Chọn phần tử Yêu cầu FTP trong cây.

  • Chỉnh sửa các thuộc tính sau như được hiển thị bên dưới -

Các chi tiết sau được nhập vào phần tử này:

  • Name - Yêu cầu FTP Nhận

  • Server Name or IP - 184.168.74.29

  • Remote File - /home/manisha/sample_ftp.txt

  • Local File - sample_ftp.txt

  • Chọn nhận (RETR)

  • Username - manisha

  • Password - manisha123

Bây giờ hãy thêm một yêu cầu FTP khác như trên và chỉnh sửa các thuộc tính như được hiển thị trong ảnh chụp màn hình sau:

Các chi tiết sau được nhập vào phần tử này:

  • Name - Yêu cầu FTP Đặt

  • Server Name or IP - 184.168.74.29

  • Remote File - /home/manisha/examplefile.txt

  • Local File - /home/manisha/work/examplefile.txt

  • Chọn đặt (STOR)

  • Username - manisha

  • Password - manisha123

Thêm người nghe

Yếu tố cuối cùng bạn cần thêm vào Kế hoạch kiểm tra của mình là Người nghe. Phần tử này chịu trách nhiệm lưu trữ tất cả các kết quả yêu cầu FTP của bạn trong một tệp và trình bày mô hình trực quan của dữ liệu.

  • Chọn phần tử người dùng FTP.

  • Thêm trình nghe Cây kết quả bằng cách chọn Thêm> Trình nghe> Xem cây kết quả.

Chạy kế hoạch thử nghiệm

Bây giờ lưu kế hoạch kiểm tra ở trên dưới dạng ftpsite_test.jmx . Thực hiện kế hoạch thử nghiệm này bằng cách sử dụngRun → Start Lựa chọn.

Xem đầu ra

Đầu ra sau đây có thể được nhìn thấy trong trình nghe.

Bạn có thể thấy rằng bốn yêu cầu được thực hiện cho mỗi yêu cầu FTP và quá trình kiểm tra thành công. Tệp được truy xuất cho yêu cầu GET được lưu trữ trong thư mục / bin. Trong trường hợp của chúng tôi, nó là/home/manisha/apache-jmeter-2.9/bin/. Đối với yêu cầu PUT, tệp được tải lên tại đường dẫn/home/manisha/.

Trong chương này, chúng ta sẽ học cách tạo Kế hoạch kiểm tra để kiểm tra một WebService. Đối với mục đích thử nghiệm của chúng tôi, chúng tôi đã tạo một dự án webservice đơn giản và triển khai nó trên máy chủ Tomcat cục bộ.

Tạo dự án dịch vụ trang web

Để tạo một dự án webservice, chúng tôi đã sử dụng Eclipse IDE. Đầu tiên hãy viết Giao diện điểm cuối dịch vụHelloWorld dưới gói com.tutorialspoint.ws. Nội dung của HelloWorld.java như sau:

package com.tutorialspoint.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)

public interface HelloWorld {
   @WebMethod String getHelloWorldMessage(String string);
}

Dịch vụ này có một phương pháp getHelloWorldMessage nhận tham số String.

Tiếp theo, tạo lớp triển khai HelloWorldImpl.java dưới gói com.tutorialspoint.ws.

package com.tutorialspoint.ws;

import javax.jws.WebService;

@WebService(endpointInterface="com.tutorialspoint.ws.HelloWorld")
public class HelloWorldImpl  implements HelloWorld  {
   @Override
   public String getHelloWorldMessage(String myName) {
      return("Hello "+myName+" to JAX WS world");
   }
}

Bây giờ, hãy để chúng tôi xuất bản dịch vụ web này cục bộ bằng cách tạo nhà xuất bản Điểm cuối và hiển thị dịch vụ trên máy chủ.

Phương thức xuất bản có hai tham số:

  • Chuỗi URL điểm cuối.

  • Đối tượng triển khai, trong trường hợp này là lớp triển khai HelloWorld, được hiển thị như một Dịch vụ Web tại điểm cuối được xác định bởi URL được đề cập trong tham số ở trên.

Nội dung của HelloWorldPublisher.java như sau:

package com.tutorialspoint.endpoint;

import javax.xml.ws.Endpoint;
import com.tutorialspoint.ws.HelloWorldImpl;

public class HelloWorldPublisher {
   public static void main(String[] args) {
      Endpoint.publish("http://localhost:9000/ws/hello", new HelloWorldImpl());
   }
}

Sửa đổi nội dung web.xml như hình dưới đây -

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, 
   Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>
   <listener>
      <listener-class>
         com.sun.xml.ws.transport.http.servlet.WSServletContextListener
      </listener-class>
   </listener>
	
   <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
	
   <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>
	
   <session-config>
      <session-timeout>120</session-timeout>
   </session-config>
	
</web-app>

Để triển khai ứng dụng này như một dịch vụ web, chúng tôi sẽ cần một tệp cấu hình khác sun-jaxws.xml. Nội dung của tệp này như sau:

<?xml version = "1.0" encoding = "UTF-8"?>
<endpoints
   xmlns = "http://java.sun.com/xml/ns/jax-ws/ri/runtime"
   version = "2.0">
   
   <endpoint name = "HelloWorld" 
      implementation = "com.tutorialspoint.ws.HelloWorldImpl" 
      url-pattern = "/hello"/>
</endpoints>

Bây giờ tất cả các tệp đã sẵn sàng, cấu trúc thư mục sẽ trông như thể hiện trong ảnh chụp màn hình sau:

  • Bây giờ hãy tạo một tệp WAR của ứng dụng này.

  • Chọn dự án → nhấp chuột phải → Xuất → tệp WAR.

  • Lưu cái này thành hello.war tập tin dưới webapps thư mục của máy chủ Tomcat.

  • Bây giờ khởi động máy chủ Tomcat.

  • Sau khi máy chủ được khởi động, bạn sẽ có thể truy cập dịch vụ web bằng URL - http: // localhost: 8080 / hello / hello

Tạo kế hoạch kiểm tra JMeter

Bây giờ chúng ta hãy tạo một kế hoạch thử nghiệm để kiểm tra dịch vụ web trên.

Đổi tên Kế hoạch Kiểm tra

  • Mở cửa sổ JMeter bằng cách nhấp vào /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

  • Nhấp vào nút Kế hoạch kiểm tra.

  • Đổi tên nút Kế hoạch kiểm tra này thành WebserviceTest.

Thêm nhóm chủ đề

Thêm một Nhóm chủ đề, là trình giữ chỗ cho tất cả các phần tử khác như Bộ lấy mẫu, Bộ điều khiển và Trình nghe.

  • Nhấp chuột phải vào WebserviceTest (Kế hoạch kiểm tra của chúng tôi) → Thêm → Chủ đề (Người dùng) → Nhóm chủ đề. Nhóm chủ đề sẽ được thêm vào trong nút Kế hoạch kiểm tra (WebserviceTest).

  • Tiếp theo, chúng ta hãy sửa đổi các thuộc tính mặc định của Nhóm chủ đề để phù hợp với thử nghiệm của chúng ta. Các thuộc tính sau được thay đổi -

    • Name - người dùng dịch vụ web

    • Number of Threads (Users) - 2

    • Ramp-Up Period - để giá trị mặc định là 0 giây.

    • Loop Count - 2

Thêm trình lấy mẫu - Yêu cầu SOAP / XML-RPC

Bây giờ chúng ta đã xác định người dùng, đã đến lúc xác định các tác vụ mà họ sẽ thực hiện.

Chúng tôi sẽ thêm phần tử Yêu cầu SOAP / XML-RPC -

  • Nhấp chuột phải vào nút chuột để nhận menu Thêm.

  • Chọn Thêm → Trình lấy mẫu → Yêu cầu SOAP / XML-RPC.

  • Chọn phần tử Yêu cầu SOAP / XML-RPC trong cây

  • Chỉnh sửa các thuộc tính sau như trong hình ảnh bên dưới -

  • Các chi tiết sau được nhập vào phần tử này:

    • Name − SOAP/XML-RPC Request

    • URL - http: // localhost: 8080 / hello / hello? Wsdl

    • Soap/XML-RPC Data - Nhập nội dung bên dưới

<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:web = "http://ws.tutorialspoint.com/">
   <soapenv:Header/>
	
   <soapenv:Body>
      <web:getHelloWorldMessage>
         <arg0>Manisha</arg0>
      </web:getHelloWorldMessage>
   </soapenv:Body>
   
</soapenv:Envelope>

Thêm người nghe

Yếu tố cuối cùng bạn cần thêm vào Kế hoạch kiểm tra của mình là Người nghe. Phần tử này chịu trách nhiệm lưu trữ tất cả các kết quả của các yêu cầu HTTP của bạn trong một tệp và trình bày mô hình trực quan của dữ liệu.

  • Chọn phần tử người dùng dịch vụ web.

  • Thêm trình nghe Cây kết quả bằng cách chọn Thêm → Trình nghe → Xem cây kết quả.

Chạy kế hoạch thử nghiệm

Bây giờ lưu kế hoạch thử nghiệm ở trên dưới dạng test_webservice.jmx . Thực hiện kế hoạch kiểm tra này bằng cách sử dụng tùy chọn Run → Start.

Xem đầu ra

Đầu ra sau đây có thể được nhìn thấy trong trình nghe.

Trong hình ảnh cuối cùng, bạn có thể thấy thông báo phản hồi "Xin chào Manisha đến thế giới JAX WS".

Trong chương này, chúng ta sẽ học cách viết một kế hoạch thử nghiệm đơn giản để kiểm tra Dịch vụ nhắn tin Java (JMS). JMS hỗ trợ hai kiểu nhắn tin -

  • Point-to-Point messaging- Tin nhắn hàng đợi thường được sử dụng cho các giao dịch mà người gửi mong đợi phản hồi. Hệ thống nhắn tin hoàn toàn khác với các yêu cầu HTTP thông thường. Trong HTTP, một người dùng gửi yêu cầu và nhận được phản hồi.

  • Topic messaging- Tin nhắn chủ đề thường được gọi là tin nhắn pub / sub. Nhắn tin theo chủ đề thường được sử dụng trong trường hợp một thông điệp được xuất bản bởi một nhà sản xuất và được nhiều người đăng ký sử dụng.

Hãy để chúng tôi xem một ví dụ thử nghiệm cho từng điều này. Các điều kiện tiên quyết để kiểm tra JMS là:

  • Chúng tôi sử dụng Apache ActiveMQ trong ví dụ. Có nhiều máy chủ JMS khác nhau như IBM WebSphere MQ (trước đây là MQSeries), Tibco, v.v. Tải xuống từ các tệp nhị phân từ trang web Apache ActiveMQ.

  • Giải nén kho lưu trữ, chuyển đến thư mục được giải nén và chạy lệnh sau từ bảng điều khiển lệnh để khởi động máy chủ ActiveMQ -

.\bin\activemq  start

Bạn có thể xác minh xem máy chủ ActiveMQ đã khởi động hay chưa bằng cách truy cập giao diện quản trị tại địa chỉ sau http://localhost:8161/admin/. Nếu nó yêu cầu xác thực, thì hãy nhập userid và mật khẩu làm quản trị viên . Màn hình tương tự như hình dưới đây -

  • Bây giờ sao chép activemq-all-xxxjar (XXX tùy thuộc vào phiên bản) từ thư mục đã giải nén ActiveMQ sang /home/manisha/apache-jmeter-2.9/lib.

Với thiết lập ở trên, hãy để chúng tôi xây dựng kế hoạch thử nghiệm cho -

  • Kế hoạch kiểm tra điểm-đến-điểm của JMS

  • Kế hoạch kiểm tra chủ đề JMS

Trong chương này, chúng ta sẽ thảo luận về cách tạo Kế hoạch kiểm tra bằng cách sử dụng JMeter để giám sát các máy chủ web. Việc sử dụng các bài kiểm tra màn hình như sau:

  • Màn hình rất hữu ích cho việc kiểm tra căng thẳng và quản lý hệ thống.

  • Được sử dụng với thử nghiệm căng thẳng, màn hình cung cấp thông tin bổ sung về hiệu suất máy chủ.

  • Màn hình giúp bạn dễ dàng thấy mối quan hệ giữa hiệu suất máy chủ và thời gian phản hồi ở phía máy khách.

  • Là một công cụ quản trị hệ thống, màn hình cung cấp một cách dễ dàng để giám sát nhiều máy chủ từ một bảng điều khiển.

Chúng tôi cần Tomcat 5 trở lên để theo dõi. Đối với mục đích thử nghiệm của chúng tôi, chúng tôi sẽ theo dõi máy chủ Tomcat 7.0.42. Bạn có thể kiểm tra bất kỳ vùng chứa servlet nào hỗ trợ Java Management Extension (JMX). Hãy để chúng tôi viết một trường hợp kiểm tra để giám sát máy chủ Tomcat. Đầu tiên chúng ta hãy thiết lập máy chủ tomcat của mình.

Thiết lập máy chủ Tomcat

Chúng tôi bắt đầu với việc mở trạng thái dịch vụ Tomcat. Để thực hiện việc này, hãy chỉnh sửa tệp cấu hình cho người dùng,<TOMCAT_HOME>/conf/tomcat-users.xml. Tệp này chứa phần tomcat-users (đã nhận xét) như được hiển thị -

<tomcat-users>

<!--
   <role rolename = "tomcat"/>
   <role rolename = "role1"/>
   <user username = "tomcat" password = "tomcat" roles = "tomcat"/>
   <user username = "both" password = "tomcat" roles = "tomcat,role1"/>
   <user username = "role1" password = "tomcat" roles = "role1"/>
-->

</tomcat-users>

Chúng ta cần thay đổi phần này để thêm vai trò quản trị viên, người quản lý, người quản lý-gui và chỉ định người dùng "quản trị viên". Tệp sửa đổi như sau:

<tomcat-users>

   <role rolename = "manager-gui"/>
   <role rolename = "manager-script"/>
   <role rolename = "manager-jmx"/>
   <role rolename = "manager-status"/>
   <user username = "admin" password = "admin" roles = "manager-gui,manager-script,manager-jmx,manager-status"/>

</tomcat-users>

Bây giờ khởi động máy chủ tomcat <TOMCAT_HOME> /bin/startup.sh cho Linux và <TOMCAT_HOME> /bin/startup.bat cho windows. Sau khi bắt đầu, hãy kiểm tra xem tính năng giám sát Tomcat có hoạt động hay không bằng cách nhập liên kết sau vào trình duyệt của bạn -

http://localhost:8080/manager/status?XML=true

Một cửa sổ xác thực xuất hiện trong trình duyệt. Nhập thông tin đăng nhập và mật khẩu tomcat được liên kết (trong trường hợp của chúng tôi là quản trị viên). Sau đó, trình duyệt hiển thị trạng thái thực thi của Tomcat như bên dưới:

Từ ảnh chụp màn hình ở trên, chúng ta có thể lưu ý một số điều:

  • Trong URL, lưu ý rằng XML = true (lưu ý phân biệt chữ hoa chữ thường) cho phép hiển thị rõ ràng Tomcat giám sát cần thiết cho hoạt động của JMeter.

  • Cũng lưu ý rằng có hai kết nối mặc định. Trình kết nối AJP được sử dụng nói chung được kết hợp với mô-đun phía trước của mod_jk Apache HTTPD và trình kết nối HTTP thường được sử dụng để truy cập trực tiếp vào Tomcat qua cổng 8080.

Viết kế hoạch kiểm tra JMeter

Hãy để chúng tôi giám sát máy chủ Tomcat bằng cách viết một kế hoạch thử nghiệm -

Đổi tên kế hoạch kiểm tra

  • Mở cửa sổ JMeter bằng cách nhấp vào /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

  • Nhấp vào nút Kế hoạch kiểm tra.

  • Thêm một nhóm chủ đề như được giải thích trong bước tiếp theo.

Thêm nhóm chủ đề

  • Nhấp chuột phải vào Test Plan → Add → Threads(Users) → Thread Group. Nhóm chủ đề sẽ được thêm vào trong nút Kế hoạch kiểm tra.

  • Thay đổi số vòng lặp thành vĩnh viễn (hoặc một số lớn) để tạo đủ mẫu.

Trình quản lý ủy quyền HTTP

  • Thêm Trình quản lý ủy quyền HTTP vào phần tử Nhóm luồng bằng cách chọn Thêm → Phần tử cấu hình → Trình quản lý ủy quyền HTTP. Phần tử này quản lý xác thực do trình duyệt yêu cầu để xem trạng thái máy chủ Tomcat.

  • Chọn Trình quản lý ủy quyền HTTP.

  • Chỉnh sửa các chi tiết sau -

    • Username - admin (tùy thuộc vào cấu hình trong tệp tomcat-users.xml)

    • Password - admin (tùy thuộc vào cấu hình trong tệp tomcatusers.xml)

    • Các trường khác để trống.

Thêm yêu cầu lấy mẫu-HTTP

Bây giờ chúng ta đã xác định người dùng của mình, đã đến lúc xác định các tác vụ mà họ sẽ thực hiện. Chúng tôi thêm phần tử Yêu cầu HTTP.

  • Nhấp chuột phải vào nút chuột để nhận menu Thêm.

  • Chọn Thêm → Trình lấy mẫu → Yêu cầu HTTP.

  • Sau đó, chọn phần tử Yêu cầu HTTP trong cây.

  • Chỉnh sửa các thuộc tính sau như trong hình ảnh bên dưới -

  • Các chi tiết sau được nhập vào phần tử này:

    • Name - Trạng thái máy chủ

    • Server Name or IP - localhost

    • Port - 8080

    • Path - / manager / status

    • Parameters- Thêm một tham số yêu cầu có tên là "XML" bằng chữ hoa. Cung cấp cho nó một giá trị là "true" ở dạng chữ thường.

    • Optional Tasks - Đánh dấu chọn "Use as Monitor" (Sử dụng làm màn hình) ở cuối bộ lấy mẫu.

Thêm bộ hẹn giờ cố định

Để yêu cầu trạng thái của máy chủ theo định kỳ, hãy thêm Bộ hẹn giờ cố định sẽ cho phép khoảng thời gian giữa mỗi yêu cầu. Thêm bộ đếm thời gian vào nhóm chủ đề này bằng cách chọn Thêm → Bộ hẹn giờ → Bộ hẹn giờ không đổi.

Nhập 5000 mili giây vào hộp Độ trễ của chuỗi . Nói chung, việc sử dụng các khoảng thời gian ngắn hơn 5 giây có thể gây căng thẳng cho máy chủ của bạn. Tìm hiểu khoảng thời gian có thể chấp nhận được trước khi bạn triển khai màn hình trong môi trường sản xuất của mình.

Thêm người nghe

Yếu tố cuối cùng bạn cần thêm vào Kế hoạch kiểm tra của mình là Người nghe. Chúng tôi thêm hai loại người nghe. Một lưu trữ kết quả trong một tệp và thứ hai hiển thị chế độ xem đồ họa của kết quả.

  • Chọn phần tử nhóm chủ đề.

  • Thêm trình nghe Trình ghi dữ liệu đơn giản Thêm → Trình xử lý → Trình ghi dữ liệu đơn giản.

  • Chỉ định thư mục và tên tệp của tệp đầu ra (trong trường hợp của chúng tôi, đó là /home/manisha/work/sample.csv)

  • Hãy để chúng tôi thêm một người nghe khác bằng cách chọn phần tử kế hoạch kiểm tra Thêm → Người nghe → Theo dõi kết quả.

Chạy kế hoạch thử nghiệm

Bây giờ lưu kế hoạch thử nghiệm ở trên dưới dạng monitor_test.jmx . Thực hiện kế hoạch kiểm tra này bằng cách sử dụng tùy chọn Run → Start.

Xem đầu ra

Kết quả sẽ được lưu trong tệp /home/manisha/work/sample.csv. Bạn cũng có thể xem kết quả đồ họa trong trình nghe kết quả Màn hình như trong hình bên dưới.

Lưu ý biểu đồ có chú thích ở cả hai phía của biểu đồ. Bên trái là phần trăm và bên phải là chết / khỏe mạnh. Nếu dòng bộ nhớ tăng và giảm nhanh chóng, nó có thể cho thấy bộ nhớ đang bị phá hủy. Trong những tình huống đó, bạn nên lập hồ sơ ứng dụng với Borland OptimizeIt hoặc JProbe. Những gì bạn muốn thấy là một mẫu thông thường cho tải, bộ nhớ và luồng. Bất kỳ hành vi thất thường nào thường cho thấy hiệu suất kém hoặc một số lỗi.

Người nghe cung cấp quyền truy cập vào thông tin mà JMeter thu thập về các trường hợp thử nghiệm trong khi JMeter chạy. Kết quả hoặc thông tin mà người nghe thu thập được có thể được hiển thị dưới dạng:

  • tree
  • tables
  • graphs
  • tệp nhật ký

Tất cả các trình nghe ghi cùng một dữ liệu thô vào tệp đầu ra khi một dữ liệu được chỉ định.

Cấu hình mặc định

Các mục mặc định sẽ được lưu có thể được xác định theo một trong hai cách sau:

  • bên trong jmeter.properties(hoặc user.properties). Tệp này có trong/bin thư mục của JMeter. Để thay đổi định dạng mặc định, hãy tìm dòng sau trong jmeter.properties -

jmeter.save.saveservice.output_format=
  • Bằng cách sử dụng cửa sổ bật lên Cấu hình như được hiển thị trong ảnh chụp màn hình sau:

JMeter tạo ra kết quả của quá trình chạy thử nghiệm dưới dạng JMeter Text Logs (JTL). Chúng thường được gọi là tệp JTL, vì đó là phần mở rộng mặc định - nhưng bất kỳ phần mở rộng nào cũng có thể được sử dụng.

Nếu nhiều thử nghiệm được chạy bằng cách sử dụng cùng một tên tệp đầu ra, thì JMeter sẽ tự động thêm dữ liệu mới vào cuối tệp.

Người nghe có thể ghi kết quả vào tệp nhưng không ghi vào giao diện người dùng. Nó có nghĩa là cung cấp một phương tiện ghi dữ liệu hiệu quả bằng cách loại bỏ chi phí GUI.

Khi chạy vào -

  • GUI mode - sử dụng trình ghi dữ liệu đơn giản của trình nghe

  • non-GUI mode - cờ -l có thể được sử dụng để tạo tệp dữ liệu.

Người nghe có thể sử dụng nhiều bộ nhớ nếu có rất nhiều mẫu. Để giảm thiểu dung lượng bộ nhớ cần thiết, hãy sử dụng tính năng Ghi dữ liệu đơn giản với định dạng CSV.

Định dạng nhật ký CSV

Định dạng nhật ký CSV phụ thuộc vào mục dữ liệu nào được chọn trong cấu hình. Chỉ các mục dữ liệu được chỉ định mới được ghi lại trong tệp. Thứ tự xuất hiện của các cột là cố định và như sau:

Cánh đồng Sự miêu tả Ví dụ về giá trị
timeStamp tính bằng mili giây kể từ ngày 1/1/1970 1354223881017
trôi qua tính bằng mili giây 1858
nhãn nhãn người lấy mẫu Yêu cầu HTTP
responseCode ví dụ: 200, 404 200
hồi đáp ví dụ: OK đồng ý
threadName Nhóm chủ đề 1-1
loại dữ liệu ví dụ văn bản bản văn
sự thành công đúng hay sai thật
thất bại nếu có
byte số byte trong mẫu 34908
grpThreads số lượng chủ đề hoạt động trong nhóm chủ đề này 1
allThreads tổng số chủ đề đang hoạt động trong tất cả các nhóm 1
URL http://tutorialspoint.com
Tên tệp nếu Lưu phản hồi vào tệp đã được sử dụng
độ trễ thời gian để trả lời đầu tiên 132
mã hóa utf-8
Số lượng mẫu số lượng mẫu (1, trừ khi nhiều mẫu được tổng hợp) 1
ErrorCount số lỗi (0 hoặc 1, trừ khi nhiều mẫu được tổng hợp) 0
Tên máy chủ nơi mẫu được tạo ra Máy tính xách tayManisha
IdleTime số mili giây của thời gian 'Không hoạt động' (thường là 0)
Biến nếu được chỉ định

Lưu dữ liệu phản hồi

Dữ liệu phản hồi có thể được lưu trong tệp nhật ký XML nếu được yêu cầu. Tuy nhiên nó không cho phép lưu các tập tin và hình ảnh lớn. Trong những trường hợp như vậy, hãy sử dụng Post-Processor Save_Responses_to_a_file. Thao tác này tạo một tệp mới cho mỗi mẫu và lưu tên tệp cùng với mẫu. Tên tệp sau đó có thể được đưa vào đầu ra nhật ký mẫu. Dữ liệu sẽ được truy xuất từ ​​tệp nếu cần thiết khi tệp nhật ký mẫu được tải lại.

Đang tải (đọc) dữ liệu phản hồi

Để xem tệp kết quả hiện có, bạn có thể sử dụng nút "Duyệt qua ..." tệp để chọn tệp. Nếu cần, chỉ cần tạo một kế hoạch thử nghiệm giả với Trình xử lý thích hợp trong đó.

Lưu dữ liệu GUI của người nghe

JMeter có khả năng lưu bất kỳ trình nghe nào dưới dạng tệp PNG. Làm như vậy,

  • Chọn người nghe trong bảng điều khiển bên trái bằng cách chọn Chỉnh sửa → Lưu dưới dạng hình ảnh. Hộp thoại tệp xuất hiện.

  • Nhập tên mong muốn.

  • Lưu người nghe.

Hàm JMeter và các biến người dùng

Các hàm JMeter là các giá trị đặc biệt có thể điền vào các trường của bất kỳ Trình lấy mẫu hoặc phần tử khác trong cây thử nghiệm.

  • Một lệnh gọi hàm trông như thế này -

${__functionName(var1,var2,var3)}
  • _ functionName khớp với tên của một hàm. Ví dụ${__threadNum}.

  • Nếu một tham số hàm chứa dấu phẩy, thì hãy đảm bảo rằng bạn thoát khỏi điều này bằng "\" như hình dưới đây -

${__time(EEE\, d MMM yyyy)}
  • Các biến được tham chiếu là -

${VARIABLE}

Danh sách các chức năng

Bảng sau liệt kê một nhóm các hàm được nhóm lại thành các kiểu:

Loại chức năng Tên Bình luận
Thông tin threadNum Nhận số luồng.
Thông tin samplerName Lấy tên người lấy mẫu (nhãn).
Thông tin machineIP Lấy địa chỉ IP của máy cục bộ.
Thông tin tên may moc Lấy tên máy cục bộ.
Thông tin thời gian Trả về thời gian hiện tại ở nhiều định dạng khác nhau.
Thông tin khúc gỗ Ghi nhật ký (hoặc hiển thị) một thông báo (và trả về giá trị).
Thông tin logn Ghi nhật ký (hoặc hiển thị) một thông báo (giá trị trả về trống).
Đầu vào StringFromFile Đọc một dòng từ một tệp.
Đầu vào FileToString Đọc toàn bộ tệp.
Đầu vào CSVRead Đọc từ tệp được phân tách bằng CSV.
Đầu vào XPath Sử dụng biểu thức XPath để đọc từ một tệp.
Phép tính quầy tính tiền Tạo một số tăng dần.
Phép tính intSum Thêm số int.
Phép tính longSum Thêm số dài.
Phép tính Ngẫu nhiên Tạo một số ngẫu nhiên.
Phép tính RandomString Tạo một chuỗi ngẫu nhiên.
Phép tính UUID Tạo một UUID loại 4 ngẫu nhiên.
Viết kịch bản Vỏ đậu Chạy tập lệnh BeanShell.
Viết kịch bản javaScript Xử lý JavaScript (Mozilla Rhino).
Viết kịch bản jexl, jexl2 Đánh giá biểu thức Commons Jexl.
Tính chất bất động sản Đọc tài sản.
Tính chất P Đọc thuộc tính (phương pháp viết tắt).
Tính chất setProperty Đặt thuộc tính JMeter.
Biến tách ra Chia một chuỗi thành các biến.
Biến V Đánh giá một tên biến.
Biến đánh giá Đánh giá một biểu thức biến.
Biến evalVar Đánh giá một biểu thức được lưu trữ trong một biến.
Chuỗi regexFunction Phân tích cú pháp phản hồi trước đó bằng biểu thức chính quy.
Chuỗi EscapeOroRegexpChars Trích dẫn các ký tự meta được sử dụng bởi biểu thức chính quy ORO.
Chuỗi char Tạo các giá trị ký tự Unicode từ một danh sách các số.
Chuỗi unescape Các chuỗi xử lý chứa Java thoát ra (ví dụ: \ n & \ t).
Chuỗi unescapeHtml Giải mã các chuỗi được mã hóa HTML.
Chuỗi EscapeHtml Mã hóa chuỗi bằng mã hóa HTML.
Chuỗi TestPlanName Trả về tên của kế hoạch kiểm tra hiện tại.
  • Có hai loại chức năng -

    • Giá trị tĩnh do người dùng xác định (hoặc biến)

    • Chức năng tích hợp sẵn

  • Giá trị tĩnh do người dùng xác định cho phép người dùng xác định các biến sẽ được thay thế bằng giá trị tĩnh của chúng khi cây thử nghiệm được biên dịch và gửi để chạy.

  • Các biến không thể được lồng vào nhau; I E${Var${N}} không hoạt động.

  • Hàm __V (biến) (các phiên bản sau 2.2) có thể được sử dụng để thực hiện việc này - $ {__ V (Var $ {N})}.

  • Loại thay thế này có thể thực hiện được mà không cần các chức năng, nhưng nó kém tiện lợi và kém trực quan hơn.

Nơi sử dụng các hàm và biến

Các hàm và biến có thể được viết vào bất kỳ trường nào của bất kỳ thành phần kiểm tra nào.

Các chức năng sau sẽ hoạt động tốt trong một kế hoạch thử nghiệm:

  • intSum
  • longSum
  • machineName
  • BeanShell
  • javaScript
  • jexl
  • random
  • time
  • chức năng tài sản
  • đăng nhập chức năng

Các chức năng được sử dụng trong Kế hoạch thử nghiệm có một số hạn chế. Các biến luồng của JMeter sẽ không được thiết lập đầy đủ khi các hàm được xử lý, vì vậy các tên biến được truyền dưới dạng tham số sẽ không được thiết lập và các tham chiếu biến sẽ không hoạt động. Do đó, split ()regex () và các hàm đánh giá biến sẽ không hoạt động. Hàm threadNum () sẽ không hoạt động và nó không có ý nghĩa ở cấp kế hoạch thử nghiệm.

Tham chiếu đến các biến và hàm

  • Việc tham chiếu một biến trong phần tử thử nghiệm được thực hiện bằng cách thêm dấu ngoặc nhọn tên biến với '$ {' và '}'.

  • Các hàm được tham chiếu theo cách tương tự, nhưng theo quy ước, tên của các hàm bắt đầu bằng "__" để tránh xung đột với tên giá trị của người dùng.

  • Một số hàm sử dụng các đối số để cấu hình chúng và các đối số này nằm trong dấu ngoặc đơn, được phân cách bằng dấu phẩy. Nếu hàm không có đối số thì có thể bỏ qua dấu ngoặc đơn. Ví dụ -

${__BeanShell(vars.put("name"\,"value"))}
  • Ngoài ra, bạn có thể xác định tập lệnh của mình dưới dạng một biến, ví dụ như trong Kế hoạch thử nghiệm -

SCRIPT     vars.put("name","value")
  • Tập lệnh sau đó có thể được tham chiếu như sau:

${__BeanShell(${SCRIPT})}

Hộp thoại Trình trợ giúp Chức năng

Hộp thoại Trình trợ giúp Chức năng có sẵn từ JMeter Options chuyển hướng.

  • Sử dụng Trình trợ giúp hàm, bạn có thể chọn một hàm từ kéo xuống và gán giá trị cho các đối số của nó. Cột bên trái trong bảng cung cấp mô tả ngắn gọn về đối số và cột bên phải là nơi bạn viết giá trị cho đối số đó. Các hàm khác nhau có các đối số khác nhau.

  • Khi bạn đã thực hiện xong việc này, hãy nhấp vào nút “Tạo” và chuỗi thích hợp sẽ được tạo, bạn có thể sao chép-dán vào kế hoạch thử nghiệm ở bất cứ đâu bạn cần.

Các biến được xác định trước

Một số biến được định nghĩa nội bộ bởi JMeter. Họ là -

  • COOKIE_cookiename - chứa giá trị cookie.

  • JMeterThread.last_sample_ok - cho dù mẫu cuối cùng có ổn hay không - true / false. Lưu ý - điều này được cập nhật sau khi PostProcessors và Assertions đã được chạy.

  • Các biến START.

Thuộc tính được xác định trước

Một số thuộc tính tích hợp được định nghĩa bởi JMeter. Chúng được liệt kê dưới đây. Để thuận tiện, các thuộc tính START cũng được sao chép vào các biến có cùng tên.

  • START.MS - Thời gian bắt đầu của JMeter tính bằng mili giây.

  • START.YMD - Thời gian bắt đầu của JMeter dưới dạng yyyyMMdd.

  • START.HMS - Thời gian bắt đầu của JMeter dưới dạng HHmmss.

  • TESTSTART.MS - thời gian bắt đầu kiểm tra tính bằng mili giây.

Lưu ý rằng các biến / thuộc tính START đại diện cho thời gian khởi động JMeter, không phải thời gian bắt đầu kiểm tra. Chúng chủ yếu được sử dụng trong tên tệp, v.v.

Biểu thức chính quy được sử dụng để tìm kiếm và thao tác văn bản, dựa trên các mẫu. JMeter diễn giải các dạng biểu thức chính quy hoặc mẫu đang được sử dụng trong suốt kế hoạch kiểm tra của JMeter, bằng cách đưa vào phần mềm đối sánh mẫu Apache Jakarta ORO .

Với việc sử dụng các biểu thức chính quy, chúng tôi chắc chắn có thể tiết kiệm rất nhiều thời gian và đạt được tính linh hoạt cao hơn khi chúng tôi tạo hoặc nâng cao Kế hoạch kiểm tra. Cụm từ thông dụng cung cấp một phương pháp đơn giản để lấy thông tin từ các trang khi không thể hoặc rất khó dự đoán kết quả.

Một ví dụ sử dụng tiêu chuẩn của việc sử dụng biểu thức là lấy ID phiên từ phản hồi của máy chủ. Nếu máy chủ trả về một khóa phiên duy nhất, chúng tôi có thể dễ dàng lấy nó bằng cách sử dụng các biểu thức trong tập lệnh tải của chúng tôi.

Để sử dụng cụm từ thông dụng trong kế hoạch thử nghiệm của mình, bạn cần sử dụng Trình trích xuất cụm từ thông dụng của JMeter. Bạn có thể đặt biểu thức chính quy trong bất kỳ thành phần nào trong Kế hoạch kiểm tra.

Cần nhấn mạnh sự khác biệt giữa containsmatches, như được sử dụng trên phần tử kiểm tra Xác nhận phản hồi -

  • containscó nghĩa là cụm từ thông dụng phù hợp với ít nhất một số phần của mục tiêu, vì vậy 'bảng chữ cái' "chứa" "ph.b." bởi vì biểu thức chính quy khớp với chuỗi con 'phabe'.

  • matchescó nghĩa là biểu thức chính quy khớp với toàn bộ mục tiêu. Do đó 'bảng chữ cái' được "khớp" bởi 'al. * T'.

Giả sử bạn muốn đối sánh phần sau của trang web -

name = "file" value = "readme.txt"

Và bạn muốn giải nén readme.txt. Một biểu thức chính quy phù hợp sẽ là -

name = "file" value = "(.+?)">

Các ký tự đặc biệt ở trên là -

  • () - những điều này bao gồm phần của chuỗi đối sánh được trả về

  • . - phù hợp với bất kỳ ký tự nào

  • + - một hoặc nhiều lần

  • ? - dừng khi trận đấu đầu tiên thành công

Tạo kế hoạch kiểm tra JMeter

Hãy cho chúng tôi hiểu việc sử dụng Biểu thức chính quy trong Trình trích xuất biểu thức chính quy — một Phần tử xử lý sau bằng cách viết một kế hoạch kiểm tra. Phần tử này trích xuất văn bản từ trang hiện tại bằng Biểu thức chính quy để xác định mẫu văn bản mà phần tử mong muốn tuân theo.

Đầu tiên, chúng tôi viết một trang HTML có danh sách mọi người và ID email của họ. Chúng tôi triển khai nó đến máy chủ tomcat của chúng tôi. Nội dung của html (index.html) như sau:

<html>
   <head>
   </head>
	
   <body>
      <table style = "border: 1px solid #000000;">
		
         <th style = "border: 1px solid #000000;">ID</th>
         <th style = "border: 1px solid #000000;">name</th>
         <th style = "border: 1px solid #000000;">Email</th>
			
         <tr>
            <td id = "ID" style = "border: 1px solid #000000;">3</td>
            <td id = "Name" style = "border: 1px solid #000000;">Manisha</td>
            <td id = "Email" style = "border: 1px solid #000000;">[email protected]</td>
         </tr>
			
         <tr>
            <td id = "ID" style = "border: 1px solid #000000;">4</td>
            <td id = "Name" style = "border: 1px solid #000000;">joe</td>
            <td id = "Email" style = "border: 1px solid #000000;">[email protected]</td>
         </tr>
			
      </table>
   </body>
</html>

Khi triển khai nó trên máy chủ tomcat, trang này sẽ giống như thể hiện trong ảnh chụp màn hình sau:

Trong kế hoạch thử nghiệm của chúng tôi, chúng tôi sẽ chọn người ở hàng đầu tiên của bảng người được nhìn thấy trong trang danh sách người ở trên. Để nắm bắt ID của người này, trước tiên, chúng ta hãy xác định mẫu mà chúng ta sẽ tìm thấy người đó ở hàng thứ hai.

Như có thể thấy trong ảnh chụp nhanh sau, ID của người thứ hai được bao quanh bởi <td id = "ID"> và </ td>, và đó là hàng dữ liệu thứ hai có dạng này. Chúng tôi có thể sử dụng điều này để khớp với mẫu chính xác mà chúng tôi muốn trích xuất thông tin. Khi chúng tôi muốn trích xuất hai phần thông tin từ trang này, ID người và tên người, các trường được xác định như sau:

Khởi động JMeter, thêm một nhóm Chủ đề Test Plan → Add→ Threads(Users)→ Thread Group.

Tiếp theo, thêm Yêu cầu HTTP của trình lấy mẫu, chọn gói thử nghiệm, nhấp chuột phải Add → Sampler → HTTP Request và nhập các chi tiết như hình dưới đây -

  • Name - Quản lý

  • Server Name or IP - localhost

  • Port Number - 8080

  • Protocol - Chúng tôi sẽ để trống phần này, có nghĩa là chúng tôi muốn HTTP làm giao thức.

  • Path - jmeter / index.html

Tiếp theo, thêm Trình trích xuất biểu thức chính quy. Chọn Trình lấy mẫu yêu cầu HTTP (Quản lý), nhấp chuột phảiAdd → Post Processor → Regular Expression Extractor.

Bảng sau cung cấp mô tả về các trường được sử dụng trong ảnh chụp màn hình ở trên -

Sr.No Trường & Mô tả
1

Reference Name

Tên của biến trong đó kiểm tra được trích xuất sẽ được lưu trữ (đổi tên).

2

Regular Expression

Mẫu mà văn bản được trích xuất sẽ được khớp với nhau. Các nhóm văn bản sẽ được trích xuất được bao quanh bởi các ký tự '(' và ')'. Chúng tôi sử dụng '. +?' để chỉ ra một phiên bản duy nhất của văn bản được bao quanh bởi các thẻ <td ..> .. </td>. Trong ví dụ của chúng tôi, biểu thức là - <td id = "ID"> (+?) </td> \ s * <td id = "Name"> (+?) </td> \ s *

3

Template

Mỗi nhóm văn bản được trích xuất được đặt làm thành viên của biến Person, tuân theo thứ tự của mỗi nhóm mẫu được bao bởi '(' và ')'. Mỗi nhóm được lưu trữ dưới dạng refname_g #, trong đó refname là chuỗi bạn đã nhập làm tên tham chiếu và # là số nhóm. $ 1 $ đề cập đến nhóm 1, $ 2 $ đề cập đến nhóm 2, v.v. $ 0 $ đề cập đến bất kỳ điều gì mà toàn bộ biểu thức khớp. Trong ví dụ này, ID chúng tôi trích xuất được duy trì trong Person_g1, trong khi giá trị Tên được lưu trữ trong Person_g2.

4

Match No.

Vì chúng tôi dự định chỉ trích xuất lần xuất hiện thứ hai của mẫu này, khớp với tình nguyện viên thứ hai, chúng tôi sử dụng giá trị 2. Giá trị 0 sẽ tạo kết hợp ngẫu nhiên, trong khi giá trị âm cần được sử dụng với ForEach Controller.

5

Default

Nếu mục không được tìm thấy, đây sẽ là giá trị mặc định. Đây là một trường tùy chọn. Bạn có thể để trống.

Thêm người nghe để nắm bắt kết quả của Kế hoạch kiểm tra này. Nhấp chuột phải vào Nhóm chủ đề và chọn tùy chọn Thêm → Trình nghe → Xem Cây kết quả để thêm trình nghe.

Lưu kế hoạch thử nghiệm dưới dạng reg_express_test.jmx và chạy thử nghiệm. Kết quả sẽ thành công như thể hiện trong ảnh chụp màn hình sau:

JMeter có một số hạn chế đặc biệt là khi nó được chạy trong môi trường phân tán. Việc tuân theo các nguyên tắc này sẽ hỗ trợ tạo ra một tải thực và liên tục -

  • Sử dụng nhiều phiên bản của JMeter trong trường hợp, số lượng luồng nhiều hơn.

  • Kiểm tra Quy tắc xác định phạm vi và thiết kế phù hợp.

  • Luôn sử dụng các quy ước đặt tên cho tất cả các phần tử.

  • Kiểm tra cài đặt Kết nối trình duyệt mặc định trước khi thực thi các tập lệnh.

  • Thêm Người nghe một cách thích hợp.

  • Dưới đây là một số gợi ý để giảm yêu cầu tài nguyên -

    • Sử dụng chế độ không phải GUI: jmeter -n -t test.jmx -l test.jtl.

    • Sử dụng càng ít Người nghe càng tốt; nếu sử dụng cờ -l như trên, tất cả chúng có thể bị xóa hoặc vô hiệu hóa.

    • Vô hiệu hóa trình nghe “View Result Tree” vì nó tiêu tốn nhiều bộ nhớ và có thể dẫn đến việc đóng băng bảng điều khiển hoặc JMeter hết bộ nhớ. Tuy nhiên, sẽ an toàn khi sử dụng trình nghe “Xem cây kết quả” mà chỉ chọn “Lỗi”.

    • Thay vì sử dụng nhiều bộ lấy mẫu giống nhau, hãy sử dụng cùng một bộ lấy mẫu trong một vòng lặp và sử dụng các biến (Tập dữ liệu CSV) để thay đổi mẫu. Hoặc có thể sử dụng Trình lấy mẫu nhật ký truy cập.

    • Không sử dụng chế độ chức năng.

    • Sử dụng đầu ra CSV thay vì XML.

    • Chỉ lưu dữ liệu mà bạn cần.

    • Sử dụng càng ít Xác định càng tốt.

    • Tắt tất cả các đồ thị JMeter vì chúng tiêu tốn nhiều bộ nhớ. Bạn có thể xem tất cả các biểu đồ thời gian thực bằng cách sử dụng tab JTL trong giao diện web của mình.

    • Đừng quên xóa đường dẫn cục bộ khỏi Cấu hình tập dữ liệu CSV nếu được sử dụng.

    • Làm sạch tab Tệp trước mỗi lần chạy thử nghiệm.