1. 概要

この記事では、JenkinsApacheJMeterを使用して継続的デリバリーパイプラインを構成します。

JMeter の記事は、実行可能なパフォーマンステストがすでにいくつか構成されているため、JMeterの基本を最初に理解するための優れた出発点として信頼します。 そして、そのプロジェクトのビルド出力を使用して、Jenkins Performanceプラグインによって生成されたレポートを確認します。

2. ジェンキンスのセットアップ

まず、 Jenkins の最新の安定バージョンをダウンロードし、ファイルがあるフォルダーに移動して、 java -jarjenkins.warコマンドを使用して実行する必要があります。

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

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

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

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

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

それでは、Jenkinsのホームページに移動して[新しいジョブの作成]をクリックし、名前を指定して、フリースタイルプロジェクトを選択し、[OK]をクリックします。

次のステップでは、 General Tab で、次の一般的な詳細を使用して構成できます。
次に、構築するリポジトリのURLとブランチを設定しましょう。
次に、 Build Tab に移動して、プロジェクトのビルド方法を指定します。 ここでは、プロジェクト全体をビルドするためにMavenコマンドを直接指定する代わりに、1つのモジュールをビルドすることだけを目的としているため、パイプラインをより適切に制御するための別の方法を使用できます。

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

  • 目的のサブモジュールに移動します
  • コンパイルしました
  • springブートベースのプロジェクトであることを認識して、デプロイしました
  • アプリがポート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

次の画像に示すように:

プロジェクトがGitHubからクローン化された後、プロジェクトをコンパイルし、ポート8989で開き、パフォーマンステストを処理した後、パフォーマンスプラグインの表示結果をユーザーフレンドリーな方法で作成する必要があります。

これを行うには、専用のビルド後のアクションを追加します。 結果のソースファイルを提供し、アクションを構成する必要があります。

標準モードとそれに続く構成を選択します。

Jenkinsダッシュボードの左側のメニューで[保存]、を押して、今すぐビルド ボタンをクリックし、そこで構成した一連の操作が完了するのを待ちます。

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

左側のメニューからアクセスできるパフォーマンスレポートエリアに移動しましょう。

ここでは、現在のビルドを含む過去のすべてのビルドのレポートを作成して、パフォーマンスの違いを確認します。

表のすぐ上の表示をクリックして、最後に作成したビルドの結果のみを表示してみましょう。

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

注:パイプラインプロジェクトに同じものを適用することも、次のように簡単です。

  1. ダッシュボードから別のプロジェクト(アイテム)を作成し、たとえば JMeter-pipeline という名前を付けます(一般情報タブ
  2. プロジェクトタイプとしてパイプラインを選択します
  3. Pipeline Tab で、定義で Pipeline script を選択し、 Use GroovySandboxをチェックします。
  4. 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でApacheJMeterテストを実行および表示するための単純な継続的デリバリー環境を設定しました。 最初はフリースタイルプロジェクトを経由し、2番目はパイプラインを経由します。

いつものように、この記事のソースコードはGitHubにあります。