2011-06-23 24 views
18

Bir HTTP isteğine sahip Threads Number Threads = 5 ile bir iş parçacığı kullanıyorum. Parçacığı sayının değeri, örneğin, bir parametre dahil etmek isteyen istekte Jmeter Mevcut Thread Numarası?

,

"pageno": ${threadno} 

I ${threadno} gibi iplik numarası almak istiyor.

Bunu nasıl yapabilirim?

${__threadNum} 

Bkz:

cevap

33

iplik numarası mevcuttur.

$ {__ eval ($ {__ threadNum})} kullanmanız gerekecek. bu kullanmayı deneyin:

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

ctx JmeterContext

-2

${__threadNum}functions reference iyi yalnız çalışmıyor olarak

+3

Neden bir numara eval gerekir? Belgelenen "__threadNum" sadece iyi çalışıyor. Ayrıca, iş parçacığı sayısı geçerli iş parçacığı numarasıyla aynı değildir. –

13

dan o izin verilmeyen yukarıda belirtilen Jmeter içinde birçok yerde çalışacak ${__threadNum}, sen başka bir şey kullanmak gerekir iken, örneğin Ön/Son İşlemcilerde komut dosyası öğeleri.

Bu yanıt, jMeter'de böyle bir komut dosyasında iş parçacığı numarasının nasıl alınacağını veya sayılacağını açıklar.

Geçerli iş parçacığının sayısını (durumunuzdan 5 üzerinden) almak için, iş parçacığının numarasını alacak olan ctx.getThreadNum() kullanın.

jMeter tarafından kullanılan toplam konu sayısını almak için, toplam etkin konu için ctx.getThreadGroup().getNumThreads() veya ctx.getThreadGroup().getNumberOfThreads() kullanabilirsiniz.

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

+0

Belgelenen '$ {__ threadNum} işlevini kullanmamanın iyi bir nedeni var mı? –

+0

Evet: En az iki boşluk vardır: a) GUI formlarının jMeter öğeleri içindeki giriş kutuları: Orada, $ {__ threadNum} 'yeterli, evet. Ama b) ayrıca JSR223/groovy: scripting alanı da var: Programlı bir yaklaşım var 'ctx.getThreadNum()' gereklidir. Önceden çiğnenen "değişkenler" yerine, programatik olarak, hemen hemen her şeyi yapmak için güç elde edilir. – Franta