原文地址: jmeter的幾種參數化方式 [1]
在用到jmeter工具時,無論做接口測試還是性能測試,參數化都是一個必須掌握且非常有用的知識點。參數化的使用場景,例如:
1)多個請求都是同一個ip地址,若服務器地址更換了,則腳本需要更改每個請求的ip
2)注冊賬號,不允許賬號重復;想批量注冊用戶時
3)模擬多個用戶登錄,需要用到不同用戶信息登錄時
4)上一個請求的輸出結果用於下一個請求的參數傳入,例如登錄獲取到的token信息,用於提交賬單請求的參數調用
在jmeter中,通過${變量名}來獲取參數值。
1、用戶定義的變量
1)線程組右鍵添加-->配置元件-->用戶定義的變量,出現如下設置頁面后
輸入名稱、值;注意:名稱可以自定義設置
2)然后將設置后的變量名稱,在注冊、登錄、充值請求中進行參數化引用${ip}、${phone}
注意:引用的參數名跟用戶定義變量設置的名稱必須保持一致
3)點擊運行,查看結果樹,顯示成功
2、函數助手獲取參數值
1)選擇菜單欄 選項-->函數助手對話框,彈出函數助手框,功能下面有多個函數可供選擇,我們主要看下__RandomString,其他可以自行了解下喲
2)要進行多個賬號注冊(比如10個用戶),注冊信息要求手機號mobilephone不能重復;所以可以這么來思考,手機號前3位號段固定,那就對手機號后8位進行隨機,頁面設置如下:
3)拷貝生成的函數字符串,粘貼進行參數引用
4)設置線程組線程數為10,模擬10個虛擬用戶的注冊
5)點擊運行,查看結果樹,顯示成功
3、CSV Data Set Config獲取參數值
1)若需要注冊的手機號不能隨機,必須是用戶真實提供的手機號進行注冊的話,就采用以下這種方式,提前收集用戶真實手機號及昵稱,存放在本地txt或者CSV文件(CSV文件默認逗號隔開)
2)線程組右鍵添加-->配置元件-->CSV Data Set Config
- Filename:需要傳入文件的完整路徑。我的文件位於D盤目錄下,文件名為users.txt。
- File encoding:參數文件的編碼格式。可以不填。
- Variable Names:對應參數文件中每列的變量名,也是你要引用到請求中的參數變量名。這里第一列是手機號、第二列是昵稱。變量名可以自定義。
- igonre first line(only used if Variable Names is not empty):當 CSV 文件中首行設置了變量名時,該項設為 true,此時每次請求讀取文件時會自動忽略首行,直接讀取第二行的數據。若首行未設置,則選擇False
- Delimiter:文件中的分隔符,默認英文的逗號分隔。所以注意txt文檔中每行多個參數用英文逗號分隔。
- **Recycle on EOF: **設置為True后,允許重頭循環取值;為False,當讀取文件到結尾時,停止讀取文件
- **Stop Thread EOF: **當Recycle on EOF為false並且Stop Thread EOF 為true,則讀完csv文件中的記錄后,停止運行,線程數及執行次數無效。
- Sharing Mode:共享模式。All threads:所有線程,所有線程循環取值,線程1取第一行,線程2取下一行;Current thread group:當前線程組,各個線程組分別循環取值;Current thread:當前線程,該測試計划內的所有線程都取第一行。
3)使用CSV Data Set Config中定義好
a、直接參數化引用
b、通過函數助手進行參數化引用
4)設置線程組中線程數為5,執行后,輸出如下結果:成功