Jmeter函數助手大全

__BeanShell

  • 入參:BeanShell語法的程序語句或者Bean Shell腳本文件
  • 示例:
${__BeanShell(123*456,)}:返回56088;
${__BeanShell(source("function.bsh",))}:執行在function.bsh中的腳本;
 

__changeCase

  • 做用:修改字符串大小寫
  • 入參:字符串
  • 示例:
${__changeCase(test,UPPER,upper_test)}
 

__char

  • 做用:把一組數字轉化成Unicode字符
  • 入參:數字
  • 示例:
${__char(65,66)},變成AB

__counter

  • 做用:做爲一個計數器使用,支持多線程(多用戶)
  • 入參:計數變量i,是否爲線程計數器True/False
  • 示例
${__counter(FALSE,i)}; 全局計數器
${__counter(TRUE,i)}; 每一個用戶有本身的計數器

__CSVRead

  • 做用:從文件讀取指定列的值(讀取固定值/讀取動態值/使用文件別名)
  • 入參:文件路徑;讀取方式;
  • 示例
${__CSVRead(E:\user_info.csv,0)};讀取第一列的值

${__CSVRead(E:\user_info.csv,next())}; 每次讀取下一次的值,配合第一條使用,不然不知道從哪裏開始

${__CSVRead(E:\user_info.csv,*user_info)};使用別名,而後經過如下方法獲取數據
${__CSVRead(*user_info, 1)}
 

__dataTimeConvert

  • 做用:格式化日期
  • 入參:日期/時間
  • 示例:
${__dateTimeConvert(01212018,MMddyyyy,dd/MM/yyyy,)}

${__dateTimeConvert(1526574881000,,dd/MM/yyyy HH:mm,)}; 官方例子,可是本地沒試出來
 

__digest

  • 做用:加密
  • 入參:
    • 加密算法:MD2, MD5, SHA-1, SHA224, SHA256, SHA384, SHA512
    • 須要加密的值
    • 撒鹽加密
    • 是否要轉成大寫
    • 變量名稱

關於撒鹽加密(salt)java

使用salt加密,它的基本想法是這樣的:

1.用戶註冊時,在密碼上撒一些鹽。生成一種味道,記住味道。
2.用戶再次登錄時,在輸入的密碼上撒鹽,聞一聞,判斷是否和原來的味道相同,相同就讓你吃飯。
正則表達式

 
 
  • 示例:
${__digest(MD5,test,1,,)}
 

__escapeHtml

  • 做用:字符轉成Html格式的字符,這樣編碼後傳給瀏覽器,瀏覽器就能識別了
  • 入參:字符
  • 示例:
 

__escapeOroRegexChars

  • 做用:把正則表達式轉換成Java正則引擎能識別的表達式
  • 入參:正則表達式
  • 示例:
