JMeterテストを実行して表示するようにJenkinsを設定する

1概要

この記事では、https://jenkins.io/[Jenkins]およびhttps://jmeter.apache.org/[Apache JMeter]を使用して継続的配信パイプラインを構成します。

JMeterの基本を最初に理解するための出発点としては、リンク:/jmeter[JMeter]の記事を参考にしてください。実行できるテストは既にいくつか構成されています。そして、そのプロジェクトのビルド出力を使って、Jenkins https://wiki.jenkins.io/display/JENKINS/Performance Plugin[Performance]プラグインによって生成されたレポートを確認します。

2 Jenkins の設定

まず最初に、https://jenkins.io/download/[Jenkins]の最新安定版をダウンロードし、ファイルがあるフォルダに移動して java -jar jenkins.war コマンドを使用して実行する必要があります。

初期のユーザー設定なしではJenkinsを使用できないことに注意してください。

3パフォーマンスプラグインのインストール

JMeterテストの実行と表示に必要な Performance プラグインをインストールしましょう。

それでは、インスタンスを再起動することを忘れないでください。

4 Jenkins でJMeterテストを実行する

それでは、Jenkinsのホームページに移動して[create new jobs]をクリックし、名前を指定して[Freestyle project]を選択し、[OK]をクリックします。

次のステップの General Tab では、次の一般的な詳細情報を使って設定できます。

リンク:/uploads/General info image-1024x463.png%201024w[]

次に、リポジトリのURLとブランチをbuildに設定しましょう。

リンク:/uploads/Source code mangement-1024x493.png%201024w[]

それでは Build Tab に行き、プロジェクトのビルド方法を指定します。ここではプロジェクト全体をビルドするためにMavenコマンドを直接指定する代わりに、単に1つのモジュールをビルドすることを目的としているため、パイプラインをより適切に制御するための別の方法をとることができます。

Executeシェル サブタブ では、リポジトリのクローンが作成された後に必要なアクションを実行するスクリプトを作成します。

  • 希望のサブモジュールに移動します

  • まとめました

  • これはスプリングブートベースのプロジェクトであることを認識して、展開しました

  • アプリがポート8989で利用可能になるまで待ちます

  • 最後に、JMeterスクリプトの両方のパスを指定するだけです。

パフォーマンステストに使用する( jmeter モジュールのリソースフォルダー内にあります)結果リソースファイル( JMeter.jtl )のパスもリソースフォルダー内にあります

これは、対応する小さなシェルスクリプトです。

cd jmeter
./mvnw clean install -DskipTests
nohup ./mvnw spring-boot:run -Dserver.port=8989 &

while ! httping -qc1 http://localhost:8989 ; do sleep 1 ; done

jmeter -Jjmeter.save.saveservice.output__format=xml
  -n -t src/main/resources/JMeter.jmx
    -l src/main/resources/JMeter.jtl

次の図に示すように

リンク:/uploads/Build__command-1024x383.png%201024w[]

プロジェクトがGitHubから複製された後、それをコンパイルし、ポート8989で開いてパフォーマンステストを処理した後、パフォーマンスプラグインの表示をユーザーフレンドリーな方法で行う必要があります。

専用の Post-build Actions を追加することでそれを実現できます。結果のソースファイルを提供し、アクションを設定する必要があります。

リンク:/uploads/Publish performance testresult__1-1024x268.png%201024w[]

以降の設定で Standard Mode を選択します。

リンク:/uploads/Publish performance testresult__2-1024x488.png%201024w[]

Jenkinsダッシュボードの左側のメニューで[保存]をクリックし、[今すぐ購入]ボタン をクリックして、設定した一連の操作が完了するのを待ちます。

終了したら、コンソールにプロジェクトのすべての出力が表示されます。最後に、 Finished:SUCCESS または Finished:FAILURE のいずれかになります。

リンク:/uploads/Failed__build-1024x525.png%201024w[]

左側のメニューから エリアにアクセスしましょう。

ここでは、パフォーマンスの面での違いを見るために、現在のものを含む過去のすべてのビルドのレポートを用意します。

リンク:/uploads/Performance test report-1024x526.png%201024w[]

最後のビルドの結果だけを表示するには、表のすぐ上にある表示をクリックしましょう。

リンク:/uploads/Performance test report__last-1024x528.png%201024w[]

私たちのプロジェクトのダッシュボードから、最後のビルド結果を示す他のグラフである パフォーマンストレンド を得ることができます。

リンク:/uploads/Performance__trend-1024x528.png%201024w[]

注: Pipelineプロジェクト に同じことを適用するのも簡単です。

  1. ダッシュボードから別のプロジェクト(アイテム)を作成して名前を付けます.

例えば Jメーター - パイプライン 一般情報Tab ) 。プロジェクトタイプとして Pipeline を選択します

  1. Pipeline Tab で、定義上の Pipeline script を選択します.

そしてGroovy Sandboxを使う をチェックしてください 。 script__領域に、以下の行を記入するだけです。

node {
    stage 'Build, Test and Package'
    git 'https://github.com/eugenp/tutorials.git'

    dir('jmeter') {
        sh "./mvnw clean install -DskipTests"
        sh 'nohup ./mvnw spring-boot:run -Dserver.port=8989 &'
        sh "while ! httping -qc1
          http://localhost:8989 ; do sleep 1 ; done"

        sh "jmeter -Jjmeter.save.saveservice.output__format=xml
          -n -t src/main/resources/JMeter.jmx
            -l src/main/resources/JMeter.jtl"
        step([$class: 'ArtifactArchiver', artifacts: 'JMeter.jtl'])
        sh "pid=\$(lsof -i:8989 -t); kill -TERM \$pid || kill -KILL \$pid"
    }
}

このスクリプトは、プロジェクトのクローンを作成することから始まり、ターゲットモジュールに入り、コンパイルして実行して、アプリがhttp://localhost:8989でアクセス可能であることを確認します。

次に、リソースフォルダーにあるJMeterテストを実行し、結果をビルド出力として保存して、最後にアプリケーションを閉じます。

5結論

この簡単な記事では、2つの方法で Jenkins でApache JMeter テストを実行および表示するための単純な継続的デリバリー環境をまとめました。最初は Freestyleプロジェクト を介して、次に Pipeline を介して。

いつものように、この記事のソースコードはhttps://github.com/eugenp/tutorials/tree/master/jmeter[over on GitHub]にあります。

前の投稿:Springアプリケーションのクラスパスからファイルにアクセスする
次の投稿:Javaのデコレータパターン