Jmeter中提供了許多內置函數功能,我們可以通過函數助手幫助我們使用這些函數。后邊我們還可以通過安裝插件,豐富自己環境的函數庫,本文主要介紹Jmeter常用的自帶函數使用,如:time函數、timeShift函數、Random函數、RandomString函數、V函數
Jmeter的函數助手入口如圖:
我們可以點擊函數助手彈窗的【幫助】查閱我們所需要使用的函數信息。
點擊后就可以跳轉到函數的信息頁面
通過點擊想要使用的函數,就可以展示對應函數的具體信息,以time函數為例:
一:time函數:用來獲取當前的時間,可以指定時間格式。
上邊我們函數幫助文檔可以觀察到time函數的具體信息了,下面進行實際使用。
(1)不填參數,點擊生成,則會在剪貼板生成了表示精確到毫秒級別的時間戳,這里的時間戳長度是13位,在想要使用該函數的地方Ctrl+V即可。
接下來我們在請求中使用該函數:
(2)填寫第一個參數:/1000,點擊生成,則會在剪貼板生成了精確到秒級的時間戳,這里的時間戳長度是10位
函數使用方式同上。
(3)有時候我們想要的是具體的時間格式,如:yyyy-MM-dd HH:mm:ss;yyyy年MM月dd日 HH時mm分ss秒;yyyy-MM-dd等,具體的時間格式可以根據項目的時間類型具體定義。
具體使用同(1)
二:timeShift函數:該函數主要用來獲取當前時間的偏移時間,如:當前時間的前3分鍾,前3小時,前3天,后3分鍾,后3小時,后3天等。
主要使用到的偏移時間格式:
(1)當前時間+3天:P3D
(2)當前時間-3天:-P3D
(3)當前時間+3小時:PT3H
(4)當前時間-3小時:-PT3H
(5)當前時間+3小時30分:PT3H30M
(6)當前時間-3小時30分:-PT3H30M
(7)當前時間+3天3小時:P3DT3H
(8)當前時間+3天3小時30分:P3DT3H30M
(9)當前時間-3天3小時30分:-P3DT3H30M
三:Random函數:用來隨機生成一個指定范圍內的數字
注意事項:該區間是一個左閉右開的區間,左邊的最小值是可能被隨機取值到的,右邊的最大值是取值不到的。
四:RandomString函數:用來隨機生成一串字符串
五:V函數:該函數也稱為拼接函數
對用多個Jmeter變量要一起使用的時候,就需要使用到V函數。舉個場景:我們通過后置處理器提取器得到了一個列表數據如:[name_1,name_2,name_3,name_4,name_5]
這時候如果我們想要隨機取其中的某個值,就需要用到V函數進行拼接。
步驟為:(1)首先使用Random函數確定下隨機的范圍:
${__Random(1,${name_matchNr}+1,)}
此處填寫${name_matchNr}+1的原因是Random函數是左閉右開區間,+1才能夠隨機取值到列表最后一個數據。
通過這個函數就可以確定下每次腳本執行的取值范圍
(2)隨機取列表某個數據
${__V(name_${__Random(1,${name_matchNr}+1,)},)}