次のようなファイルから読み取っているCSVデータセット構成要素を使用しています。
abd
sds
ase
sdd
ssd
cvv
これは、基本的に、3文字のランダムな文字列の数を持っています。
それらを${random_3}
という変数に割り当てています。
ここで、このリストの値を同じスレッド内で複数回使用したいのですが、そのたびに次へ移動したいと思います。たとえば、最初のサンプラーでabd
を使用し、2番目のサンプラーでsds
、次にase
などを使用したいのですが、${random_3}
だけを使用する場合は最初のもの(abd)は、参照されている場所で使用されます。スレッド内のCSVデータセットの値をループするように指定する方法はありますか?
CSVデータセット構成これには問題なく機能します。すべての値はファイルの1つの列にあり、説明されているように変数に割り当てる必要があります。
スレッドグループを作成します。このスレッドには、ファイルを反復処理する(つまり、HTTPリクエストに基づいて)必要な数のユーザーのスレッドが含まれます。ユーザーが1人の場合、スレッド数を1に設定し、ループ数を1に設定します。
スレッドグループ内に、Loop ControllerまたはWhile Controllerを追加する必要があります。データセット全体をループすることを指定しました。ループコントローラーを追加する場合は、値ごとに1つずつ、合計6つの値があるため、ループカウントを6に設定する必要があります。または、(ファイル全体を処理するのが簡単な)ループコントローラーの代わりにWhileコントローラーを追加し、while条件として$ {random_3}を設定します。
CSVデータセットEOFでリサイクルおよびEOFでスレッドを停止の値を正しく設定することが重要です。ファイルを複数回繰り返す場合は、「Recycle on EOF」をTrueに設定する必要があります(つまり、jMeterに上に戻るように指示しますCSVファイル)。ループコントローラを使用している場合は、「EOFでスレッドを停止」をFalseに設定しますtruewhileコントローラーを使用していて、csvデータセット全体を読み取った後に停止したい場合。
CSVデータセット構成を、HTTP要求とともにコントローラーの子として追加します。使用するリスナーを使用して結果を表示します。
CSVデータセットは、各スレッドの反復が開始されたときにのみファイル内を移動します。
Raw Data Source PreProcessorを使用して、リクエストごとにthrouhgファイルを移動できます。これがソリューションです。
同じ列に特定の変数名の値を含める必要があることに注意してください。
実行中:abd sds ase sdd ssd cvv
とは大きく異なります
abd
sds
ase
sdd
ssd
cvv
最初の変数には、それぞれ1つの値を持つ6つの変数があります。 2番目には、6つの値を持つ1つの変数があります。
更新:
CSVデータセットはこの目的にも適していないようです。
必要に応じてランダムな1、2、または3文字の単語を作成するいくつかの単純なBeanshellスクリプトと、大きなセットからランダムな単語を読み取る別のスクリプトを作成することになりました。このように、それらが呼び出されるたびに、それらはランダムな値を与えます。それらは次のように呼ばれます:
${__BeanShell(getRandomStr(3))}
または
${__BeanShell(getRandomWord())