性能測試過程中為了真實(shí)模擬用戶請求,我們需要讓提交的表單內(nèi)容每次都發(fā)生變化,這個過程叫做參數(shù)化巩踏。
jmeter配置元件和前置處理器都能幫我們參數(shù)化,但是有局限性续搀。
函數(shù)助手不僅是做參數(shù)化塞琼,還可以幫助我們進(jìn)行運(yùn)算、字符編碼格式轉(zhuǎn)化禁舷、獲取運(yùn)行時(shí)參數(shù)等功能彪杉。
函數(shù)調(diào)用都是以${__function()}這種形式開始的,__:兩個英文半角下劃線牵咙;function:函數(shù)名
1派近、__BeanShell腳本語言
支持BeanShell腳本語言。
例如:在Java請求中設(shè)置Label為${__BeanShell("shanghai"+"road")},Sampler中以這樣的方式去調(diào)用此函數(shù)洁桌,把這兩個字符串連接在一起了构哺。
2、__char
把一組數(shù)字轉(zhuǎn)化成Unicode字符战坤。例如輸入65曙强、66兩個數(shù)字,轉(zhuǎn)成Unicode碼就是A途茫、B字母
3碟嘴、__counter
作為一個計(jì)數(shù)器使用,支持多線程囊卜。
4娜扇、__CSVRead
從文件中讀取指定列的值错沃,功能:a、讀取固定值:從testvalue.txt讀取第0列;b雀瓢、讀取動態(tài)值:${__CSVRead(D:\testvalue.text,next())}? c枢析、可以使用文件別名:使用testfile作為D:\testvalue.txt文件的別名,在Java請求中可以使用${__CSVRead(*testfile,1)}來讀取文件中的值
5刃麸、__escapeHtml
把字符轉(zhuǎn)換成HTML格式的字符醒叁。比如引號轉(zhuǎn)成HTML就是 &quto 空格就是 
6、__escapeOroRegexChars
把正則表達(dá)式轉(zhuǎn)換成Java正則能夠識別的表達(dá)式
7泊业、__eval
返回一個表達(dá)式的值把沼,可以用此函數(shù)表達(dá)式來嵌套引用表達(dá)式
8、__evalVar
用來返回表達(dá)式的結(jié)果吁伺,并把結(jié)果存入一個變量饮睬,供Sampler引用
9、__FileToString
用來讀取文件篮奄,可以一次性讀取文件內(nèi)容捆愁,然后保存到變量;此變量之后可以由其他Sampler引用
10窟却、__intSum
對整數(shù)求和昼丑,支持多個整數(shù)累加,多個數(shù)之間用逗號分隔
11间校、__longSum
把整數(shù)變成了長整型
12矾克、__javaScript
返回JavaScript腳本的執(zhí)行結(jié)果,也可以調(diào)用JavaScript中的庫函數(shù)
13憔足、__jexl
提供對Jakarta Commons Jexl表達(dá)式的支持
${__jexl2(vars.get("START.YMD"),test)}
14胁附、__log
日志方法,返回輸入的字符串信息滓彰。
也可以寫日志
15控妻、__logn
與_log相似,不過只記錄一條日志揭绑,不返回值而已
16弓候、__machineIP
該函數(shù)引用返回本機(jī)IP
17、__machineName
返回本機(jī)的機(jī)器名他匪。
18菇存、__P
獲取屬性的函數(shù)“蠲郏可以獲取命令行中定義的屬性依鸥,默認(rèn)值為1。
19悼沈、__property
用來獲取jmeter的屬性贱迟。
例:在jmeter.properites中設(shè)置的日志級別是INFO姐扮,所以${__property(log_level,jmeter,logLevel)}獲取的也是INFO
20、__Random
隨機(jī)數(shù)函數(shù)衣吠,可以生成一個一定范圍內(nèi)的隨機(jī)數(shù)并保存到指定變量茶敏,此變量可以被其他的Sampler引用。
21缚俏、__RandomString
隨機(jī)字符串函數(shù)惊搏,支持中文∨塾埽可以生成指定長度的隨機(jī)字符串并保存到指定變量胀屿。
22塘揣、__regexFunction
正則表達(dá)式提取函數(shù)包雀,此函數(shù)用來正則匹配上一個Sampler的返回值。
例:用road(.*) china來匹配111
函數(shù)選用:${__regexFunction(road(.*) china,$1$,1,,,,)}? ? 結(jié)果:Label是111
23亲铡、__samplerName
獲取當(dāng)前sampler的名稱
24才写、__setProperty
動態(tài)設(shè)置jmeter屬性
25、__split
拆分字符串奖蔓。
26赞草、__StringFromFile
該函數(shù)從文件中讀取內(nèi)容,一行一行的讀取吆鹤,類似與CSV Data Set Config元件厨疙;當(dāng)讀完后悔重頭開始。每調(diào)用此函數(shù)一次將打開一次文件疑务。
27沾凄、__TestPlanName
返回測試計(jì)劃的名稱,即當(dāng)前腳本的文件名
28知允、__threadNum
返回當(dāng)前線程號
29撒蟀、__time
返回當(dāng)前時(shí)間,可以指定返回格式温鸽。
yyyy-MM-dd HH:mm:ss
30保屯、__unescape
反轉(zhuǎn)escape字符,如:\r\n轉(zhuǎn)成CRLF
31涤垫、__unescapeHtml
反轉(zhuǎn)URL鏈接中的Unicode編碼字符姑尺,如: 轉(zhuǎn)成空格
32、__urldecode
反轉(zhuǎn)URL鏈接中的Unicode字符
例:Word +%22school%22-->Word "school"
33蝠猬、__urlencode
把URL鏈接中的escap字符轉(zhuǎn)化成Unicode編碼
例:Word "school"-->Word+%22school%22
34切蟋、__UUID
生成的字符串是唯一存在的
35、__V
該函數(shù)用來執(zhí)行變量表達(dá)式并返回結(jié)果吱雏。
36敦姻、__XPath
該函數(shù)可以從XML格式的文件中匹配內(nèi)容瘾境,每次調(diào)用返回一個匹配值,到達(dá)尾部從頭開始镰惦。匹配不到返回空迷守。_XPath使用XPath表達(dá)式來匹配XML文件中的內(nèi)容。
例:/company/name/address/text()
text()用來取address節(jié)點(diǎn)對應(yīng)的文本內(nèi)容旺入,于是:${__XPath(D:\leg.xml,/company/name/address/text())}可以取得beijing這串字符