2016-06-26 26 views
1

次のように経過時間を計算しようとしました。私はBeanshell Post Processorにこのようなコードを追加しました(StackOverflowの別のスレッドの礼儀で)。 sampler1JMeterの2つのHTTPサンプラー間の経過時間を計算する方法

long request1 = prev.getTime(); 
    vars.put("sampler1", String.valueOf(request1)); 

そしてサンプラー2のために

私はを追加しました。

long request2 = prev.getTime(); 
vars.put("sampler2", String.valueOf(request2)); 
long request1 = Long.parseLong(vars.get("sampler1")); 
long request2 = Long.parseLong(vars.get("sampler2")); 
long delta = (request1 - request2); // calculate difference 
log.info("Time difference is: " + delta + " ms"); 

、次のように同じデルタは.CSVファイルに取り込まれています。

FileOutputStream out = new FileOutputStream("delta.csv", true); 
out.write((String.valueOf(delta)).getBytes("UTF-8")); 
out.write(System.getProperty("line.separator").getBytes("UTF-8")); 
out.flush(); 
out.close(); 

私は、単一の行CSVファイルの値を得ますか。

しかし、サンプル変数を使用してこれらの値をキャプチャし、別のCSVファイルでキャプチャしている他のサンプル変数にマップする方法を探しています。

誰かがこれを行う手段を提供できるかどうか、感謝します。

+0

申し訳ありません私は私の質問にコードを追加するために4つのスペースを与えましたが、なぜそれが取られないのか分かりません。 – Santana

答えて

2

代わりに、Beanshellを使用して別のCSVファイルに変数を書き込む代わりに、Sampler Variablesプロパティを使用してください。

  1. 第二ポストプロセッサの最後に次の行を追加します。

    vars.put("delta", String.valueOf(delta)); 
    
  2. user.propertiesファイルに次の行を追加します(JMeterのの "ビン" フォルダに住んでいる)

    sample_variables=delta 
    

次回JMeterを再起動すると、「d .jtl結果ファイルの "elta"変数値。サンプルの変数プロパティを設定する別のアプローチは、-Jコマンドライン引数を経由して、それを渡している

jmeter -Jsample_variables=delta,somethingelse -n -t testplan.jmx -l results.jtl 

が設定し、このおよびその他のJMeterプロパティをオーバーライドし、使用してより多くの情報のためApache JMeter Properties Customization Guideを参照してください。

これにはFlexible File Writerを使用することもできます(まだサンプル変数が必要です)。

+0

ありがとう!素晴らしいヒント!期待どおりにすべての値を取得できますが、同じresults.jtlファイルを使用してPerfMonリスナーにアップロードすると、results.jtlファイルにいくつかのエラーが表示されるため、グラフが表示されません。同じものを他のリスナーにアップロードすることもできます。 PerfMonリスナーを非GUIモードで個別に取得する方法はありますが、他のリスナーに対してはresults.jtlファイルを保持してください。 – Santana

+0

はい、ブラウザのテキストボックスに新しいファイルをポイントするだけで、PerfMonの結果を別のファイルに保存する方法が見つかりました。ありがとう – Santana

関連する問題