私は過去にこれをすでに実行したと確信していますが、どういうわけか私は方法を理解することができません;-)それで、ここに私の問題があります:
特定のパラメーターを変更することにより、HTTPリクエストが反復ごとに変更されるJUnitテスト計画を作成しようとしています。したがって、たとえば5回の反復で、次のHTTPリクエストを実行します。
http://localhost:8080/test/foo.html?id=1
http://localhost:8080/test/foo.html?id=2
http://localhost:8080/test/foo.html?id=3
http://localhost:8080/test/foo.html?id=4
...
テスト計画のID値をグローバルに構成し、次のようにHTTPリクエストサンプラー内で使用します。
Path: /test/foo.html?id=${categoryId}
質問:識別子の値をグローバルに設定するにはどうすればいいですか(notを使用したいですStringFromFile
)、サンプラーでそれらをどのように参照しますか?
これを行うにはいくつかの方法があります。
あなたができる値の配列があるとすると:
リストしたとおりにそれらを参照します:${varName}
${__StringFromArrayAtRandomIndex('3', '2', '54', '42')}
の実装について。
たとえば、次のようにしてシナリオを簡単に実装できるとします。 BeanShell Sampler / BeanShell PostProcessor 少しのコード。
例えば。:
ソース変数を設定します(例: ユーザー定義変数 ):
名前の値 カテゴリ3,2,54,42,37
(つまり、区切り文字としてコンマを使用し、コンマの前後にスペースを入れないでください)。
次のコードでadd BeanShell Sampler/PostProcessorを使用します。
import Java.util.Random; String [] categories =(vars.get( "categories"))。split( "、"); int idx = new Random()。nextInt(categories.length); String category =(categories [idx]); vars.put( " categoryId "、category);
${categoryId}
として参照します。リストからランダムな変数値を取得するには、最初にユーザー変数としてリストまたは使用可能な値をプレフィックスと増分インデックスで宣言します。
country_1 Spain
country_2 France
country_3 Portugal
country_4 Italy
country_5 England
次に、リストからプレフィックスと間隔のランダムなインデックスを連結したリストからランダムな値を取得できます。
${__V(country_${__Random(1,6,)})} --> "Spain", "France", "Portugal", etc...
完全な説明については この答え をご覧ください。
変数なしの最も単純なソリューションは、vars.getIteration()
を使用して実行できます。
/test/foo.html?id=${__groovy(vars.getIteration())}