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 () và 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.