jMeter - Chức năng

Hàm JMeter và 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 loại:

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 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 kiểm tra.

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ố để định 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 được tạo, bạn có thể sao chép và 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 thiết kế để sử dụng trong tên tệp, v.v.