web-dev-qa-db-ja.com

いくつかのスレッドのJmeter確率変数

変数uuidを全体で数回使用するJmeterスレッドグループがあります。

uuid12345678-1234-4444-a123-${__Random(111111111111,999999999999)}で定義されます

つまり、固定シリーズ12345678-1234-4444-a123-で始まり、最後の12文字をランダム化します。

複数のスレッドを同時に実行したいのですが、これにより次の問題が発生します。

スレッドグループ内のユーザー定義変数としてuuidを定義すると、ランダム化が1回行われ、その値がすべてのスレッドに使用されます。グローバルに設定すると、同じことが起こります。

完了したら、同時に何千ものスレッドを実行するため、手動による解決策やディスクへの読み取り/書き込みを行うことはできません。

誰かがこれを経験したことがありますか?私はかなり長い間ドキュメントとGoogleを調べてきましたが、解決策を見つけることができないようです。

つまり、変数をランダム化し、その変数をスレッドグループ全体で使用し、このスレッドグループを複数の同時スレッドで実行する必要があります。変数は、スレッドごとに異なるランダム化された値を持つ必要があります。

9
Jon Carlstedt

代わりに 確率変数 構成要素を使用できると仮定します。

_Variable Name:     uuid
Output Format:     12345678-1234-4444-a123-000000000000
Minimum Value:     111111111111
Maximum Value:     999999999999
Per Thread (User): True
_

生成された値

  • _${uuid}_としてアクセスできます。
  • スレッドごとに一意。
  • 異なるサンプラー間で保持され、各スレッドのフローを呼び出します(各参照中に再生成されません)。
  • スレッドグループの各反復中に生成されます。
_Test Plan
    Thread Group
        Random Variable
        ...
        Sampler 1
        Sampler 2
        ...
_

例えば.

_
iteration: 1
    thread: 1
        sampler 1: VALUE_1-1
        sampler 2: VALUE_1-1
        ...
    thread: 2
        sampler 1: VALUE_2-1
        sampler 2: VALUE_2-1
        ...
    ...
iteration: 2
    thread: 1
        sampler 1: VALUE_1-2
        sampler 2: VALUE_1-2
        ...
    thread: 2
        sampler 1: VALUE_2-2
        sampler 2: VALUE_2-2
        ...
    ...
_

上記のスキーマ用に実装されたサンプルスクリプト: rnd-var.jmx


確率変数 の_Random Seed_フィールドの説明に従って:

デフォルトは、ミリ秒単位の現在の時刻です。 Per Threadをtrueに設定して同じシード値を使用すると、earchThreadに対してRandomクラスと同じ値が得られます。

ランダムの2つのインスタンスが同じシードで作成され、それぞれに対して同じメソッド呼び出しのシーケンスが行われる場合、それらは同じ番号のシーケンスを生成して返します。

同時実行性の高いシナリオを実装する場合は、以下のコメントで説明するように注意してください。この問題を克服するために、たとえば、ランダム化シードを使用できます。 _Seed for Random function_フィールドの値としての${__Random(MIN,MAX)}

21

置くだけ

12345678-1234-4444-a123-${__Random(111111111111,999999999999)}

必要な場所にインラインで。

これをUDVコンポーネントに入れると、スレッドが開始される前に、値が1回だけ割り当てられます。 jmeterのドキュメントによると、動作は問題ありません。よくお読みください。

0
skellapa