🔥Jmeter(二十五) - 從入門到精通 - JMeter 函式 - 下篇(詳解教程)
1.簡介
在效能測試中為了真實模擬使用者請求,往往我們需要讓提交的表單內容每次都發生變化,這個過程叫做引數化。JMeter 配置元件與前置處理器都能幫助我們進行引數化,但是都有侷限性,為了幫助我們能夠更好地進行引數化,JMeter 提供了一組函式來幫助我們引數化生成需要的資料,這些函式可以函式助手皮膚來進行編輯。當然函式助手的功能不僅僅是做引數化,還能幫助我們運算、字元編碼格式轉換、獲取執行時引數等功能。下面宏哥介紹和分享一下函式助手中的函式。
JMeter 提供了很多函式,如果能夠熟練使用,可以為指令碼帶來很多方便。可以很方便的實現一些小功能,幾乎可以用於測試計劃中的任何元件。
JMeter 函式是一種特殊值,可用於除測試計劃外的任何元件。
函式呼叫的格式如下所示:
${__functionName(var1,var2,var3)}
其中,“” 是兩個英文半形的下劃線,functionName 為函式名,括號內是函式的引數,無引數時可以不用括號,如 ${UUID},其中引數視不同函式而定。
Tips:
如果引數包含逗號,那麼一定要使用 “\” 來轉義,否則 JMeter 會把它當作一個引數分隔符
實際使用時,可透過函式助手對話方塊選擇函式,設定引數後,點選生成按鈕生成函式字串。 前兩篇主要介紹常用函式的主要函式,這一篇宏哥簡單的說一說其他有用的函式。
2.JMeter 中的常用函式中的其他函式
2.1__machineName
machineName 函式machineName 返回本機的主機名;
1、我們先來看看這個__machineName長得是啥樣子,路徑: 函式助手 > 選擇__machineName ,如下圖所示:
2、關鍵引數說明
Name of variable in which to store the result(optional) 為函式名稱名稱: 這裡我們設定為任意有意義的,即用於儲存在測試計劃中其他的方式使用的值
3、例項
${__machineName()}
宏哥計算機名字:
2.2__machineIP
__machineIP 返回電腦 IP。
1、我們先來看看這個__machineIP長得是啥樣子,路徑: 函式助手 > 選擇__machineIP ,如下圖所示:
2、關鍵引數說明
Name of variable in which to store the result(optional) 為函式名稱名稱: 這裡我們設定為任意有意義的,即用於儲存在測試計劃中其他的方式使用的值
3、例項
宏哥電腦的 IP:
2.3_base64Decode 和_base64Encode
base64Decode 用於解密,base64Encode 用於加密
1、我們先來看看這個__base64Decode \ __base64Encode長得是啥樣子,路徑: 函式助手 > 選擇__base64Decode \ __base64Encode ,如下圖所示:
__base64Decode
__base64Encode
2、關鍵引數說明
第一個引數:被加密/解密的字串
第二個引數:用於儲存的變數名,不必填
2.4__V
函式__V 可以用於執行變數名錶達式,並返回執行結果。它可以被用於執行巢狀函式引用(目前 JMeter 不支援)。
1、我們先來看看這個__V長得是啥樣子,路徑: 函式助手 > 選擇__V ,如下圖所示:
2、關鍵引數說明
Name of variable (may include variable and function references): 變數名錶達式
3、例如,如果存在變數 A1、A2 和 N=1,則:
${A1}:能正常工作。
${A${N}}:無法正常工作(巢狀變數引用)。
${__V(A${N})}:可以正常工作。A${N}變為 A1,函式 __V 返回變數值 A1。
2.5__evalVar
函式__evalVar 可以用來執行儲存在變數中的表示式,並返回執行結果。
如此一來,使用者可以從檔案中讀取一行字串,並處理字串中引用的變數。
1、我們先來看看這個__evalVar長得是啥樣子,路徑: 函式助手 > 選擇__evalVar ,如下圖所示:
3、例如,假設變數"query"中包含有"select ${column} from ${table}",而 "column"和"table"中分別包含有"name"和"customers",那麼 ${__evalVar(query)}將會執行"select name from customers"。
2.6__eval
函式__eval 可以用來執行一個字串表示式,並返回執行結果。
如此一來,使用者就可以對字串(儲存在變數中)中的變數和函式引用做出修改。
1、我們先來看看這個__eval長得是啥樣子,路徑: 函式助手 > 選擇__eval ,如下圖所示:
2、關鍵引數說明
Text containing variable and function references: 包含變數和函式引用文字
3、例如,給定變數 name=Smith、column=age、table=birthdays、SQL=select ${column} from ${table} where name='${name}',那麼透過 ${__eval(${SQL})},就能執行"select age from birthdays where name='Smith'"。這樣一來,就可以與 CSV 資料集相互配合,例如,將 SQL 語句和值都定義在資料檔案中。
2.7__escapeHtml
函式__escapeHtml 用於跳脫字元串中的字元(使用 HTML 實體)。支援 HTML 4.0 實體。幫我們把字元轉換成 HTML 格式的字元,比如引號轉換成 HTML 就是",比如空格就是 ,這樣編碼傳給瀏覽器,瀏覽器就能識別引號和空格了。
1、我們先來看看這個__escapeHtml長得是啥樣子,路徑: 函式助手 > 選擇__escapeHtml ,如下圖所示:
2、關鍵引數說明
String to escape :待轉義的字串;
3、例項
(1)使用函式助手,生成我們要呼叫函式的表示式,要轉換 “ ** 中國 ”,** 如下圖所示:
(2)建立測試計劃開始呼叫函式,我們轉換了 “中國”,如下圖所示:
(3)儲存測試計劃,點選執行 Jmeter,檢視結果,如下圖所示:
2.8__unescapeHtml
函式__unescapeHtml 用於反轉義一個包含 HTML 實體的字串,將其變為包含實際 Unicode 字元的字串。支援 HTML 4.0 實體。
如果函式不認識某個實體,就會將實體保留下來,並一字不差地插入結果字串中。例如,">&zzzz;x"會變為">&zzzz;x"。
1、我們先來看看這個_unescapeHtml長得是啥樣子,路徑: 函式助手 > 選擇_unescapeHtml ,如下圖所示:
2、關鍵引數說明:
String to unescape :待反跳脫字元串
3、例項
(1)使用函式助手,生成我們要呼叫函式的表示式,要轉換 "中國" , 如下圖所示:
(2)建立測試計劃開始呼叫函式,我們轉換了 "中國" ,如下圖所示:
(3)儲存測試計劃,點選執行 Jmeter,檢視結果,如下圖所示:
3.小結
好了,今天到這裡 JMeter5 的函式下篇就介紹和分享完了,到此函式介紹就全部結束,就要告一段落了感謝您耐心的閱讀和一路支援宏哥!!!
相關文章
- 🔥Jmeter(十四) - 從入門到精通 - JMeter 定時器 - 下篇(詳解教程)JMeter定時器
- 🔥Jmeter(二十) - 從入門到精通 - JMeter 監聽器 -下篇(詳解教程)JMeter
- 🔥Jmeter(二十三) - 從入門到精通 - JMeter 函式 - 上篇(詳解教程)JMeter函式
- 🔥Jmeter(二十四) - 從入門到精通 - JMeter 函式 - 中篇(詳解教程)JMeter函式
- 🔥Jmeter(二十二) - 從入門到精通 - JMeter 斷言 - 下篇(詳解教程)JMeter
- 🔥Jmeter(十一) - 從入門到精通 - JMeter 邏輯控制器 - 下篇(詳解教程)JMeter
- 🔥Jmeter(八) - 從入門到精通 - JMeter 配置元件(詳解教程)JMeter元件
- Jmeter(二十) - 從入門到精通 - JMeter監聽器 -下篇(詳解教程)JMeter
- Jmeter(十四) - 從入門到精通 - JMeter定時器 - 下篇(詳解教程)JMeter定時器
- 🔥Jmeter(十三) - 從入門到精通 - JMeter 定時器 - 上篇(詳解教程)JMeter定時器
- Jmeter(二十三) - 從入門到精通 - JMeter函式 - 上篇(詳解教程)JMeter函式
- Jmeter(二十四) - 從入門到精通 - JMeter函式 - 中篇(詳解教程)JMeter函式
- Jmeter(二十二) - 從入門到精通 - JMeter斷言 - 下篇(詳解教程)JMeter
- 🔥Jmeter(二十一) - 從入門到精通 - JMeter 斷言 - 上篇(詳解教程)JMeter
- Jmeter(十一) - 從入門到精通 - JMeter邏輯控制器 - 下篇(詳解教程)JMeter
- 🔥Jmeter(十五) - 從入門到精通 - JMeter 匯入自定義的 Jar 包(詳解教程)JMeterJAR
- 🔥Jmeter(九) - 從入門到精通 - JMeter 邏輯控制器 - 上篇(詳解教程)JMeter
- 🔥Jmeter(十) - 從入門到精通 - JMeter 邏輯控制器 - 中篇(詳解教程)JMeter
- Jmeter(八) - 從入門到精通 - JMeter配置元件(詳解教程)JMeter元件
- Jmeter(十三) - 從入門到精通 - JMeter定時器 - 上篇(詳解教程)JMeter定時器
- Jmeter(十九) - 從入門到精通 - JMeter監聽器 -上篇(詳解教程)JMeter
- Jmeter(二十一) - 從入門到精通 - JMeter斷言 - 上篇(詳解教程)JMeter
- 🔥Jmeter(六) - 從入門到精通 - 建立資料庫測試計劃(詳解教程)JMeter資料庫
- Jmeter(十) - 從入門到精通 - JMeter邏輯控制器 - 中篇(詳解教程)JMeter
- Jmeter(九) - 從入門到精通 - JMeter邏輯控制器 - 上篇(詳解教程)JMeter
- Jmeter(四十六) - 從入門到精通高階篇 - Jmeter之網頁圖片爬蟲-下篇(詳解教程)JMeter網頁爬蟲
- Jmeter(四十一) - 從入門到精通進階篇 - Jmeter配置檔案的刨根問底 - 下篇(詳解教程)JMeter
- Jmeter(十二) - 從入門到精通 - JMeter邏輯控制器 - 終篇(詳解教程)JMeter
- Jmeter(五十一) - 從入門到精通高階篇 - jmeter之運動戰(詳解教程)JMeter
- Jmeter(二十七) - 從入門到精通 - Jmeter Http協議錄製指令碼(詳解教程)JMeterHTTP協議指令碼
- Jmeter(三十四) - 從入門到精通進階篇 - 引數化(詳解教程)JMeter
- Jmeter(四十八) - 從入門到精通高階篇 - Jmeter監控伺服器效能(詳解教程)JMeter伺服器
- Jmeter(三十) - 從入門到精通 - Jmeter Http協議錄製指令碼工具-Badboy3(詳解教程)JMeterHTTP協議指令碼
- Jmeter(四十三) - 從入門到精通高階篇 - Jmeter之IP偽裝和欺騙(詳解教程)JMeter
- Jmeter(三十三) - 從入門到精通 - Jmeter Http協議錄製指令碼工具-Badboy6(詳解教程)JMeterHTTP協議指令碼
- Jmeter(三十二) - 從入門到精通 - Jmeter Http協議錄製指令碼工具-Badboy5(詳解教程)JMeterHTTP協議指令碼
- 🔥Jmeter(七) - 從入門到精通 - 建立資料庫測試計劃實戰<MySQL 資料庫>(詳解教程)JMeter資料庫MySql
- Jmeter(二十六) - 從入門到精通 - 搭建開源論壇JForum(詳解教程)JMeter