今天使用Jmeter進行測試時,有時為了避免參數重復,使用Jmeter自帶的函數進行了參數化。
1、_Random
功能:這個函數是從某個數字段隨機讀取數據替換參數,可以利用在測試需要添加多條數據記錄而且某些字段需要唯一性的測試腳本中,隨機生成的參數是數字
作用:可以用來實現參數化http請求發送的參數,使得在Jmeter運行時參數化了的參數在每個線程去不同的隨機數。如果某個參數每次發送請求的時候不能重復才可以存儲到數據庫中,則用這個功能十分方便。
使用:
1.點擊Jmeter的“選項”,選擇“函數助手對話框(Function help Dialog)”(或者使用快捷鍵“Ctrl+shift+F1”),在“選擇一個功能”的下拉框中選擇“_Random”。
2.配置“_Random”函數,第一個參數是“一個范圍內的最小值”,即所要取的隨機數的最小值,我們設置成1;第二個參數是“一個范圍內的 最大值”,即所要取的隨機數的最大值,我們設置成100;第三個參數是“函數名稱”,即用於存儲在測試計划中其他的方式使用的值,我們設置成 Random。設置好上面的三個參數后,點擊“生成”按鈕,這樣就會在對話框的最下面生成一個字符串 “${__Random(1,100,Random)}”,在我們編寫的腳本中,找到要替換的參數,把它的值換成前面生成的字符串就可以了,然后每次運行 的時候,這個參數會變成一個1到100之間的隨機數。
2、_CSVRead
csvRead函數是從外部讀取參數,csvRead函數可以從一個文件中讀取多個參數。
a.我們可以從外部新建一個csv文件,里面保存需要讀取的參數,可以是一個參數的多個值(一列),也可以是多個參數的多個值(多個列即可,中間可以以逗號或tab分開)。
b.在Jmeter里,在需要讀取參數值的參數value項,選擇Function help Dialog,下拉列表中選擇_CSVRead,在其中相應位置填寫外部csv文件路徑,以及該參數在文件中的位置(所在列的值,從0開始計),點擊生成,將生成的值(以$開頭)填在jmeter中的參數value處。
c.將其他參數按需按b步驟填寫。
3、_intSum
如果參數中有以其他多個參數之和取值的參數,就可以用_intSum實現。
_intSum可以直接求的兩個或多個整數的值傳給相應參數,也可以取其他參數的值(需是整數)作為參數傳給sum。
給個例子說明用法:
我將sumprice的值設置成:${__intSum(${__CSVRead(E:\jmx-t\order.csv,2)},${__CSVRead(E:\jmx-t\order.csv,3)},${__CSVRead(E:\order.csv,4)},originPrice)}
這里求的是三個參數的和,其中三個參數均是從外部csv文件讀入的,它們分別是order.csv文件的第3,4,5列。