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-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プロジェクト
に同じことを適用するのも簡単です。
-
ダッシュボードから別のプロジェクト(アイテム)を作成して名前を付けます.
例えば
Jメーター – パイプライン
(
一般情報Tab
)
。プロジェクトタイプとして
Pipeline
を選択します
-
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]にあります。