JMeterテストを実行および表示するためのJenkinsの構成
1. 概要
この記事では、JenkinsとApache JMeterを使用して継続的デリバリーパイプラインを構成します。
実行できるパフォーマンステストがすでにいくつか構成されているため、最初にJMeterの基本を理解するための優れた出発点として、JMeterの記事を信頼します。 そして、そのプロジェクトのビルド出力を使用して、JenkinsPerformanceプラグインによって生成されたレポートを確認します。
2. Jenkinsのセットアップ
まず、Jenkinsの最新の安定バージョンをダウンロードし、ファイルがあるフォルダーに移動して、java -jar jenkins.warコマンドを使用して実行する必要があります。
ユーザーの初期設定なしではJenkinsを使用できないことに注意してください。
3. パフォーマンスプラグインのインストール
4. JenkinsでJMeterテストを実行する
それでは、Jenkinsのホームページに移動して[新しいジョブを作成]をクリックし、名前を指定して、Freestyle projectを選択し、[OK]をクリックします。
次のステップでは、GeneralTabで、次の一般的な詳細を使用して構成できます。
次に、構築するリポジトリのURLとブランチを設定しましょう。
次に、BuildTabに移動して、プロジェクトのビルド方法を指定します。 ここでは、プロジェクト全体をビルドするためにMavenコマンドを直接指定する代わりに、1つのモジュールをビルドするだけであるため、パイプラインをより適切に制御する別の方法を使用できます。
Execute shell **Sub-tabで、リポジトリのクローンが作成された後に必要なアクションを実行するスクリプトを記述します。
-
目的のサブモジュールに移動します
-
コンパイルしました
-
スプリングブートベースのプロジェクトであることを認識して、デプロイしました
-
アプリがポート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で開き、パフォーマンステストを処理した後、パフォーマンスプラグインをユーザーフレンドリーな方法で結果を表示する必要があります。
専用のPost-build Actionsを追加することでそれを行うことができます。 結果のソースファイルを提供し、アクションを構成する必要があります。
後続の構成でStandard Modeを選択します。
Jenkinsダッシュボードの左側のメニューでSave,を押して、ボタンBuild Now **をクリックし、そこで構成した一連の操作が完了するのを待ちます。
完了すると、プロジェクトのすべての出力がコンソールに表示されます。 最後に、Finished: SUCCESS **またはFinished: FAILUREのいずれかを取得します。
左側のメニューからアクセスできるPerformance Report **領域に移動しましょう。
ここでは、現在のビルドを含む過去のすべてのビルドのレポートを作成して、パフォーマンスの違いを確認します。
表のすぐ上の表示をクリックして、最後に作成したビルドの結果のみを表示します。
プロジェクトのダッシュボードから、Performance Trendを取得できます。これは、最後のビルド結果を示す他のグラフです。
注:同じことをPipeline projectに適用することも、次のように簡単です。
-
ダッシュボードから別のプロジェクト(アイテム)を作成し、たとえば(General info Tab)のようにJMeter-pipelineという名前を付けます。
-
プロジェクトタイプとしてPipelineを選択します
-
PipelineTabで、定義でPipeline script **を選択し、Use 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つの方法でApacheJMeterテストをJenkinsで実行および表示するための単純な継続的デリバリー環境を設定しました。最初はFreestyle projectを介して、2番目はPipelineを介して。
いつものように、この記事のソースコードはover on GitHubにあります。