2017-02-16 7 views
1

「ユーザー定義変数」を繰り返したりループしたりする可能性はありますか?それはCSVデータセット(WHILE-COUNTER-CSVデータセット構成)で可能ですか?"User Defined Variable"を反復/ループする方法 - JMeterで設定する?

"ユーザ定義変数" - に含まれる変数ごとにJDBCリクエスト(Selectステートメント)を起動したいとします。それはCSVファイルでうまく動作しますが、私はどのように変数セットをループすることができないのか分かりません。それも可能ですか?私はさまざまなシナリオを持っています。ここでは、 "User Defined Variables"セットをループします。

+0

CSVデータセットの設定を使用する際の問題は分かりますか?私はすべてのUDVを反復する方法はないと考えています –

+0

複数の理由でCSVを使用したくない: - CSVの読み込みが多すぎるとテストのパフォーマンスに悪影響を与える恐れがある - 情報isn 'テストプランに集中している代わりに、私はいつも何かを探すためにCSVファイルを開く必要があります - – VolJin

答えて

2

User Defined Variables 0で反復できるようにするために

  • var_1=someValue
  • var_2=someOtherValue
  • var_3=someMoreValue
  • など:あなただけのような、単純な命名規則に従う必要があります

    1. てみましょう:あなたは、元の変数名を維持したい場合


しかし、あなたは、次の手順を使用してのForEachコントローラによって消費できるのJMeter変数の余分なセットを作成することができます

JMeter User Defined Variables

、あなたがしたい:あなたは、次のユーザー定義変数を持っていると仮定

  • スクリプトのどこかにJSR223テストエレメント(サンプラー、プリ/ポスト・プロセッサなど)を追加するForEachコントローラにその値を使用して

    import org.apache.jmeter.threads.JMeterVariables; 
    
    int counter = 1; 
    
    JMeterVariables tempVars = new JMeterVariables() 
    
    vars.entrySet().each { entry -> 
        def name = entry.getKey() 
        if (!name.equals("JMeterThread.last_sample_ok") && !name.equals("JMeterThread.pack") && !name.equals("START.HMS") && !name.equals("START.MS") && 
         !name.equals("START.YMD") && !name.equals("TESTSTART.MS")) { 
         tempVars.put("tempVar_" + counter, entry.getValue()) 
         counter++; 
        } 
    } 
    
    vars.putAll(tempVars); 
    

    スクリプトが終了した後の「スクリプト」領域に次のコードを入れて

    :あなたはのForEachコントローラは次のように構成された使用することができます - あなたがそれらを持っていたら、3以上のJMeter変数

    JMeter variables generated by groovy

  • を持つべきです

    ForEach Controller for extra variables

  • だから${current}(またはものは何でもJDBC要求

    Groovy Variables substitution

  • 学ぶためにGroovy Is the New Blackの記事を参照してくださいに "出力変数名" に入れを使用することができますJMeterテストでGroovyを使用する方法の詳細。

    +0

    さて、ありがとう!それが私にとっての解決策です! – VolJin

    -3

    ユーザー定義変数リスト内で反復することはできません。セキュリティの観点から、あなたはそれを許可すべきではありません。

    csvというファイルを使用してください。

    参照:

    +0

    ありがとうございます。わかりましたので、CSVで実装する必要があります。 CSVのデータを読み込み、読み込み情報をJMeter変数として保存する必要があるため、UDVを直接使用するJMeter変数であるため、UDVを使用する方がCSVデータセットを使用するよりも高速です。 – VolJin

    +0

    私はあなたの要点を理解していますが、ファイルが同じマシンにある場合、レイテンシを追加するとパフォーマンスが大幅に(2%未満)になることはありません。私はそれを許容可能な損失と考えています。 –

    +0

    そして、クエリ/値はcsvファイル内で更新するほうがはるかに簡単です。 –

    関連する問題