__BeanShell
- 入?yún)ⅲ築eanShell語法的程序語句或者Bean Shell腳本文件
- 示例:
${__BeanShell(123*456,)}:返回56088塑崖;
${__BeanShell(source("function.bsh",))}:執(zhí)行在function.bsh中的腳本蛉加;
image.png
__changeCase
- 作用:修改字符串大小寫
- 入?yún)ⅲ鹤址?/li>
- 示例:
${__changeCase(test,UPPER,upper_test)}
image.png
__char
- 作用:把一組數(shù)字轉(zhuǎn)化成Unicode字符
- 入?yún)ⅲ簲?shù)字
- 示例:
${__char(65,66)}橄霉,變成AB
image.png
__counter
- 作用:作為一個(gè)計(jì)數(shù)器使用绞灼,支持多線程(多用戶)
- 入?yún)ⅲ河?jì)數(shù)變量i,是否為線程計(jì)數(shù)器True/False
- 示例
${__counter(FALSE,i)}; 全局計(jì)數(shù)器
${__counter(TRUE,i)}; 每個(gè)用戶有自己的計(jì)數(shù)器
image.png
__CSVRead
- 作用:從文件讀取指定列的值(讀取固定值/讀取動(dòng)態(tài)值/使用文件別名)
- 入?yún)ⅲ何募窂郊袄希蛔x取方式品追;
- 示例
${__CSVRead(E:\user_info.csv,0)};讀取第一列的值
${__CSVRead(E:\user_info.csv,next())}; 每次讀取下一次的值衅胀,配合第一條使用,否則不知道從哪里開始
${__CSVRead(E:\user_info.csv,*user_info)};使用別名船老,然后通過以下方法獲取數(shù)據(jù)
${__CSVRead(*user_info, 1)}
image.png
__dataTimeConvert
- 作用:格式化日期
- 入?yún)ⅲ喝掌?時(shí)間
- 示例:
${__dateTimeConvert(01212018,MMddyyyy,dd/MM/yyyy,)}
${__dateTimeConvert(1526574881000,,dd/MM/yyyy HH:mm,)}; 官方例子咖熟,但是本地沒試出來
image.png
__digest
- 作用:加密
- 入?yún)ⅲ?
- 加密算法:MD2, MD5, SHA-1, SHA224, SHA256, SHA384, SHA512
- 需要加密的值
- 撒鹽加密
- 是否要轉(zhuǎn)成大寫
- 變量名稱
使用salt加密,它的基本想法是這樣的:
1.用戶注冊(cè)時(shí)柳畔,在密碼上撒一些鹽馍管。生成一種味道,記住味道薪韩。
2.用戶再次登陸時(shí)确沸,在輸入的密碼上撒鹽,聞一聞躬存,判斷是否和原來的味道相同张惹,相同就讓你吃飯。
image.png
image.png
image.png
- 示例:
${__digest(MD5,test,1,,)}
image.png
__escapeHtml
- 作用:字符轉(zhuǎn)成Html格式的字符岭洲,這樣編碼后傳給瀏覽器宛逗,瀏覽器就能識(shí)別了
- 入?yún)ⅲ鹤址?/li>
- 示例:
${__escapeHtml(")}
image.png
__escapeOroRegexChars
- 作用:把正則表達(dá)式轉(zhuǎn)換成Java正則引擎能識(shí)別的表達(dá)式
- 入?yún)ⅲ赫齽t表達(dá)式
- 示例:
${__escapeOroRegexpChars([^"].+?,test)}
image.png
__escapeXml
- 作用:字符轉(zhuǎn)成xml格式的字符
- 入?yún)ⅲ鹤址?/li>
- 示例:
${__escapeXml("bread" & 'butter')}
image.png
__eval
- 作用:返回一個(gè)表達(dá)式的值,可以用此函數(shù)表達(dá)式來嵌套引用表達(dá)式
- 入?yún)ⅲ鹤址?/li>
- 示例:
name=Smith
column=age
table=birthdays
SQL=select ${column} from ${table} where name='${name}'
${__eval(${SQL})}; 引用SQL變量
image.png
__evalVar
- 作用:返回一個(gè)表達(dá)式的結(jié)果盾剩,存到一個(gè)變量中雷激,供使用
- 入?yún)ⅲ鹤址?/li>
- 示例:
QUERY = select ${column} from ${table}; column=name, table=customers
${__evalVar(QUERY)} = select name from customers
__fileToString
- 作用:讀取文件保存至變量中
- 入?yún)ⅲ何募窂剑痪幋a格式告私;變量名
- 示例:
${__FileToString(E:\user_info.csv,utf-8,user_info)}
image.png
__groovy
- 作用:執(zhí)行Apache Groovy腳本屎暇,并返回結(jié)果
- 入?yún)ⅲ罕磉_(dá)式;變量名
- 示例:
${__groovy(123*456,test)}
image.png
__intSum
- 作用:整數(shù)求和驻粟,多個(gè)數(shù)字之間用逗號(hào)分隔
- 入?yún)ⅲ旱谝粋€(gè)整數(shù)根悼;第二個(gè)及之后的整數(shù);變量名
- 示例:
${__intSum(1,2,3,4,5,6,7,8,test)}
image.png
__isPropDefined
- 作用:判斷屬性是否存在
- 入?yún)ⅲ簩傩悦Q
- 示例:
${__isPropDefined(START.HMS)}
image.png
__isVarDefined
- 作用:判斷變量是否存在
- 入?yún)ⅲ鹤兞棵Q
- 示例:
${__isVarDefined(JMeterThread.last_sample_ok)}
image.png
__javaScript
- 作用:返回js腳本執(zhí)行結(jié)果
- 入?yún)ⅲ簀s表達(dá)式蜀撑;變量名
- 示例:
${__javaScript(new Date(),date)}
image.png
__jexl2
- 作用:返回jexl表達(dá)式執(zhí)行結(jié)果挤巡,使用JEXL2
- 入?yún)ⅲ簀exl表達(dá)式;變量名
- 示例:
${__jexl2(vars.get("START.YMD"),test)}
image.png
__jexl3
- 作用:返回jexl表達(dá)式執(zhí)行結(jié)果酷麦,JEXL3
- 入?yún)ⅲ簀exl表達(dá)式矿卑;變量名
- 示例:
${__jexl3(vars.get("START.YMD"),test)}
image.png
__log
- 作用:日志方法,返回輸入的字符串信息
- 入?yún)ⅲ鹤址秩模蝗罩炯?jí)別母廷;拋出的異常信息轻黑;附加信息
- OUT:控制臺(tái)打印
- ERR:控制臺(tái)輸出,同時(shí)打印到標(biāo)準(zhǔn)輸出
- DEBUG:控制臺(tái)輸出琴昆,DEBUG級(jí)別以上的都打印
- INFO:控制臺(tái)打印INFO及ERROR級(jí)別的日志
- WARN:控制臺(tái)打印WARN氓鄙,INFO,ERROR級(jí)別的日志
- ERROR:控制臺(tái)打印ERROR級(jí)別的日志
- 示例:
${__log(testing,ERR,error throw test,error test)}
image.png
__logn
與__log類似椎咧,不過它只記錄一條日志玖详,不返回值。
${__logn(testing,,)}
image.png
__longSum
- 作用:計(jì)算長整型的和
- 入?yún)ⅲ赫麛?shù)
- 示例:
${__longSum(1,2,3,4,sum)}
image.png
__machineIP
- 作用:引用返回本機(jī)IP
- 入?yún)ⅲ鹤兞棵?/li>
- 示例:
${__machineIP(ip)}
image.png
__machineName
- 作用:引用返回本機(jī)Name
- 入?yún)ⅲ鹤兞棵?/li>
- 示例:
${__machineName(name)}
image.png
__P
- 作用:獲取命令行中定義的屬性勤讽,非GUI方式運(yùn)行測試計(jì)劃時(shí)這個(gè)函數(shù)可用來做參數(shù)化蟋座,由運(yùn)行命令動(dòng)態(tài)指定參數(shù)值,方便與Jenkins等集成完成性能測試工作
- 入?yún)ⅲ簩傩悦Q脚牍;默認(rèn)值
- 示例:
${__P(group1.threads,)}
image.png
__property
- 作用:獲取Jmeter的屬性向臀,%JMETER_HOME%\bin\jmeter.properties
- 入?yún)ⅲ簩傩悦Q;變量名诸狭;默認(rèn)值
- 示例:
${__property(log_level.jmeter,log_Level,)}
image.png
__Random
- 作用:生成指定范圍內(nèi)的隨機(jī)數(shù)
- 入?yún)ⅲ鹤笥曳秶颍蛔兞棵?/li>
- 示例:
${__Random(1,20,random_num)}
image.png
__RandomDate
- 作用:生成指定范圍內(nèi)的日期
- 入?yún)ⅲ喝掌诟袷剑蛔笥曳秶庇觯徽Z言芹彬;變量名
- 示例:
${__RandomDate(,,2050-07-08,,)}
image.png
__RandomFromMultipleVars
- 作用:給定的多個(gè)值中隨機(jī)取值
- 入?yún)ⅲ憾鄠€(gè)值,使用|分隔叉庐;變量名
- 示例:
${__RandomFromMultipleVars(a|b|c|d|e,select)}
image.png
__RandomString
- 作用:生成指定長度的字符串
- 入?yún)ⅲ鹤址L度舒帮;可選字符串;變量名
- 示例:
${__RandomString(5,a3fxis,random_char)}
image.png
__regexFunction
- 作用:提取正則表達(dá)式
- 入?yún)ⅲ?
- 用于解析服務(wù)器響應(yīng)數(shù)據(jù)的正則表達(dá)式
- 模板字符串(
)
- 告訴JMeter使用第幾次匹配
- 整數(shù)n:使用第n個(gè)匹配項(xiàng)陡叠;
- RAND:隨機(jī)選擇一個(gè)匹配項(xiàng)玩郊;
- ALL:使用所有匹配項(xiàng),為每個(gè)匹配項(xiàng)創(chuàng)建一個(gè)模板字符串枉阵,并將它們連接在一起
- 浮點(diǎn)值0到1之間:根據(jù)公式(找到的總匹配數(shù)目*指定浮點(diǎn)值)計(jì)算使用第幾個(gè)匹配項(xiàng)译红,計(jì)算值向最近的整數(shù)取整
- 如果在上一個(gè)參數(shù)中選擇了“ALL”,那么這第4個(gè)參數(shù)會(huì)被插入到重復(fù)的模板值之間
- 如果沒有找到匹配項(xiàng)返回的默認(rèn)值
- 重用函數(shù)解析值的引用名
- 變量名稱
- 示例:
${__regexFunction(road(.*)test,$1$,1,,,,)}
image.png
__samplerName
- 作用:獲取當(dāng)前按sampler的名稱
- 入?yún)ⅲ鹤兞棵?/li>
- 示例:
${__samplerName(sample_name)}
image.png
__setProperty
- 作用:動(dòng)態(tài)設(shè)置jmeter屬性
- 入?yún)ⅲ簩傩悦Q兴溜;屬性值侦厚;是否返回函數(shù)結(jié)果
- 示例:
${__setProperty(log_level.jmeter,Debug,true)}
image.png
__split
- 作用:拆分字符串
- 入?yún)ⅲ捍鸱肿址蛔兞棵ㄊ褂米兞棵鸰x來訪問第x個(gè)拆分結(jié)果)拙徽;分隔符
- 示例:
${__split(test|is|intresting,para,|)}
image.png
__StringFromFile
- 作用:從文件中讀取內(nèi)容刨沦,一行一行的讀取,讀完再從頭開始
- 入?yún)ⅲ何募窂秸剩兞棵丫恚辔募x取起止
- 示例:
${__StringFromFile(D:\user_info.txt,info,,)}
image.png
__TestPlanName
- 作用:獲取測試計(jì)劃名稱
- 入?yún)ⅲ簾o
- 示例:
${__TestPlanName}
image.png
__threadNum
- 作用:返回當(dāng)前線程號(hào)
- 入?yún)ⅲ簾o
- 示例:
${__threadNum}
image.png
__time
- 作用:返回當(dāng)前時(shí)間梧田,可指定返回格式淳蔼,由SimpleDateFormat類處理函數(shù)格式
- 年:yyyy
- 月:MM
- 日:dd
- 時(shí):hh
- 分:mm
- 秒:ss
- 入?yún)ⅲ悍祷馗袷讲嗾海蛔兞棵?/li>
- 示例:
${__time(yyyy-MM-dd hh:mm:ss,)}
image.png
__timeShift
- 作用:
- 入?yún)ⅲ?
- 格式:創(chuàng)建日期的格式。如果該值未被傳遞鹉梨,則以毫秒為單位創(chuàng)建日期讳癌。
- 日期:日期值
- 移位:從日期參數(shù)的值中添加或減去多少天,幾小時(shí)或幾分鐘
- “PT20.345S”解析為“20.345秒”
- “PT15M”解析為“15分鐘”
- “PT10H”解析為“10小時(shí)”
- “P2D”解析為“2天”
- “P2DT3H4M”解析為“2天存皂,3小時(shí)和4分鐘”
- “P-6H3M”解析為“-6小時(shí)+3分鐘”
- “-P6H3M”解析為“-6小時(shí)-3分鐘”
- “-P-6H + 3M”解析為“+6小時(shí)和-3分鐘”
- 區(qū)域設(shè)置:設(shè)置創(chuàng)建日期的顯示語言
- 變量名
- 示例:
${__timeShift(yyyy-MM-dd HH:mm:ss,PT20.345S,,,c)}
image.png
__unescape
- 作用:反轉(zhuǎn)escape字符
- 入?yún)ⅲ鹤址?/li>
- 示例:
${__unescape(\r\n)}
image.png
__unescapeHtml
- 作用:反轉(zhuǎn)URL連接中的Unicode編碼字符
- 入?yún)ⅲ鹤址?/li>
- 示例:
${__unescapeHtml( )}
image.png
__urldecode
- 作用:decode application/x-www-form-urlencoded字符串
- 入?yún)ⅲ捍齞ecode字符串
- 示例:
${__urldecode(Word+%22school%22+is+%22%C3%A9cole%22+in+french)}
image.png
__urlencode
- 作用:與urldecode
- 入?yún)ⅲ捍齟ncode字符串
- 示例:
${__urlencode(Word "school" is "école" in french)}
image.png
__UUID
- 作用:獲取UUID
- 入?yún)ⅲ簾o
- 示例:
${__UUID}
image.png
__V
- 作用:獲取含變量名的表達(dá)式
- 入?yún)ⅲ汉兞棵谋磉_(dá)式
- 示例:
${A1} - 可以正確訪問
${A${N}} - 無法訪問晌坤,嵌套變量
${__V(A${N})} - 可以訪問。A${N}變成A1旦袋,__V函數(shù)返回A1的值
image.png
__XPath
- 作用:根據(jù)xpath獲取xml節(jié)點(diǎn)內(nèi)容骤菠,沒有匹配到戈咳,則返回空字符串
- 入?yún)ⅲ捍馕龅膞ml文件积仗;xpath表達(dá)式匹配xml節(jié)點(diǎn)
- 示例:
${__XPath(/path/to/build.xml,//target/@name)}
image.png
可直接訪問變量
- log:直接調(diào)用logger函數(shù)
- ctx:獲取JMeterContent對(duì)象
- vars:獲取JMeter定義的變量
- props:獲取JMeter配置屬性
- threadName:獲取Jmeter線程名
- sampler:獲取Sampler實(shí)例
- sampleResult:獲取SamplerResult實(shí)例
- OUT:類似System.out.println, OUT.println()