2016-03-28 41 views
-1

websocket負荷テストを実行しようとしていて、スレッドスコープで定義された変数にアクセスする必要があります。Apache Jmeter - スレッドスコープ変数が必要

具体的には、擬似ユーザーIDとして使用するUUIDをランダムに生成する必要があります。私たちのAPIは、これは、各要求にパラメータとして渡すことが必要です。UUID と

送信認証要求 - これはUUID

で初期化/応答 ループ送信の同期のためのシステム情報 待機をキーとユーザーアカウントを作成します。

UUIDはアプリIDです。私はそれをUUID関数を介してユーザ定義変数で簡単にランダム化できますが、ユーザ定義変数はテスト開始時に一度計算されますが、スレッドグループスコープで生成される必要があります。それを行う方法はありますか?もし今なら、どうしたらいいですか?

つまり、スレッドグループ内の各サンプラーにアクセス可能なスレッド(ユーザーとして動作する)ごとにランダムに生成されたUUIDが必要です。

ありがとうございます!

答えて

0

以下に示すように、このUUIDを必要とする最初のサンプラーにはBeanshell preprocessorを使用できます。

vars.put("uuid", "${__UUID}");

ユーザ/スレッドのスレッドグループ内のすべての他のサンプラーは、同じUUIDを持つことになり、それが${uuid}を使用してアクセスすることができます。私は、負荷テスト中にこの問題に直面してください

+0

のコードは、これはトリックをした、ありがとうございます! – user3033751

0

、解決策は

使用エポック時間(ミリ秒)で、UUI値を追加します。エポック時間は決して同じではないため、2つのトランザクションが同時に発行されると、UUIが毎回変更されるため、これが解決策です。ですから、テストを実行するたびに、これらの値はunique.Belowあるべき参照

epoch Time:${__javaScript(Math.round(new Date().getTime()))} 
UUID: ${__BeanShell(UUID.randomUUID().toString())} 

Combination is :${__javaScript(Math.round(new Date().getTime()))}_${__BeanShell(UUID.randomUUID().toString())} 
関連する問題