2016-12-16 17 views
0

Jmeterの1つの問題で解決策を見つけることができません。私は、テストケースの実行結果で計算された簡単なレポートのPASS/FAILを与え、その後に生成されたJTLレポートを入れることができる、私のテストプランにいくつかのロジックを入れる必要があります。例えばJmeterテスト計画概要レポートPASS/FAIL

  1. すべてのテストに合格 - テスト計画の結果を=
  2. つ以上のテストが失敗したPASS - テスト計画の結果は=
+0

あなたは集計レポート/概要レポートリスナーにエラー率のフィールドが使用可能に使用することができます。エラー%= 0の場合、渡されたすべてのテストは失敗し、それ以外の場合は失敗します。 –

答えて

0

適したオプションの大半がに、サードパーティ製のツールを使用して仮定をFAILウィット:あなたはJenkinsでJMeterのテストを実行し、パフォーマンスのプラグインを使用することができます

  • 失敗した要求の量が指定超えた場合、それは条件付きでビルドに失敗することができますしきい値

    Jenkins performance plugin

  • は、あなたがラッパーとしてTaurusツールを使用してJMeterのテストを実行することができ、それが渡されたか失敗するようにテストをマークするために、異なる基準の定義を設定することができPass/Fail Criteria Subsystem柔軟で強力です。ビルドが失敗した場合、Taurusプロセスはゼロ以外の終了コードを返します。

上記のアプローチは、あなたの質問に詳しく説明してください、どのように、どこであなたは、この「FAIL」または「PASS」の結果を見たいの説明何らかの理由で適切ではない場合。

+0

こんにちはDmitri、 ここではこの練習の主な目標は、テスト実行後メールメッセージで、テストプラン全体の結果を件名/本文として送信したいと考えています。 –

+0

最初は、JTLレポートから何らかの形で抽出して、antメールタスクを実行することができると思いました。 –

+0

この場合も、いくつかのオプションがあります。 Antが必要な場合は、[XPath Task](http://www.planetgeek.ch/2009/05/17/perform-xpath-queries-inside-ant/)を使用して失敗の数を取得し、[If Task ](http://ant-contrib.sourceforge.net/tasks/tasks/if.html)を使用してプロパティを条件付きでPASSまたはFAILに設定します。他のオプションは、[SMTPサンプラー](https://www.blazemeter.com/blog/load-testing-your-email-server-how-send-and-receive-e-mails-jmeter)を使用してJMeterから直接電子メールを送信することです)。 –

0

あなたのスレッドグループの終わりに1 BeanShellのリスナーと1 BeanShellのサンプラーを追加し、これを入れてリスナーに:

if(sampleEvent.getResult() instanceof org.apache.jmeter.protocol.http.sampler.HTTPSampleResult) 
    if (!sampleEvent.getResult().isResponseCodeOK()) 
      vars.put("res", -1); 

をそしてBSサンプラーに入れて:

  • あなたがしたい店舗の結果としてであればプロパティ:

props.put("testPlanResult", vars.get("res") != -1 ? "PASS" : "FAIL");

  • かのファイルで、あなたはしたくストア結果:
f = new FileOutputStream("/path/to/file.txt", false); 
p = new PrintStream(f); 

p.println("Result: " + (vars.get("res") != -1 ? "PASS" : "FAIL")); 

p.close(); 
f.close(); 

ここからは...あなたが作成したプロパティまたはファイル含む結果で必要な今までに何ができる

これがあなたを助けてくれることを願っています!

EDIT:

あなたが結果をファイルに書いてあれば、このインポートを追加する必要があります。

import org.apache.jmeter.services.FileServer;