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-1024×463.png%201024w[]

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

リンク:/uploads/Source

code

mangement-1024×493.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-1024×383.png%201024w[]

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

専用の

Post-build Actions

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

リンク:/uploads/Publish

performance

testresult__1-1024×268.png%201024w[]

以降の設定で

Standard Mode

を選択します。

リンク:/uploads/Publish

performance

testresult__2-1024×488.png%201024w[]

Jenkinsダッシュボードの左側のメニューで[保存]をクリックし、[今すぐ購入]ボタン


をクリックして、設定した一連の操作が完了するのを待ちます。

終了したら、コンソールにプロジェクトのすべての出力が表示されます。最後に、

Finished:SUCCESS



または

Finished:FAILURE

のいずれかになります。

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

左側のメニューから


エリアにアクセスしましょう。

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

リンク:/uploads/Performance

test

report-1024×526.png%201024w[]

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

リンク:/uploads/Performance

test

report__last-1024×528.png%201024w[]

私たちのプロジェクトのダッシュボードから、最後のビルド結果を示す他のグラフである

パフォーマンストレンド

を得ることができます。

リンク:/uploads/Performance__trend-1024×528.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]にあります。