參數化就是將腳本中的某些輸入使用參數來代替, 在腳本運行時指定參數的取值範圍和規則, 腳本在運行的時候可根據需要
選取不同的參數值作爲輸入。這種方式在自動化中稱爲數據驅動測試,參數的取值範圍被稱爲數據池(Data Pool)
準備測試腳本
1.添加線程組,參數設置如下圖:
2.線程組下添加配置元件-HTTP請求默認值:協議輸入http 服務器名稱或IP輸入httpbin.org 端口號輸入: 80
參數化:前置處理器-用戶參數
1. 線程組下添加前置處理器-用戶參數
添加變量username
、password
和對應的三組值
2. 線程組下添加取樣器-HTTP請求
方法選擇GET, 路徑輸入/get
參數:username
=> 關聯用戶參數中的變量${username}
參數:password
=> 關聯用戶參數中的變量${password}
3. HTTP請求添加查看結果樹,運行腳本
4. 通過查看結果樹查看請求,三組請求的參數分別爲變量username
和password
的三組值
參數化:配置元件-用戶定義的變量
1. 線程組下添加配置元件-用戶定義的變量
添加變量user
值user_var
和變量pwd
值pwd_var
2. 線程組下添加取樣器-HTTP請求
方法選擇GET, 路徑輸入/get
參數:username
=> 關聯用戶參數中的變量${user}
參數:password
=> 關聯用戶參數中的變量${pwd}
3. HTTP請求添加查看結果樹,運行腳本
4. 通過查看結果樹查看請求,參數username
和password
的請求值分別爲user_var
和pwd_var
注:配置元件-用戶定義的變量 中定義的參數值在測試計劃執行過程中不能發生取值的改變,因此
一般僅將測試計劃中不需要隨迭代發生改變的參數(只取一次的參數)設置在此處
參數化:配置元件-CSV 數據文件設置
1. 添加測試數據
在電腦上新建data.dat文檔, 記錄三組數據-用戶名、密碼, 用半角英文逗號分隔
2. 線程組下添加配置元件-CSV 數據文件設置
文件名:指保存信息的文件目錄,可以相對或者絕對路徑
文件編碼:選擇utf-8
變量名稱:對應參數文件每列的變量名,用於後面引用的標識符
忽略首行:我們參數化文件,第一行是測試數據,即不需要忽略首行,所以選擇false
分隔符:與參數文件保持一致即可,參數文件使用逗號,我們這裏就填逗號,參數文件使用
是否允許帶引號:是否允許cvs數據被引號包裹, 選擇false
遇到文件結束符再次循環?:這裏選擇True,假如我們有3行數據,但是有4個線程,第4個線程會繼續使用第一行數據循環登錄
遇到文件結束符停止線程?:這裏選擇False,不結束
線程共享模式:4種模式,所有線程,當前線程組,當前線程,自定義
3. 線程組下添加取樣器-HTTP請求
方法選擇GET, 路徑輸入/get
參數:username
=> 關聯用戶參數中的變量${user_csv}
參數:password
=> 關聯用戶參數中的變量${pwd_csv}
4. HTTP請求添加查看結果樹,運行腳本
5. 通過查看結果樹查看請求,三組請求的參數分別爲變量user_csv
和pwd_csv
的三組值
參數化:函數助手_CSVRead
1. 線程組下添加函數助手-CSVRead
用於獲取值的CSV文件 | *別名: 取值的文件,寫絕對路徑
CSV文件列號| next| *alias:文件起始列號,0代表第一列,1代表第二列,以此類推
拷貝並粘貼函數字符串:參數化後的參數,複製就可以使用了,比如這裏, “${__CSVRead(G:\參數化\data.dat, 0}”代表我的用
戶名, “${__CSVRead(G:\參數化\data.dat, 1)}”代表密碼
3. 線程組下添加取樣器-HTTP請求
方法選擇GET, 路徑輸入/get
參數:username
=> 關聯用戶參數中的變量 ${__CSVRead(G:\參數化\data.dat,0}
參數:password
=> 關聯用戶參數中的變量 ${__CSVRead(G:\參數化\data.dat,1}
4. HTTP請求添加查看結果樹,運行腳本
5. 通過查看結果樹查看請求,三組請求的參數分別爲變量${__CSVRead(G:\參數化\data.dat,0}
和${__CSVRead(G:\參數化
\data.dat,1}
的三組值