2016-05-18 12 views
2

私はテスト計画のJMeter -

import org.apache.commons.io.FileUtils; FileUtils.cleanDirectory(new File(vars.get("OutPutFolder")));

私のテストのそれぞれの新しい実行する前に、すべての出力ファイルを削除するために、次のBeanShellスクリプトを使用してきた新しいテスト計画を実行する前に、以前に保存したファイルをクリーンアップ計画は100のユーザ(スレッド数)をループ数5で使用するスレッドグループで構成されています。

私は前述のbeanshellスクリプトを組み込むいくつかの方法を試しましたが、 in

私はすでに試してみましたの

もの:

  • 新しい「セットアップスレッドグループの作成」(チェックされている「連続して実行スレッドグループ」)BeanShellのサンプルで

    と場所スクリプト>ファイルは削除されますかしかし、結果ファイルはbeanchsellプリプロセッサで

    と場所スクリプトは>ファイルが私のメインスレッドgrouでスクリプトを置く

  • を削除されません(私のスクリプトによって再削除)ディスクに永続化されていませんP>ファイルは

  • と、コントローラを使用して

    ${__BeanShell(vars.getIteration() == 1)} && ${__threadNum} == 1

+0

問題は、ファイルを削除することによって解決しようとしている:1 - 次の実行に十分なディスク領域がないか、または2つの次のログのログが古いログのログと混在する可能性がありますか? 2つの異なる状況/ソリューション。特定のOSのためのものであるか、それともクロスプラットフォームでなければならないのでしょうか? –

+0

こんにちはキリル。私は第2の問題を解決しようとしています。これはクロスプラットフォームのソリューションでなくても、現在Linux上でjMeterを実行しています(centOS)。 – Entrodus

答えて

3

あなたの問題を解決するが、に基づいていない(私のスクリプトによって再削除)削除されますんが、結果のファイルがディスクに永続化されませんあなたのコメントは、現在のテスト結果と以前のテスト結果とを分離する能力を提供する簡単なソリューションです。

JMeterのすべてのリスナーは動的ファイルパスを受け入れることができ、使用できる動的値の1つはTESTSTART.MSプロパティです(here参照)。これはテストの実行ごとに異なります。あなたは、出力ファイルの名前でそのプロパティを使用することができ、実行のためのユニークな各出力ファイル(またはレポート)の名前を作るためにそう

your/path/${TESTSTART.MS}_errors.csv 

あなたも、サブフォルダを作成することができますこのように、特定の実行のための出力ファイルの設定保持:

your/path/${TESTSTART.MS}/name1.ext 
your/path/${TESTSTART.MS}/name2.ext 

名が衝突したことがないそうすれば、それらが実行によってグループ化されている(同実行からすべてのファイルが同じタイムスタンプを持つことになりますので、あなたは、フィルタリングすることができますそれら)。その上で

、Linux上で古いJMeterのログを圧縮するlogrotateを使用することができます(そして、彼らはただのテキストファイルされているので、彼らはうまくジップ)は

+0

十分に文書化されたソリューションをお寄せいただきありがとうございます。ターゲットディレクトリが存在しない場合、 "ファイルへのレスポンスの保存"サンプラーが機能しないため、いくつかのディレクトリを動的に作成するためにBeanShellスクリプトを追加する必要がありました。それは私が探していた解決策ではありませんが、確かに新しいテスト計画を実行する前にファイルを手動で削除する必要はありません。 – Entrodus