1. 程式人生 > >(3)jmeter的引數化

(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個執行緒,每個執行緒取固定的一個呢,下一章再講解如何保證