2017-10-12 11 views
1

mavenプラグインを使用してjmeterの機能テスト実行に関するコードカバレッジレポートを抽出しようとしています。私はjacocoプラグインを使ってコードカバレッジレポートを生成するように設定しようとしましたが、ユニットや統合テストで設定可能なようですが、Javaクラスのフォーマットになっています。 * IT.javaまたは* Test.java。しかし、私の場合、jmeterプラグインを使用して、Jmeter .jmxファイルで機能テストの実行が行われています。機能テストのコードカバレッジを取得することはごくわずかですが、誰かが同様のことに取り組んでいれば、いくつかの詳細を共有してください。以下はJmeterテストの実行に使用しているプラ​​グインです。jmeterの機能テストコードカバレッジを取得する

<plugin> 
       <groupId>com.lazerycode.jmeter</groupId> 
        <artifactId>jmeter-maven-plugin</artifactId> 
        <version>2.1.0</version> 
        <executions> 
        <execution> 
           <id>jmeter-tests</id> 
           <phase>verify</phase> 
           <goals> 
           <goal>jmeter</goal> 
           </goals> 
         </execution> 
        </executions> 
        <configuration> 
        <ignoreResultFailures>true</ignoreResultFailures> 
        <resultsDirectory>${jmeter-testresults}</resultsDirectory> 
         <propertiesUser> 
           <hostname>${jmeter-testhost}</hostname> 
           <hostport>${jmeter-testport}</hostport> 
           <testresults>${jmeter-testresults}</testresults> 
        </propertiesUser> 
         <propertiesJMeter> 
           <jmeter.save.saveservice.url>true</jmeter.save.saveservice.url> 
           <jmeter.save.saveservice.samplerData>true</jmeter.save.saveservice.samplerData> 
         </propertiesJMeter> 
       </configuration> 
      </plugin> 
+0

機能テストのためのJMeterも珍しいです。JMeterは、少なくともパフォーマンステストのためには選択肢がありませんが、なぜ機能テストに使用するのか、世界で最も便利なツールではありませんか?特にコードカバレッジが目標である場合。なぜ、通常のテストフレームワーク(junit、testngなど)を使用せず、単にそのフレームワークに機能テストを書くのでしょうか?コードカバレッジは本当に簡単です... –

+0

ここJmeterテストは、マイクロサービスのAPIテストとして使用されています。したがって、jmeterテストの実行中にテストされるAPIのコードカバレッジレポートが必要です。現時点では、私はAPIがないとの報告はなく、APIは対象外です。 APIが実行されている間にコードベースをカバーするために結果を拡張して、欠落しているケースについてより詳細な情報を得る必要があります。 – Sikandar

+0

JMeterはソースコードへの可視性がないので、JMeter側からどのようにして得られるかはわかりません。唯一の方法は、JMeterが動作している間にマイクロサービス自体にいくつかのプロファイリングツールを使用することだと思います。 –

答えて

0

git bashコマンドラインを使用してコードカバレッジを取得できます。以下はその手順です。

  • jacocoプロジェクトをhttp://www.eclemma.org/jacoco/からダウンロードしてください。 C:/ jacoco。 libフォルダにjacocoagent.jarとjacococli.jarが含まれています。

  • Open Git bash(単純なコマンドラインを使用することもできます)。

    輸出MAVEN_OPTSの= " - javaagent:C:\ jacoco \ libに\ jacocoagent.jar =出力= tcpserverの"
    MVN幹部:

    javaの-Dexec.mainClass = "メインクラスへの完全パッケージ名"それは読み、実行フローをキャプチャし、tcpserverの上taht保存することができるように

上記のコマンドは、サーバの起動時にMavenのJVMにjacocoagentを注入します。 tcpserverを出力として使用しています。ファイルモードを使用すると、実行データを取得するためにjvmを正常にシャットダウンする必要があります。 サーバーが開始されると、

MVN

コマンドを確認しますが、私のポンポンをXMLでJMeterの実行プラグインでintgratedされていることを確認を実行します。したがって、verifyコマンドがJmeterテストの実行をトリガーします。 実行データがtcpサーバに存在するので、レポートを取得するためには、実行データをjacocoファイルにダンプする必要があります。 jacoco.execファイル

Javaで実行データをダンプするコマンドの下に実行-jar C: "あなたのローカルパス/ jacoco.exec"

--destfile /jacoco/lib/jacococli.jarダンプ

これで、上記のパスでjacoco.execファイルが生成されるはずです。しかし、このデータは人間が読める形式ではありません。読み込み可能なHTML形式のレポートを生成するには、以下のコマンドを実行します。 /jacoco/lib/jacococli.jarレポート "jacocoファイル/ jacoco.execへのパスは、" 店のレポートの\ jacocoに--html「パス "のクラスファイルをプロジェクトへのパスを" --classfiles:-jar C

のjava -report "--name myReport --sourcefiles"ソースファイルへのパス "

これで、指定されたパスで生成されたHTML形式のレポートを表示できます。

Reference

関連する問題