Jmeter函數助手


 

標簽(空格分隔): Jmeter


在性能呢測試過程中為了真實的模擬用戶,往往我們需要讓提交的表單內容每次都發生變化,這個過程加參數化,Jmeter配置原件與前置處理器都能幫助我們進行參數化,單都有局限性,為了幫助我們進行參數化,Jmeter提供了一組函數來幫助我們生成需要的數據,這些函數助手面板來進行編輯,當然函數助手的功能不僅僅是進行參數化,還可以幫我們進行圓形,字符編碼,格式轉化,獲取運行時參數的功能。 函數都是以${__function()}這種形式開始的,其中“__”是英文的半角下橫線,function是函數名,其中參數是不同的函數而定

函數列表

JMeter總計七大類型的函數類型如下:

信息類: 用於讀取線程、請求名等 輸入類: 用於讀取文件等 計算類: 用於計數、求和等 腳本類: 用於運行各類腳本,例如groovy、beanshell等等 屬性類: 讀取或設置jmeter配置 變量類: 用於對變量進行操作 字符串類: 用於字符串處理

信息類

主要用於獲取一些常用的基本信息或是日志輸出控制。 |編號|函數名|描述| |--| |1|__threadnum|函數線程數| |2|__samplerName|說起當前請求的名稱| |3|__machineIP|獲取本機的IP地址| |4|__machineNmae|獲取本機的名稱| |5|__time|返回指定格式的時間| |6|__log|日志輸出,並返回它的輸入字符串| |7|__logn|日志輸出,並返回空的字符串|

###輸入類 |編號|函數名|描述| |--| |1|__StringFromFile|函數線程數| |2|__FileToString|獲取當前請求的名稱| |3|__CSVRead|讀取csv格式文件數據| |4|__XPath|使用xpath讀取xml文件中的數據|

計算類

主要用於從外部文件讀取數據,進行參數化或是說關聯 |編號|函數名|描述| |--| |1|__counter|生成一個自增數| |2|__intSum|整數求和| |3|__logSum|長整數求和| |4|__Random|生成隨機數| |5|__RandomFromMultipleVars|從一組數據中提取一個數據| |6|__RandomStrgin|生成隨機字符串| |7|__UUID|生成隨機的唯一的UUID|

腳本本類

主要用於調用外部腳本或是解析執行腳本

|編號|函數名|描述| |--| |1|__groovy|執行groovy腳本| |2|__BeanShell|執行BeanShell腳本| |3|__javaScript|執行javaScript的腳本| |4|__jexl2|執行jexl2表達式| |5|__jexl3|執行jexl3表達式|

屬性類

用於讀取和設置jmeter配置 |編號|函數名|描述| |--| |1|__property|讀取屬性值| |2|__P|讀取屬性值(__property)的簡寫| |3|__setProperty|設置屬性值|

###變量類 主要用於驗證變量表達式引用是否正確 |編號|函數名|描述| |--| |1|__sqlit|拆分字符串| |2|__V|執行變量名表da's達式的返回結果| |3|__eval|執行字符串表達式,並返回結果| |4|__evalVar|執行保存在變量中的表達式,並返回結果|

字符串類

用於字符串操作

|編號|函數名|描述| |--| |1|__regexFunction|使用正則表達式| |2|__escapeOroRegexpChars|用於轉義正則表達式中的字符| |3|__char|將一串數字轉換成成unciode的字符| |4|__unescape|用於反轉義java-escape字符串| |5|__unescapeHtml|解碼html-encode字符串| |6|__escapeHtml|使用html coding編碼目標字符串| |7|__escapeXml|使用XML codingbiao'ma編碼目標字符串| |8|__urldecode|解碼urlcode| |9|__urlencode| 編碼為urlcode| |10|__TestPlanName|獲取當前測試計划|

##常用函數的介紹

__time 函數

獲取系統的當前時間 image_1cs6ok13j1ru1nsg1e2t1ormuep9.png-52.6kB

函數參數 描述
Format string for SimpleDateFormat (optional)格式 設置時間所采用的格式
Name of variable in which to store the result (optional)變量名 存儲結果的變量名稱

如果省略了格式字符串,time函數會返回當前時間的毫秒級時間戳。 time函數包含以下時間格式

  • YMD = yyyyMMdd。 image_1cs6p31gv4531l2461pe741k511j.png-16.1kB
  • HMS = HHmmss。 image_1cs6p48d31h8corv1c671gaf1mkk20.png-13.8kB
  • YMDHMS = yyyyMMdd-HHmmss。 image_1cs6p259ffc1624j1ccpq1sv016.png-18.2kB
  • 也可以加入字符修改樣式 image_1cs6p7spd19lu1lt31bim1rlkftr2d.png-17.3kB
  • 用戶可以通過修改JMeter屬性來改變默認格式,例如,time.YMD=yyMMdd。

time毫秒時間戳轉秒時間戳 image_1cs6phinrnj31cs91d6k8nabib3a.png-93kB

__Random 函數

生成隨機數

函數參數 描述
FThe minimum value allowed for a range of value 隨機數取值范圍的最小值
The maximum value allowed for a range of values 取值范圍的最大值
Name of variable in which to store the result (optional) 存儲結果的變量名稱
  • 在1000-10000之間生成隨機數

image_1cs6pv0thi0fdko692rgfqqs3n.png-91.7kB

__RandomString

隨機生成字符串

函數參數 描述
Random string length 隨機字符串的長度
Chars to use for random string generation 用來生成隨機字符串的字符
Name of variable in which to store the result (optional) 存儲結果的變量名稱

__RandomDate

隨機生成日期

函數參數 描述
Format string for DateTimeFormatter (optional) (default yyyy-MM-dd) 日期格式 默認yyyy-mm-dd
Start date (optional) (default: now) 隨機日期的開始日期,默認為現在
End date 結束日期
String format of a locale (ex: fr_FR , en_EN) (optional) 語言區域
Name of variable in which to store the result (optional) 存儲結果的變量名稱

image_1cs815tao97jpdaut453g12h4p.png-69.1kB

__threadNum

返回當前線程的編號

__log

記錄一條日志,並返回輸入的字符串

函數參數 描述
String to be logged (and returned) 日志信息
Log level (default INFO) or OUT or ERR 日志等級。OUT會在控制台輸出,ERR、INFO、DEBUG在日志文件內輸出
Throwable text (optional) 可拋棄的文本,如果非空,會創建一個可拋棄的文本傳遞給記錄器
Additional comment (optional) 注釋如果存在,注釋會在字符串中展示,用於標識日志記錄了什么

image_1cs8329lstjq12vm1jlp1ljcadk16.png-173.2kB

__jexl3

函數_jexl可以用於執行通用JEXL表達式,並返回執行結果。

函數參數 描述
JEXL expression to evaluate 待執行的表達式
Name of variable in which to store the result (optional) 存儲結果的變量名稱

image_1ct9smir2jjbvuh9r1156o3t519.png-49.6kB 如下變量可以通過腳本進行訪問。

log:函數記錄器。

ctx:JMeterContext對象。

vars:JMeterVariables對象。

props:JMeter屬性對象。

threadName:字符串包含當前線程名稱 (在2.3.2 版本中它被誤寫為"theadName")。

sampler:當前的采樣器對象(如果存在)。

sampleResult:前面的采樣結果對象(如果存在)。

OUT - System.out,例如 OUT.println("message")。 是你用vars的例子參考 Sampler 章節的jdbc-request


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM