2017-08-31 14 views
0

ランダム変数を使用して、指定されたURL(/app/${app_id})に投稿リクエストを送信するテストプランがあります。JMeter - 別のスレッドグループでランダム変数を再利用する

また、ランダム変数app_idを再利用して、そのアプリのステータス(/app/${app_id}/status)をポーリングします。ステータスURLには複数のリクエストがあることに注意してください。

私の現在の考えはにある

  1. が投稿
  2. app_idのリストを読んで、別のスレッドグループ内のランダムに生成さapp_id
  3. のリストを保存提出一つのスレッドグループを持っていますそれぞれapp_idについては、ステータス要求をループしてください。

これは合理的なアプローチですか?もしそうなら、どうすれば無作為に生成されたapp_idを保存しておきますか?また

、このような状況へのより良い方法がある場合、私はすべての耳を:)だ

答えて

0

を使用して、そのファイルから読み込みます12、などのような

appid-1=foo 
appid-2=bar 
appid-3=baz 
etc. 

数字の形でのJMeterプロパティを生成します。 。の詳細については、を参照してくださいApache JMeter Functions - An Introduction

Sharing Variables between Thread Groups

${__P(appid-${__counter(FALSE)},)} 

デモ:他のスレッドグループでは、あなたが__P() functionなどを使用して生成された値にアクセスすることができます__counter() function

から来ていますJMeter関数の概念。


あり、スレッドとさえスレッドグループ間でのJMeter変数を渡すより、「高度な」方法は、さらに、あなたのスレッドを同期することができるようになります、ある変数が設定されていないまで、すなわち第二スレッドグループ内のスレッドを開始しないでくださいInter-Thread Communicationプラグインを使用しています。

0

あなたものいずれかを設定することにより、一つのスレッドグループ内のすべてのことを行うことができますが、スレッドグループとのソリューションは、実現可能です残りのスレッドは投稿を提出します。このような何か: - 1つのスレッドグループに達成することが容易になりますが、書き込みやapp_idリストを読み込む間の同期の任意の並べ替えが必要な場合は、ユーザーの両方のタイプの1つのスレッドグループを使用する

Thread Group 
     If [${__threadNum} == 1] 
      Samplers to check status 
     If [${__threadNum} != 1] 
      Samplers to submit posts 

一つの理由です。すでにスレッドグループがたくさんある場合あなたは、のいずれかを使用することができ、ファイルなしで、他の1つのスレッドグループからIDを渡すには

  1. :様々なスレッド/スレッドグループにapp_idを提供するよう

    、あなたはのいずれかの方法を使用することができますhereのプロパティを使用する方法が最も一般的です)。

    おそらく最も簡単なのは、いくつかの区切り文字を使用して1つのプロパティに保存するのが最も簡単な方法です。 ID1,ID2,...。次に、 "status"スレッドは、このプロパティを取得したり、__split関数を使用してプロパティをシリアル化変数(app_id_1app_id_2など)に変換する機能を使用して分割できます。これらの変数はForEach Controllerの自然な選択です。

  2. また、最初のスレッドグループはapp_idをファイルに保存し、もう1つのスレッドグループはCSV Data Set Configを使用して同じファイルから読み取ります。彼らは同時にそれをやっている場合は、ここでも注意してください。

  3. app-idを事前生成することができれば、より経済的な方法として、SetUp Threadを生成してCSVファイルに保存することができます(例:BeanShellなど)。 here)。

    ${__setProperty(appid-${__counter(FALSE)},${your_variable_holding_appid},)} 
    

    機能がそれを呼ばれるたびに:そして、両方のスレッドグループは、あなたが好き__setProperty()機能を使用して別のものに1つのスレッドグループから値を渡すことができCSV Data Set Config

関連する問題