"_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消息類的功能 ${__threadNum} :得到testplan的線程數 ${__machineName} :得到主機名字 ${__time(EEE\, d MMM yyyy)} :返回一定格式的時間信息 。${__log(Message)}:寫入log文件”…thread Name : Message” 。${__log(Message,OUT)}:輸出到命令行。${__log(${VAR},,,VAR=)} :以 “…thread Name VAR=value”形式輸出到log文件。 Jmeter輸入類的功能 這里Jason只介紹下${__XPath(File,//XX/XX/@XX)} :XPath方式讀了File文件的相應屬性. Jmeter計算類的功能 ${__counter(X)} :自增函數,X(true/false)來控制是否分配線程來增加. ${__Random(X,Y,Z)} :隨機函數,X為最小值,Y為最大值,Z為存儲的變量名. Jmeter的Properties文件使用的功能類 之前Jason在Jmeter的P函數及properties文件介紹了相關的內容. Jmeter的變量操作類的功能 ${__split(X,Y,Z)} :用來分割變量用的,X為需要分割的變量或者String,Y為存儲的變量名,Z為分割符. ${__V} :的使用主要來源於變量中含變量的情況 eg. ${A${N}} 可以用${__V(A${N})} 來顯示成功. ${__eval} :主要用在對SQL的處理上,具體使用看下面的例子: * name=Smith * column=age * table=birthdays * SQL=select ${column} from ${table} where name=’${name}’ 用${__eval(${SQL})}可以得到”select age from birthdays where name=’Smith’”. Jmeter的String操作類的功能 ${__regexFunction} :對前一個響應進行正則規約提取.具體參考這里. ${__char},${__unescape},${__unescapeHtml},${__escapeHtml} :主要用來對字符的編碼格式的轉換的. Jmeter的腳本操作類的功能 ${__javaScript(X,Y)} :主要是使用Javascript來做一些簡單的操作.例如計算和字符處理等等. eg. ${__javaScript(‘${sp}’.slice(7\,99999))} ${__BeanShell(X)} :主要是利用BeanShell來實現一些具體的功能,BeanShell具體我們可以參考BeanShell.
from:http://blog.sina.com.cn/s/blog_608c903d0100qdo3.html
http://www.51testing.com/html/02/219102-247450.html