13

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

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

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

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

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

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

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

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

4

2 に答える 2

24

代わりにRandom Variable構成要素を単純に使用できるとします。

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 VariableRandom Seedのフィールドの説明に従って:

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

Random の 2 つのインスタンスが同じシードで作成され、それぞれに対して同じ一連のメソッド呼び出しが行われた場合、それらは同一の数列を生成して返します。

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

于 2013-05-22T15:05:22.593 に答える