JMeter-常用函數介紹
"_csvRead"函數
csvRead函數是從外部讀取參數,csvRead函數可以從一個文件中讀取多個參數。
下面具體講一下如何使用csvread函數:
1.新建一個csv或者text文件,裡面保存要讀取的參數,每個參數間用逗號相隔。每行表示每一組參數,每列表示每種參數:
比如:
admin,123
manager,456
2.打開Jmeter的函數助手,擇csvread函數,如下圖所示:
其中:
CSV file to get values from | *alias:要讀取的文件路徑,應該是絕對路徑
CSV文件列號| next| *alias:從第幾列開始讀取,注意第一列是0
點擊生成按鈕,則生成了函數,在上圖中則為:${__CSVRead(D:login.txt,1)}csvread就是從login.txt文件中讀取第一列的參數。以此類推。
3.將生成的參數拷貝到需要參數化的參數的值一項中,如果要修改要讀取的參數的列,則可以直接在參數值中修改數字而不用重新在csvread函數生成中修改。
4.jmeter執行的時候,如果有多個線程,順序讀取第一行的數字,如果線程組多餘文件中的行數,則循環讀取。
5.利用該功能,可以實現不同參數需要不同參數值的問題,只需要在需要參數化的地方將生成的CSVRead函數字元串粘貼過去,然後修改表示第幾列的數字就可以了。
"_ StringFromFile"函數
功能:這個函數是從一個文件中取到一個字元串,這個函數和LoadRunner中的File變數差不多,不過LoadRunner可以直接從資料庫中查詢記錄,自動生成文件,而Jmeter需要我們藉助第三方工具生成文本作用:可以用來實現參數化http請求發送的參數,使得在Jmeter運行時參數化了的參數在每個線程讀取不同的內容。如果某個參數每次發送請求的時候不能重複才可以存儲到資料庫中,則用這個功能十分方便。
使用:
1.首先需要一個文本文件,可以手工生成,也可以通過資料庫查詢工具查出結果,然後拷貝到一個文本文件中。
2.點擊Jmeter的「選項」,選擇「函數助手對話框」(或者使用快捷鍵「Ctrl+F」),在「選擇一個功能」的下拉框中選擇「_StringFromFile」
3.設置「_StringFromFile」函數的值,具體如下:
● 輸入文件的全路徑:輸入前面生成的文件的完整路徑,即文件路徑+文件名.擴展名(文件路徑可以寫成相對路徑或絕對路徑,默認讀取位置為/bin下)
● 函數名稱:輸入某個名稱,用於存儲在測試計劃中其他的方式使用的值。
● 文件開始結束序號:第三,第四個參數是文件開始的序號,也就是文件讀取的其起始行數。第四個參數是文件的結束序號,也就是要讀取文件的最後行。假如咱們生成的文本文件有200行,如果開始序號設置成50,結束行設置成150,那麼這個函數會按順序從第50行,一直讀取到150行,如果測試的循環次數超過了文件行數,比如循環了102次,那麼最後一次循環讀取的文件內容和第一次的一樣,函數會自動循環讀取。文件的起始序號和結束序號也可以不用設置,這樣函數會從第一行讀取到最後一行,然後再循環讀取。
4.注意:該函數每次讀取文件中的一行,如果線程組中有多個線程,則每個線程順序讀取一行,如果有多次循環,則每次循環順序讀取一行。
"_Random"函數
功能:這個函數是從某個數欄位隨機讀取數據替換參數,可以利用在測試需要添加多條數據記錄而且某些欄位需要唯一性的測試腳本中,隨機生成的參數是數字
作用:可以用來實現參數化http請求發送的參數,使得在Jmeter運行時參數化了的參數在每個線程去不同的隨機數。如果某個參數每次發送請求的時候不能重複才可以存儲到資料庫中,則用這個功能十分方便。
使用:
1.點擊Jmeter的「選項」,選擇「函數助手對話框」(或者使用快捷鍵「Ctrl+F」),在「選擇一個功能」的下拉框中選擇「_Random」。
2.配置「_Random」函數,第一個參數是「一個範圍內的最小值」,即所要取的隨機數的最小值,我們設置成1;第二個參數是「一個範圍內的最大值」,即所要取的隨機數的最大值,我們設置成100;第三個參數是「函數名稱」,即用於存儲在測試計劃中其他的方式使用的值,我們設置成Random。設置好上面的三個參數後,點擊「生成」按鈕,這樣就會在對話框的最下面生成一個字元串「${__Random(1,100,Random)}」,在我們編寫的腳本中,找到要替換的參數,把它的值換成前面生成的字元串就可以了,然後每次運行的時候,這個參數會變成一個1到100之間的隨機數。
"_counter"函數
功能:這個函數是一個計數器,用於統計函數的使用次數,它從1開始,每調用這個函數一次它就會自動加1,它有兩個參數,第一個參數是布爾型的,只能設置成「TRUE」或者「FALSE」,如果是TRUE,那麼每個用戶有自己的計數器,可以用於統計每個線程歌執行了多少次。如果是FALSE,那就使用全局計數器,可以統計出這次測試共運行了多少次。第二個參數是「函數名稱」
格式:${__counter(FALSE,test)}
使用:我們將「_counter」函數生成的參數複製到某個參數下面,如果為TRUE格式,則每個線程各自統計,最大數為循環數,如果為FALSE,則所有線程一起統計,最大數為線程數乘以循環數
"_time」函數
功能:Jmeter運行時取當前時間到變數,利用該功能,可以將某個參數增加time函數,然後用該參數作為查詢條件查詢,然後以該參數作為斷言,這樣可以使得斷言更精確,因為時間實時變化的,使用該方法,需要注意的是,要先添加一個全局的用戶參數,具體在斷言操作中有描述。
格式:${__time(MMddmmss,TEST)}
使用:添加jmeter的time函數,選擇選項——函數助手,然後選擇__time函數,如下圖所示:
在「ormat string for SimpleDateFormat (optional)」中輸入值「MMddhhmmss」,表示取月日時分秒。
然後,點擊生成,則生成了time參數。
"_intSum」函數
功能:用於計算多個整數的和,可以是計算正整數和負整數的和,它有N個參數,最少有3個參數,最多不限。最後一個參數是函數名稱,前面的其它參數是要求和的整數。這個函數在函數對話框中只顯示3個參數,如果要計算多個整數,可以通過添加參數實現,不過最後一個參數一定要是函數名稱。再添加的參數會在函數名稱後面,這個時候,需要我們手動將函數名稱參數放到最後一個。
格式:${__intSum(1,100,test)}
***********************************************************************
其他函數自行研究~
其實函數一樣,JMeter的幫助已經做得很好的了(選擇函數,點擊幫助直接可以定位到文檔中)
推薦閱讀: