25

私は過去にこれをすでに行ったことがあると確信していますが、どういうわけか私はその方法を理解できません;-)だから、ここに私の問題があります:

特定のパラメーターを変更することにより、反復ごとに 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
...

テスト計画の識別子の値をグローバルに構成し、次のように HTTP 要求サンプラー内で使用したいと考えています。

Path: /test/foo.html?id=${categoryId}

ここでの質問: 識別子の値をグローバルに構成するにはどうすればよいですか (私はを使用したくありませんStringFromFile)、サンプラーでそれらを参照するにはどうすればよいですか?

4

4 に答える 4

20

これを行うにはいくつかの方法があります。

値の配列がある場合、次のことができます。

  • ユーザー/ループごとに 1 つのエントリを作成して、プリプロセッサの"User Parameters"を試してください。
  • Beanshell スクリプトを使用して配列を作成し、ランダムに選択して変数に入力します

リストしたとおりにそれらを参照します。${varName}

于 2011-06-15T14:42:15.400 に答える
19

の実装について${__StringFromArrayAtRandomIndex('3', '2', '54', '42')}

たとえば、 BeanShell Sampler / BeanShell PostProcessorを少しのコードで使用して、シナリオを簡単に実装できるとします。

例えば:

  • ソース変数を設定します (たとえばUser Defined Variablesを介して):

    名前 値          
    カテゴリ 3,2,54,42,37
    

    (つまり、コンマを区切り文字として使用し、コンマの前後にスペースを入れないでください)。

  • 次のコードで add BeanShell Sampler/PostProcessor を使用します。

    java.util.Random をインポートします。
    
    String[] カテゴリ = (vars.get("カテゴリ")).split(",");
    
    int idx = new Random().nextInt(categories.length);
    文字列カテゴリ = (カテゴリ [idx]);
    
    vars.put("categoryId", カテゴリ);
    
  • スクリプトでさらにランダムに選択されたフォーム リストの値を として参照し${categoryId}ます。
于 2013-02-04T23:09:39.520 に答える
16

リストから確率変数値を取得するには、最初にユーザー変数としてリストまたは使用可能な値をプレフィックスとインクリメンタル インデックスと共に宣言します。

country_1     Spain 
country_2     France  
country_3     Portugal  
country_4     Italy 
country_5     England

次に、プレフィックスを間隔内のランダムなインデックスと連結するリストからランダムな値を取得できます。

${__V(country_${__Random(1,6,)})}  --> "Spain", "France", "Portugal", etc...

完全な説明については、この回答をご覧ください

于 2015-12-11T17:45:29.347 に答える
0

変数を使用しない最も簡単なソリューションは、次を使用して実行できますvars.getIteration()

/test/foo.html?id=${__groovy(vars.getIteration())}
于 2017-09-11T10:36:31.353 に答える