鍍金池/ 教程/ Java/ JMeter函數(shù)
JMeter Webservice API測(cè)試計(jì)劃
JMeter測(cè)試計(jì)劃
JMS主題測(cè)試計(jì)劃
JMeter測(cè)試計(jì)劃元素
JMeter Web測(cè)試計(jì)劃
JMeter函數(shù)
JMeter計(jì)時(shí)器
JMeter監(jiān)聽(tīng)器
JMeter是什么?
JMeter分布式負(fù)載測(cè)試(吞吐量控制器)
JMeter FTP測(cè)試計(jì)劃
JMeter工作流程
JMeter數(shù)據(jù)庫(kù)測(cè)試計(jì)劃
測(cè)試基本術(shù)語(yǔ)
JMeter錄制登錄測(cè)試
JMeter控制器
JMS點(diǎn)對(duì)點(diǎn)測(cè)試計(jì)劃
JMeter安裝
JMeter預(yù)處理器元素
構(gòu)建JMeter測(cè)試計(jì)劃
JMeter配置元素
JMeter JMS測(cè)試計(jì)劃
JMeter特性
JMeter線程組
JMeter教程
JMeter后處理器元素

JMeter函數(shù)

JMeter函數(shù)可以稱為特殊值,可以填充測(cè)試樹(shù)中任何Sampler或其他元素的字段。
JMeter中函數(shù)的語(yǔ)法:

${__functionName(var1,var2,var3)} ,

這里__ functionName匹配函數(shù)的名稱,圓括號(hào)圍繞發(fā)送給函數(shù)的參數(shù)。

如果函數(shù)參數(shù)包含逗號(hào),那么請(qǐng)務(wù)必使用“\”對(duì)其進(jìn)行轉(zhuǎn)義,否則JMeter會(huì)將其視為參數(shù)分隔符。
例如:

${__time(EEE\, d MMM yyyy)}

函數(shù)列表

函數(shù)類(lèi)型 名稱 注解
信息 threadNum 獲取線程號(hào)
信息 samplerName 獲取采樣器名稱(標(biāo)簽)。
信息 log 記錄(或顯示)消息(并返回值)。
信息 machineName 獲取本地計(jì)算機(jī)名稱。
輸入 StringFromFile 從文件中讀取一行。
輸入 FileToString 讀取整個(gè)文件。
輸入 CSVRead 從CSV分隔文件中讀取。
輸入 XPath 使用XPath表達(dá)式從文件中讀取。
計(jì)算 Counter 生成遞增數(shù)字。
計(jì)算 intSum 相加int數(shù)字。
計(jì)算 longSum 相加long數(shù)字。
計(jì)算 Random 生成一個(gè)隨機(jī)數(shù)。
計(jì)算 RandomString 生成隨機(jī)字符串。
腳本 BeanShell 運(yùn)行BeanShell腳本。
腳本 javaScript 運(yùn)行javaScript腳本。
腳本 jexl, jexl2 評(píng)估Commons Jexl表達(dá)式。
屬性 Property 讀取property文件。
屬性 P 讀取一個(gè)屬性(速記方法)。
變量 Split 將字符串拆分為變量。
變量 eval 評(píng)估變量表達(dá)式。
字符串 regexFunction 使用正則表達(dá)式解析先前的響應(yīng)。
字符串 escapeOroRegexpChars 引用ORO正則表達(dá)式使用的元字符。
字符串 Char 從數(shù)字列表生成Unicode char值。
字符串 Unescape 包含Java轉(zhuǎn)義的進(jìn)程字符串(例如\n&\t)。
字符串 unescapeHtml 解碼HTML編碼的字符串。
字符串 escapeHtml 使用HTML編碼對(duì)字符串進(jìn)行編碼。
字符串 TestPlanName 返回當(dāng)前測(cè)試計(jì)劃的名稱。

注意:JMeter函數(shù)和變量始終區(qū)分大小寫(xiě)。

讓我們考慮一個(gè)Log Function的例子來(lái)理解JMeter中函數(shù)的使用。

JMeter日志函數(shù)的語(yǔ)法:

${__log("message")}

首先,我們將使用HTTP請(qǐng)求采樣器創(chuàng)建一個(gè)簡(jiǎn)單的測(cè)試計(jì)劃。

創(chuàng)建JMeter測(cè)試計(jì)劃

  • 進(jìn)入到JMeter/bin文件夾并雙擊jmeter.bat文件以啟動(dòng)JMeter界面。
  • 選擇測(cè)試計(jì)劃節(jié)點(diǎn),然后右鍵單擊所選項(xiàng)目。
  • 鼠標(biāo)懸停在“Add”選項(xiàng)上,然后將顯示元素列表。
  • 選擇“Threads (Users)” > “Thread Grou”。
  • 將此線程組重命名為Thread Group 1。

添加采樣器

我們必須在線程組中添加一個(gè)HTTP請(qǐng)求采樣器。

  • 選擇“Thread Group”,然后右鍵單擊所選項(xiàng)。
  • 鼠標(biāo)懸停在“Add”選項(xiàng)上,然后將顯示元素列表。
  • 選擇Sampler > HTTP請(qǐng)求選項(xiàng)。
  • 它將添加一個(gè)空的HTTP請(qǐng)求采樣器。

將HTTP Request Sampler的字段配置為 -

  • Name - HTTP請(qǐng)求采樣器1。
  • Server名稱或IP - 在示例中,Web服務(wù)器名稱將為 - www.yiibai.com 。
  • Protocol - 此字段保持不變。
  • Path - 我們將其寫(xiě)為“/”(斜杠)。 它表示我們想要服務(wù)器的根頁(yè)面。

現(xiàn)在,復(fù)制整個(gè)線程組1 并將其粘貼在測(cè)試計(jì)劃中三次。

  • 將其他線程組分別重命名為線程組2線程組3。
  • 將其他采樣器分別重命名為HTTP Request 2HTTP Request 3。

下圖顯示了測(cè)試計(jì)劃的目錄結(jié)構(gòu)。

添加監(jiān)聽(tīng)器

  • 選擇“Test Plan”節(jié)點(diǎn),然后右鍵單擊所選項(xiàng)目。
  • 鼠標(biāo)懸停在“Add”選項(xiàng)上,然后將顯示元素列表。
  • 選擇 Listener -> Summary Report。

保存并執(zhí)行測(cè)試計(jì)劃

  • 單擊文件 -> 將測(cè)試計(jì)劃另存為。
  • 將整個(gè)測(cè)試計(jì)劃保存為Function_test.jmx。
  • 單擊“Run” -> “Start” 以執(zhí)行測(cè)試計(jì)劃。

驗(yàn)證輸出

因此,已經(jīng)成功執(zhí)行了測(cè)試計(jì)劃。 現(xiàn)在,我們將使用log函數(shù)作為第一個(gè)HTTP Request Sampler的名稱。

您可以看到日志功能已打印“Hello World”而不是完整的采樣器名稱。 讓我們來(lái)看看一個(gè)時(shí)間函數(shù)的例子,將再次使用它作為第二個(gè)HTTP采樣器的名稱。

時(shí)間函數(shù)的語(yǔ)法:

${__time(dd MM YYYY HH mm ss)}

單擊Run > Start 以執(zhí)行測(cè)試計(jì)劃。

可以看到時(shí)間函數(shù)已打印確切的時(shí)間和日期,而不是完整的采樣器名稱。
要獲得有關(guān)JMeter函數(shù)及其用法的更多信息,請(qǐng)參閱以下鏈接提供的Apache JMeter文檔:
http://jmeter.apache.org/usermanual/functions.html