近期在使用Jmeter編寫個(gè)輔助測試的腳本,用到了多個(gè)Loop Controller和Counter。
當(dāng)時(shí)想的思路就是三個(gè)可變的數(shù)量值,使用循環(huán)實(shí)現(xiàn);但第三個(gè)可變值的數(shù)量次數(shù),是基于第二次循環(huán)中得到的結(jié)果才能確認(rèn)最終次數(shù),每次的結(jié)果還會有不一樣的情況?;谒悸罚葘懥藗€(gè)線性腳本,實(shí)現(xiàn)如下所示:
但實(shí)際中,第三層循環(huán),并沒有按自己預(yù)期來實(shí)現(xiàn),所以就想到了Counter計(jì)數(shù)器,將腳本中加入了Counter計(jì)數(shù)器,實(shí)現(xiàn)如下所示:
圖中的數(shù)字說明:f o r 1 {for1}for1{for2}${for3}
${for1}是第一個(gè)循環(huán)器中的Counter變量名
${for2}是第二個(gè)循環(huán)器中的Counter變量名
${for3}是第三個(gè)循環(huán)器中的Counter變量名
從圖中可以看出,${for3}是累加的,不會隨著一次循環(huán)結(jié)束,計(jì)數(shù)自動重置。
我所想實(shí)現(xiàn)的是,第二層循環(huán)中的第一次獲取的結(jié)果是5個(gè)數(shù)組,則從索引0 ~ 4依次按置執(zhí)行第三層循環(huán);第二層循環(huán)中的第二次獲取的結(jié)果是8個(gè)數(shù)組,則從索引0 ~ 7依次按置執(zhí)行第三層循環(huán)。
但這樣操作下來,第二次是會直接從索引5開始執(zhí)行,這樣就會丟失一部分?jǐn)?shù)據(jù),顯然不是自己所想的。
中途也試過很多錯(cuò),都不能實(shí)現(xiàn)計(jì)數(shù)重置的功能。好在,某天想起了官方文檔,這個(gè)功能在文檔是有描述的,如下所示:
文檔中描述的很清楚,可以使用${__jm__LC__idx}的方式實(shí)現(xiàn)index從0開始,其中LC為控制器的名稱。
使用官網(wǎng)的文檔,在腳本中加入變量使用,運(yùn)行如下所示:
從圖中可知,第三層循環(huán)的第四個(gè)數(shù)字就是我所想要的,終于解決了心中的問題。
圖中的數(shù)字說明:f o r 1 {for1}for1{for2}KaTeX parse error: Expected group after '_' at position 7: {for3}_?{resetForNumber}
前三個(gè)數(shù)字在之前已經(jīng)說明過了,這里只說明下${resetForNumber},這個(gè)變量是通過BeanShell Sampler中獲取的,因?yàn)閷⒐倬W(wǎng)給出的方案寫在了BeanShell Sampler種,代碼如下所示:
long i=0;
i = ${__jm__Loop Controller3__idx};
vars.put("resetForNumber",String.valueOf(i));
雖然,描述起來很簡單,但的確是實(shí)際腳本實(shí)現(xiàn)的過程中遇到的一個(gè)阻礙,好在問題解決了。
所以特整理此篇,希望對以后有需要的朋友有所幫助。
最后感謝每一個(gè)認(rèn)真閱讀我文章的人,禮尚往來總是要有的,這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個(gè)倉庫也陪伴上萬個(gè)測試工程師們走過最艱難的路程,希望也能幫助到你!?文章來源:http://www.zghlxwxcb.cn/news/detail-841114.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-841114.html
到了這里,關(guān)于Jmeter——循環(huán)控制器中實(shí)現(xiàn)Counter計(jì)數(shù)器的次數(shù)重置的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!