Jmeter函式助手大全
阿新 • • 發佈:2020-07-27
__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)
使用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)}image.png
__RandomString
- 作用:生成指定長度的字串
- 入參:字串長度;可選字串;變數名
- 示例:
${__RandomString(5,a3fxis,random_char)}
__regexFunction
- 作用:提取正則表示式
- 入參:
- 用於解析伺服器響應資料的正則表示式
- 模板字串()
- 告訴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