(3)jmeter的引數化
今天來講下jmeter的引數化
首先老規矩,講下引數化運用的場景
1 要測試的介面,比如登陸,單點登陸,這個就跟閘道器, token之類有關係了。搞開發的朋友應該知道閘道器的作用,這個時候你就需要不同的使用者名稱去登陸,這個時候你就需要引數化的方式來讓你的一個變數在每次迭代,或者每個執行緒擁有獨立的引數,或者說獨立的token
2 生成資料,比如jdbc,通過jmeter來給資料庫寫入資料,你可以先通過指令碼語言來完成,當然你也可以通過excel的自增生成資料的方式來完成。或者就是用jmeter,loadrunner這類工具來建立資料了。
3 這個可能就牽涉到tcp協議層的東西了,你需要去模擬不同的硬體,讓他們上線以及接收指令,這個就需要通過jmeter的引數化來保證每個虛擬裝置都是唯一的。扯遠一點,這裡就還有一塊就是需要該形參去生成唯一的校驗碼。裡面還設計到時間戳的概念,這裡就不深入講解了。以後有同學搞物聯網相關的東西的話,再好好研究這一塊的東西吧
基本核心內容就是,保證同一個形參,在每個執行緒,或者每個執行緒的每個迴圈都取不同的實參。
好了,引數化之前先來錄製一個指令碼吧,就錄製一個百度搜索吧
先來過濾不需要的東西,直接上圖不廢話了
這一步的作用就是為了過濾各種靜態檔案,別聽網上的說什麼.*\.gif啥的,那是扯淡,你要排除的是完整url,不是這半截子。。。
這一步的作用是因為我們只關注我們的請求
錄製的今日頭條的搜尋,記住,${xxx} ,這是固有模式,就跟robotframe一樣,表示裡面的是形參
ok,現在我們給引數賦值
好了,這種變數,就只有一個值,你可以看做一個常量,拿來幹嘛?
ip,port,許可權賬號,密碼啥的,反正都是死的,何必去搞個文字記錄呢,就寫在jmeter裡面寫死,當一個常量用
第二種 這種就有點像loadrunner的引數化了
不多說,一樣上圖
就這4個數據了,我們來試試,先把執行緒組取值方式這裡設定好
OK。四個執行緒,一個取值一個,沒毛病,我們跑看看
沒毛病,我們加入斷言來看看
那個請求的響應有這文字,就記得加到那個http請求下,不要亂加
這個是我改了裡面的值的,直接截圖,看對比
OK,前面四個正常的沒毛病,後面4個我斷言有問題,他也就跟著報錯了。
下面我們試試一個執行緒,迴圈4次
這裡就不上圖了,四個值被一個執行緒迴圈使用了,記住
那我們設想怎麼讓他只取第一個值呢 對應loadrunner的once取值
懶人做法,哈哈
那想取第二個怎麼辦,尷尬了,我想想
就這樣,我們來看看結果
沒毛病,迴圈一個道理,不過演算法就有點不同了,聰明的你肯定已經明白這個道理了,這裡就不講明瞭
現在我們要3個執行緒,每個執行緒取固定的一個呢,下一章再講解如何保證