在 Jmeter 中,通過函數(shù) ${__counter(,)}
可以實現(xiàn)每次加
1
1
1 的計數(shù)效果。但如果步長不為
1
1
1,則要利用到我們的計數(shù)器。
函數(shù) | 作用 |
---|---|
${__counter(,)} |
計數(shù)器,每次加 1 |
${__dateTimeConvert(,)} |
時間格式轉(zhuǎn)換 |
${__intSum(,)} |
整數(shù)相加 |
${__P(,)} |
獲取屬性 |
${__setProperty(,)} |
設(shè)置屬性 |
${__Random(,)} |
隨機數(shù) |
${__threadNum} |
線程編號 |
${__time(,)} |
獲取當(dāng)前時間戳 |
${__V(,)} |
拼接 |
我們首先添加一個 線程組。我們設(shè)置 線程數(shù) 為
5
5
5,Ramp-Up
時間為 1 秒,為了便于觀測,循環(huán)次數(shù) 設(shè)為
3
3
3。
既然要了解計數(shù)器,首先給線程組添加一個 計數(shù)器。操作:線程組(右鍵添加)?? 配置元件 ?? 計數(shù)器。
我們對計數(shù)器做出如下設(shè)置:
-
開始值(
Starting value
):給定計數(shù)器的起始值、初始值,第一次迭代時,會把該值賦給計數(shù)器。 -
遞增(
Increment
):每次迭代后,給計數(shù)器增加的值。 -
最大值(
Maximum value
):達到最大值時,自動重置初始值;默認(rèn)的最大值為 2 63 ? 1 2^{63}-1 263?1,即Long.MAX_VALUE
。 -
數(shù)字格式(
Number format
):可選格式,比如 000,格式化為 001,002 … 三位,不足補 0;默認(rèn)格式為Long.toString()
,但是默認(rèn)格式下,還是可以當(dāng)作數(shù)字使用。 -
引用名稱(
Exported Variable Name
):用于控制在其它元素中引用該值,比如:變量名稱為reference_name
,形式:${reference_name}
。 -
與每用戶獨立的跟蹤計數(shù)器(
Track Counter Independently for each User
):如果不勾選,即全局的計數(shù)器,比如用戶#1
獲取值為 1 1 1,用戶#2
獲取值則為 2 2 2;如果勾選,即獨立的計數(shù)器,則每個用戶有自己的值:比如用戶#1
獲取值為 1 1 1,用戶#2
獲取值也為 1 1 1(注:網(wǎng)上很多帖子這個參數(shù)都解釋反了,估計是某一篇說錯了,然后其他人直接搬過去都沒有驗證過,本文有驗證)。 -
在每個線程組迭代上重置計算器(
Reset counter on each Thread Group Iteration
):可選,僅勾選與每用戶獨立的跟蹤計數(shù)器時可用。
為了方便觀察輸出,我添加了一個 JSR223 Sampler。
我們再添加一個 查看結(jié)果樹,并允許將所有數(shù)據(jù)寫入一個文件(待會有用)。
現(xiàn)在我們可以執(zhí)行看一看。
首先來看一下 日志:
再看一下結(jié)果樹:
因為前面我們并未勾選 與每用戶獨立的跟蹤計數(shù)器,所以它是一個全局的計數(shù)器,所有的線程會共享這個計數(shù)器。
現(xiàn)在我們勾選上 與每用戶獨立的跟蹤計數(shù)器。
再來看看結(jié)果
可以看到,線程之間并沒有共享計數(shù)器,而是獨立的計數(shù)器。
現(xiàn)在我們再勾選上 在每個線程組迭代上重置計算器。
我們再來看看結(jié)果。
因為線程之間獨立,且每一次循環(huán)也獨立,所以結(jié)果全部都是一樣的。
我們再把 最大值 改小一點看看。
查看結(jié)果樹。
我們會發(fā)現(xiàn),當(dāng)超過最大值以后,計數(shù)器會重新從頭開始計算(取 ≤ 最大值的數(shù)據(jù))。
再來一個好玩的。 10 10 10 個線程一直循環(huán),且不設(shè)最大值。跑一會,看看會得到啥?
我大概跑了二三十秒。
結(jié)果樹不方便查看,所以寫入到了 CSV 文件中,很快就生成了 100 多 MB 大小的文件。
打開來看一看。
我們檢查一下 label
是否有重復(fù)項。
為什么博主要做這樣一個的實驗?zāi)兀恳驗椴┲鞑冗^一個坑。我需要創(chuàng)建大量的測試數(shù)據(jù),且名字不能重復(fù),我用了給名字后綴添加計數(shù)器的方式,但是設(shè)置了最大值 10000 10000 10000,跑了一會很快就發(fā)現(xiàn)有重名的出現(xiàn)。
如果我們不設(shè)置最大值,即使超過了格式上的設(shè)置,比如下圖中是 5 5 5 位數(shù)的格式,Jmeter 也會自動擴充數(shù)位。文章來源:http://www.zghlxwxcb.cn/news/detail-751439.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-751439.html
到了這里,關(guān)于【性能測試】Jmeter 配置元件(一):計數(shù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!