話說上回,我們用Badboy錄制了Jmeter的
腳本,用Jmeter打開后形成了原始的腳本。但是在實際應用中,為了增強腳本的多樣性,就要使腳本
參數化。這里我以登錄為例,參數化
用戶賬號與用戶密碼。
圖1 :原始腳本
這里我利用Jmeter的CSV Data Set Config來實現參數化功能。
步驟如下:
1.在本地磁盤下新建一個文本。比如:F:\test.txt 文件的內容如下:
user,passwd
user1,passwd1
user2,passwd2
2.右鍵點擊Jmeter中需要參數化的某個請求,選擇添加——配置原件——CSV Data Set Config,會添加一個CSV Data Set Config,需要設置相關的一些內容,具體如下:
圖2:CSV Data Set Config設置
解釋下圖2的參數:
Filename:文件名。指保存信息的文件目錄,可以相對或者絕對路徑(比如:F:\test.txt)
Variable Names:參數名稱(如:有幾個參數,在這里面就寫幾個參數名稱,每個名稱中間用分隔符分割,分隔符在下面的“Delimitet”中定義,為了和文件中的“,”對于,這里也用“,”分割每個參數名,(比如:user,passwd)
Delimitet:定義分隔符,這里定義某個分隔符,則在“Variable Names”用這里定義的分隔符分割參數。
Recycle on EOF:是否循環讀入,因為CSV Data Set Config一次讀入一行,分割后存入若干變量中交給一個線程,如果線程數超過文本的記錄行數,那么可以選擇從頭再次讀入。
3.在需要使用變量的地方,比如在登錄操作中,需要提交的表單字段包含用戶名密碼,我們就可以用${變量名} 的形式進行替換,例如${user}和${password}。如圖3
圖3:參數化設置
這樣,腳本的參數化基本上完成了。如果我們要確定Jmeter有沒有按照我們的預期進行工作,我們應當考慮使Jmeter提供的斷言,加到Sampler 里面可以對返回的結果進行判斷,例如判斷HTTP返回結果里面是否含有某個字符串。我們可以根據自己的需要選擇要測試的響應字段,文本,還是代碼,一般選 擇響應文本,然后,我們選擇匹配規則,一般選擇“包含”,如果要精確匹配,則可以選擇“匹配”,但是選擇“匹配”,因為響應的內容一般還包含其他的信息, 比如html語言標簽,所以很難準確匹配。然后在在要冊似乎的模式下面,添加你要響應的內容。如圖
圖4 :斷言設置
添加好斷言后,要添加一個監聽器,以監聽響應斷言,選擇添加——監聽器——斷言結果。
圖5 :添加斷言結果
添加完斷言結果后,我們運行腳本來測試下參數化和斷言的功能。首先先設置下線程組中的線程數,Ramp-up period,和循環次數,我這里設置為10,0,5.就是10個線程
并發,循環5次。然后點擊運行-啟動。我們查看斷言結果的圖。
圖6:運行成功的斷言結果
運行沒有出錯。全部成功。我們修改下登錄參數,讓登錄失敗,然后看下斷言結果。如圖
圖7:響應斷言失敗