2011-06-23 92 views
18

スレッド数が5のスレッドグループをHTTPリクエストで使用しています。私は、スレッド数の値を持つパラメータを含める要求でJmeter現在のスレッド番号?

、例えば、

"pageno": ${threadno} 

私は${threadno}のようなスレッド数を取得したいです。

どうすればいいですか?

答えて

33

スレッド数はとして提供されています:

${__threadNum} 

参照:functions reference

-2

${__threadNum}がうまくだけでは動作しません。

$ {__eval($ {__ threadNum})}を使用する必要があります。 これを使用してみてください:

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

CTXは上記${__threadNum}はJMeterの内の多くの場所で動作しますが、あなたはそれが許可されていないところ何か他のものを使用する必要がありますJmeterContext

+3

は、なぜあなたは数をevalに必要があるでしょうか?文書化された '__threadNum'はうまく動作します。また、スレッド数は現在のスレッド数と同じではありません。 –

13

からで、例えば、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

はい:少なくとも2つのスペースがあります:a)GUIの入力ボックスはjMeter要素内にあります: '$ {__ threadNum} 'で十分です。しかし、b)スクリプティング領域、主にJSR223/groovyがあります。プログラム的なアプローチである 'ctx.getThreadNum()'が必要です。あらかじめ噛んだ「変数」の代わりに、プログラム的には、何でもほとんど何でもできる力が得られます。 – Franta

関連する問題