2011-06-23 43 views
18

我正在使用線程組數量爲5的線程組與HTTP請求。Jmeter當前線程數?

在我想包括與線程數的值,例如一個參數的請求,

"pageno": ${threadno} 

我想獲得像${threadno}線程編號。

我該怎麼做?

回答

-2

${__threadNum}不能很好地工作孤單。

您將需要使用$ {__ eval($ {__ threadNum})}。 嘗試使用此:

int threadNum=ctx.getThreadGroup().getNumThreads(); 

CTX是JmeterContext

+3

爲什麼你需要EVAL多少?記錄的'__threadNum'工作得很好。此外,線程數與當前線程號不同。 –

13

雖然上述${__threadNum}將內JMeter的很多地方工作,你需要到別的地方使用它是不允許的,如,Pre/Post-Processors中的腳本元素。

這個答案解釋瞭如何在jMeter的這樣一個腳本中獲取線程數或者線程數。

要獲取當前線程的編號(在你的案例中爲5),使用ctx.getThreadNum()將得到線程的編號。

要獲得jMeter正在使用的線程總數,可以使用ctx.getThreadGroup().getNumThreads()ctx.getThreadGroup().getNumberOfThreads()來表示總活動線程數。

https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html#getThreadNum() https://jmeter.apache.org/api/org/apache/jmeter/threads/AbstractThreadGroup.html

+0

有沒有好的理由不使用'$ {__ threadNum}'函數? –

+0

是的:至少有兩個空格:a)GUI的輸入框在jMeter元素內形成:有'$ {__ threadNum}'就足夠了。但是b)還有腳本區域,主要是JSR223/groovy:需要編程方法'ctx.getThreadNum()'。在程序上,不用預先咀嚼的「變量」,人們幾乎可以隨心所欲地做出決定。 – Franta