${__escapeOroRegexpChars([^"].+?,test)}
 

__escapeXml

  • 做用:字符轉成xml格式的字符
  • 入參:字符
  • 示例:
${__escapeXml("bread" & 'butter')}
 

__eval

  • 做用:返回一個表達式的值,能夠用此函數表達式來嵌套引用表達式
  • 入參:字符
  • 示例:
name=Smith 
column=age 
table=birthdays 
SQL=select ${column} from ${table} where name='${name}' 
${__eval(${SQL})}; 引用SQL變量
 

__evalVar

  • 做用:返回一個表達式的結果,存到一個變量中,供使用
  • 入參:字符
  • 示例:
QUERY = select ${column} from ${table}; column=name, table=customers
${__evalVar(QUERY)} = select name from customers

__fileToString

  • 做用:讀取文件保存至變量中
  • 入參:文件路徑;編碼格式;變量名
  • 示例:
${__FileToString(E:\user_info.csv,utf-8,user_info)}
 

__groovy

  • 做用:執行Apache Groovy腳本,並返回結果
  • 入參:表達式;變量名
  • 示例:
${__groovy(123*456,test)}
 

__intSum

  • 做用:整數求和,多個數字之間用逗號分隔
  • 入參:第一個整數;第二個及以後的整數;變量名
  • 示例:
${__intSum(1,2,3,4,5,6,7,8,test)}
 

__isPropDefined

  • 做用:判斷屬性是否存在
  • 入參:屬性名稱
  • 示例:
${__isPropDefined(START.HMS)}
 

__isVarDefined

  • 做用:判斷變量是否存在
  • 入參:變量名稱
  • 示例:
${__isVarDefined(JMeterThread.last_sample_ok)}
 

__javaScript

  • 做用:返回js腳本執行結果
  • 入參:js表達式;變量名
  • 示例:
${__javaScript(new Date(),date)}
 

__jexl2

  • 做用:返回jexl表達式執行結果,使用JEXL2
  • 入參:jexl表達式;變量名
  • 示例:
${__jexl2(vars.get("START.YMD"),test)}
 

__jexl3

  • 做用:返回jexl表達式執行結果,JEXL3
  • 入參:jexl表達式;變量名
  • 示例:
${__jexl3(vars.get("START.YMD"),test)}
 
image.png

__log

  • 做用:日誌方法,返回輸入的字符串信息
  • 入參:字符串;日誌級別;拋出的異常信息;附加信息
    • OUT:控制檯打印
    • ERR:控制檯輸出,同時打印到標準輸出
    • DEBUG:控制檯輸出,DEBUG級別以上的都打印
    • INFO:控制檯打印INFO及ERROR級別的日誌
    • WARN:控制檯打印WARN,INFO,ERROR級別的日誌
    • ERROR:控制檯打印ERROR級別的日誌
  • 示例:
${__log(testing,ERR,error throw test,error test)}
 

__logn

與__log相似,不過它只記錄一條日誌,不返回值。算法

${__logn(testing,,)}
 

__longSum

  • 做用:計算長整型的和
  • 入參:整數
  • 示例:
${__longSum(1,2,3,4,sum)}
 

__machineIP

  • 做用:引用返回本機IP
  • 入參:變量名
  • 示例:
${__machineIP(ip)}
 

__machineName

  • 做用:引用返回本機Name
  • 入參:變量名
  • 示例:
${__machineName(name)}
 

__P

  • 做用:獲取命令行中定義的屬性,非GUI方式運行測試計劃時這個函數可用來作參數化,由運行命令動態指定參數值,方便與Jenkins等集成完成性能測試工做
  • 入參:屬性名稱;默認值
  • 示例:
${__P(group1.threads,)}
 

__property

  • 做用:獲取Jmeter的屬性,%JMETER_HOME%\bin\jmeter.properties
  • 入參:屬性名稱;變量名;默認值
  • 示例:
${__property(log_level.jmeter,log_Level,)}
 

__Random

  • 做用:生成指定範圍內的隨機數
  • 入參:左右範圍;變量名
  • 示例:
${__Random(1,20,random_num)}
 

__RandomDate

  • 做用:生成指定範圍內的日期
  • 入參:日期格式;左右範圍;語言;變量名
  • 示例:
${__RandomDate(,,2050-07-08,,)}
 

__RandomFromMultipleVars

  • 做用:給定的多個值中隨機取值
  • 入參:多個值,使用|分隔;變量名
  • 示例:
${__RandomFromMultipleVars(a|b|c|d|e,select)}
 

__RandomString

  • 做用:生成指定長度的字符串
  • 入參:字符串長度;可選字符串;變量名
  • 示例:
${__RandomString(5,a3fxis,random_char)}
 

__regexFunction

  • 做用:提取正則表達式
  • 入參:
    • 用於解析服務器響應數據的正則表達式
    • 模板字符串([group_number]
    • 告訴JMeter使用第幾回匹配
      • 整數n:使用第n個匹配項;
      • RAND:隨機選擇一個匹配項;
      • ALL:使用全部匹配項,爲每一個匹配項建立一個模板字符串,並將它們鏈接在一塊兒
      • 浮點值0到1之間:根據公式(找到的總匹配數目*指定浮點值)計算使用第幾個匹配項,計算值向最近的整數取整
    • 若是在上一個參數中選擇了「ALL」,那麼這第4個參數會被插入到重複的模板值之間
    • 若是沒有找到匹配項返回的默認值
    • 重用函數解析值的引用名
    • 變量名稱
  • 示例:
${__regexFunction(road(.*)test,$1$,1,,,,)}
 

__samplerName

  • 做用:獲取當前按sampler的名稱
  • 入參:變量名
  • 示例:
${__samplerName(sample_name)}
 

__setProperty

  • 做用:動態設置jmeter屬性
  • 入參:屬性名稱;屬性值;是否返回函數結果
  • 示例:
${__setProperty(log_level.jmeter,Debug,true)}
 

__split

  • 做用:拆分字符串
  • 入參:待拆分字符串;變量名(使用變量名_x來訪問第x個拆分結果);分隔符
  • 示例:
${__split(test|is|intresting,para,|)}
 

__StringFromFile

  • 做用:從文件中讀取內容,一行一行的讀取,讀完再從頭開始
  • 入參:文件全路徑,變量名,多文件讀取起止
  • 示例:
${__StringFromFile(D:\user_info.txt,info,,)}
 

__TestPlanName

  • 做用:獲取測試計劃名稱
  • 入參:無
  • 示例:
${__TestPlanName}
 

__threadNum

  • 做用:返回當前線程號
  • 入參:無
  • 示例:
${__threadNum}
 

__time

  • 做用:返回當前時間,可指定返回格式,由SimpleDateFormat類處理函數格式
    • 年:yyyy
    • 月:MM
    • 日:dd
    • 時:hh
    • 分:mm
    • 秒:ss
  • 入參:返回格式;變量名
  • 示例:
${__time(yyyy-MM-dd hh:mm:ss,)}
 

__timeShift

  • 做用:
  • 入參:
    • 格式:建立日期的格式。若是該值未被傳遞,則以毫秒爲單位建立日期。
    • 日期:日期值
    • 移位:從日期參數的值中添加或減去多少天,幾小時或幾分鐘
      • 「PT20.345S」解析爲「20.345秒」
      • 「PT15M」解析爲「15分鐘」
      • 「PT10H」解析爲「10小時」
      • 「P2D」解析爲「2天」
      • 「P2DT3H4M」解析爲「2天,3小時和4分鐘」
      • 「P-6H3M」解析爲「-6小時+3分鐘」
      • 「-P6H3M」解析爲「-6小時-3分鐘」
      • 「-P-6H + 3M」解析爲「+6小時和-3分鐘」
    • 區域設置:設置建立日期的顯示語言
    • 變量名
  • 示例:
${__timeShift(yyyy-MM-dd HH:mm:ss,PT20.345S,,,c)}
 

__unescape

  • 做用:反轉escape字符
  • 入參:字符
  • 示例:
${__unescape(\r\n)}
 

__unescapeHtml

  • 做用:反轉URL鏈接中的Unicode編碼字符
  • 入參:字符
  • 示例:
${__unescapeHtml( )}
 

__urldecode

  • 做用:decode application/x-www-form-urlencoded字符串
  • 入參:待decode字符串
  • 示例:
${__urldecode(Word+%22school%22+is+%22%C3%A9cole%22+in+french)}
 

__urlencode

  • 做用:與urldecode
  • 入參:待encode字符串
  • 示例:
${__urlencode(Word "school" is "école" in french)}
 

__UUID

  • 做用:獲取UUID
  • 入參:無
  • 示例:
${__UUID}
 

__V

  • 做用:獲取含變量名的表達式
  • 入參:含變量名的表達式
  • 示例:
${A1} - 能夠正確訪問
${A${N}} - 沒法訪問,嵌套變量
${__V(A${N})} - 能夠訪問。A${N}變成A1,__V函數返回A1的值
 

__XPath

  • 做用:根據xpath獲取xml節點內容,沒有匹配到,則返回空字符串
  • 入參:待解析的xml文件;xpath表達式匹配xml節點
  • 示例:
${__XPath(/path/to/build.xml,//target/@name)}
 

可直接訪問變量

  • log:直接調用logger函數
  • ctx:獲取JMeterContent對象
  • vars:獲取JMeter定義的變量
  • props:獲取JMeter配置屬性
  • threadName:獲取Jmeter線程名
  • sampler:獲取Sampler實例
  • sampleResult:獲取SamplerResult實例
  • OUT:相似System.out.println, OUT.println()



原文連接:https://www.jianshu.com/p/c66b846e2ada

apache

相關文章
相關標籤/搜索