Jmeter接口測試02-參數(shù)化

什么是參數(shù)化?為什么要參數(shù)化?我們都知道接口一般都帶有請求參數(shù),有些請求參數(shù)在多個接口中都使用固定的值,有些參數(shù)在做測試的過程中需要提供多種不同的值,為了避免每個重復的參數(shù)在各個接口中都需要賦值一次(有時候可能因為手誤還會寫錯值)或者同一個參數(shù)的不同值都需要重新發(fā)送一次請求,于是就有了參數(shù)化的概念。參數(shù)化可以減少很多重復性的工作。

本文主要介紹Jmeter參數(shù)化的四種方式的使用,應用場景是加油卡項目的接口。

一、用戶定義的變量(參數(shù)化)

需求背景:加油卡項目的四個接口(添加加油卡、綁定加油卡、加油卡充值、加油卡消費)中都有一個相同的入?yún)ataSourceId(即第三方平臺編號),為了避免在每個接口中都給參數(shù)dataSourceId賦一次值(還可能因為手誤在某個或多個接口中的值寫錯了,寫錯幾個就需要修改幾個),所以需要對dataSourceId進行參數(shù)化(這樣即使值寫錯了也只需要修改一處即可)。

添加加油卡接口
綁定加油卡接口

參數(shù)化步驟:

1、鼠標右鍵“加油卡項目”線程組,依次選擇添加->配置元件->用戶定義的變量:

添加用戶定義的變量

2、在用戶定義的變量界面中,點擊“添加”按鈕,輸入變量的名稱,值和描述信息,如下:

添加變量名和值

可添加多個變量。另外,可通過下方按鈕“詳細”、“從剪貼板添加”、“刪除”、“向上”、“向下”等按鈕操作變量。

需要說明的是,用戶定義的變量是在測試計劃執(zhí)行過程中變量值不會發(fā)生改變的參數(shù),因此一般僅將測試計劃中不需要隨迭代發(fā)生改變的參數(shù)設置在此處。比如測試環(huán)境的服務器IP地址和端口等。

3、使用變量,獲取變量方式:${變量名} 。

以添加加油卡接口為例(其它三個接口設置禁用):

引用變量

將原來具體的值“abcd”改為“${dataSourceId}”,這樣在執(zhí)行測試計劃的時候,“${dataSourceId}”會自動獲取到對應的值“abcd”.。

3、執(zhí)行計劃,查看結(jié)果樹。先添加一個監(jiān)聽器“察看結(jié)果樹”,然后發(fā)送請求。

執(zhí)行結(jié)果成功

從上圖中可以看到測試執(zhí)行結(jié)果是成功的。

4、將更多的參數(shù)定義成變量。

定義多個變量
引用變量
測試執(zhí)行成功

至此,完成用戶定義的變量的參數(shù)化的使用。

二、CSV數(shù)據(jù)文件(參數(shù)化)

以添加加油卡接口為例。

需求背景:添加加油卡接口中有個入?yún)ardNumber,參數(shù)的定義是五位數(shù)字,那么測試時就要考慮多種用例情形,如純數(shù)字、帶有字符、包含空格等等。一個參數(shù)的取值可能對應好多個用例,多個參數(shù)的情況對應的用例會更多,面對那么多的用例,我們不可能手動一個用例一個用例的執(zhí)行,那怎么辦呢?這時我們可以考慮用CSV文件提供用例數(shù)據(jù),然后將文件導入,只需點擊一次執(zhí)行按鈕,就可以批量執(zhí)行多個用例。

參數(shù)化步驟:

1、先創(chuàng)建一個.csv格式的文件(文件位置自己定,記住就好),然后在文件中寫上所有測試用例的數(shù)據(jù)(以添加加油卡接口的cardNumber參數(shù)為例),如下:

準備測試數(shù)據(jù)

2、添加CSV數(shù)據(jù)文件設置元件。鼠標右鍵“加油卡項目”,依次點擊添加->配置元件->CSV數(shù)據(jù)文件設置,如下:

添加CSV數(shù)據(jù)文件設置

3、導入.csv格式的文件,設置編碼,是否忽略首行等。

導入文件設置變量

(注:左側(cè)菜單樹可通過鼠標拖動調(diào)整節(jié)點位置。)

如果.csv數(shù)據(jù)文件中有多列,每列是一個參數(shù)的值,那么在上圖3步中需要把各參數(shù)名稱按順序?qū)懮希⑽亩禾柛糸_。

設置線程循環(huán)次數(shù)

4、引用變量,同樣使用方式:${變量名} 。

引用變量

5、執(zhí)行測試,查看結(jié)果。

執(zhí)行測試結(jié)果

六條測試數(shù)據(jù)執(zhí)行六次得出六條測試結(jié)果是一致的。(這里執(zhí)行結(jié)果都是成功的是因為此接口沒做嚴格校驗。)

六條測試數(shù)據(jù)均入庫

以上,就是CSV文件參數(shù)化的使用方式。支持csv,txt,dat三種文件格式。

此方法適用于參數(shù)取值范圍較大的時候使用,該方法具有更大的靈活性。

三、函數(shù)助手(參數(shù)化)

以添加加油卡接口為例。

需求背景:為了測試接口對其它入?yún)⒌男r?,需要提供合法的卡id編號,即cardNumber入?yún)⒌闹怠R驗橐粋€卡id只能被添加一次,所以需要使用函數(shù)按照規(guī)則自動生成卡id,保證每次執(zhí)行時卡id都是一個新的值。

參數(shù)化步驟:

1、調(diào)出函數(shù)窗口。在菜單欄點擊Tools菜單,在子菜單中點擊“函數(shù)助手對話框”,如下:

調(diào)函數(shù)助手對話框
函數(shù)助手對話框

2、上圖中在函數(shù)助手對話框中,選擇功能“__RandomString”(功能很多,其它可自行嘗試),即生成隨機字符串,然后做如下圖配置:

配置隨機字符生成規(guī)則

將上圖中綠框中的表達式拷貝出來,留著備用。

3、使用表達式。

使用方式一:直接寫在請求消息體數(shù)據(jù)參數(shù)值處

引用變量

執(zhí)行前,需要把CSV數(shù)據(jù)文件設置禁用,然后把循環(huán)次數(shù)改為1。

執(zhí)行結(jié)果成功
測試數(shù)據(jù)入庫成功

使用方式二:寫在用戶定義的變量里,然后通過方式:${變量名}? 取值。

添加用戶定義的變量
引用變量
執(zhí)行測試成功
測試數(shù)據(jù)入庫

以上,使用函數(shù)助手進行參數(shù)化操作完成。

---------------------------------------------------------------------------------------------------------------------

另,

測試數(shù)據(jù)
__CSVRead函數(shù)使用
函數(shù)取值

注:上面圖中只能獲取到.csv文件中的第一行的三列值。

若只有一個線程組,即使設置循環(huán)讀取次數(shù),每次讀取的都是第一行!第一行!第一行!

所以如果想要測試一個接口對不同數(shù)據(jù)的響應情況,建議選擇 CSV data set config 實現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容