Dmitri Tikhanski is a Contributing Writer to the BlazeMeter blog.

Learn JMeter in 5 Hours

Start Learning
Slack

Test Your Website Performance NOW!

arrow Please enter a valid URL
Mar 03 2016
En

継続的なインテグレーション 101: Jenkins で JMeter を実行する方法

継続的インテグレーションはなぜ重要なのか

 

開発者は、新しい機能に取り組んだり、障害を修正したりするときに、以前には完璧に動作していたほかのソフトウェアの部分にそれらの変更が悪影響を及ぼさないようにする必要があります。プロセスの効率を最大限に高めるには、プロセスを無人化する必要があります。

 

CI (Continuous Integration、継続的インテグレーション)システムは、ソフトウェア ビルド、テスト、および展開のプロセスを統合することにより、これらのすべてを促進します。CI システムの機能は短く言えば次のようになります。

 

  1. ソース コード リポジトリの監視

  2. コードの変更が検出されたときのビルドの実行

  3. コンパイルされたソフトウェアに対するテスト(単体、受け入れ、自動化、パフォーマンス、統合など)の実行

  4. アーティファクト(バイナリ、ドキュメント、インストール パッケージなど)の生成

 

CI システムがソフトウェア開発企業で広く採用されているのも不思議ではありません。実際に、継続的インテグレーションは現代のソフトウェア開発ライフ サイクルにとって欠かせない要素になりました。

 

 

CI システムをワークフローに実装するだけで、ジョエル・スポルスキ氏が提唱する、より良いコードのための 12 ステップのうちの最初の 3 つの項目が満たされます。知らない方のために、それらを次に挙げておきます。

 

  1. ソース コントロールを使用しますか。

  2. ビルドを 1 つのステップで作成できますか。

  3. デイリー ビルドを作成しますか。

 

CI プロセスでパフォーマンス テストが重要である理由

 

新しい機能を追加したり、製品のバグを修正したりすると、パフォーマンスが低下する可能性がありますが、CI スコープにパフォーマンス テストを追加することにより、そのようなリスクを軽減できます。

 

例: 最近のコミットにより応答時間が許容しきい値または SLA を超えてしまった場合に、CI システムは「赤いフラグ」を自動的に設定して、そのビルドを「failed」としてマークします。これにより、問題の原因(および責任がある人物)をとても簡単に特定できるようになります。

 

この他にも、パフォーマンス テストを実行し始めるのはソフトウェア開発の初期段階である方がはるかに良いということが挙げられます。プリリリースの段階で重大なエラーを見つけたら、問題の特定と修正がより困難になります。

 

今回は、JMeter のパフォーマンス テストを Jenkins Continuous Integration ビルドに追加する方法について説明します。今回のデモのために選んだツールは、パフォーマンス テストと継続的インテグレーションの主要なツールです。これらのツールがオープン ソースであり、極めて多くの人々に利用されているということは、これらのツールにはしっかりしたドキュメントと、質問を投げかけることができる大規模でアクティブなコミュニティがあるということを意味します。

 

パフォーマンス テストと継続的インテグレーションの組み合わせについて詳しく知りたい場合は、当社のオンデマンド Web キャスト「How to Build Testing Into Your CI Pipeline (CI パイプラインにテストを組み込む方法)」を視聴してください。この Web キャストでは、特別ゲストとしてお迎えした MIT の DevOps エンジニアが、CI プロセスにテストをどのように追加して予期しないパフォーマンスの問題をなくしたのかを詳しく説明してくださいます。

 

Jenkins と JMeter のプラグインをインストールする方法

 

この記事では、読者がどこかで Jenkins をすでに利用していると仮定します。Jenkins を試してみたい場合は、簡単に入手できます。インストール方法は次のとおりです。

 

1. Jenkins の最新リリースを https://jenkins-ci.org/ サイトからダウンロードします(注: .war ファイルで十分だと思います)。
 

Jenkins JMeter プラグイン

 

2. java -jar jenkins.war を使用して Jenkins を実行して、「Jenkins is fully up and running」メッセージを待ちます。

Jenkins 実行中

 

3. 好きなブラウザで、http://localhost:8080 URL を開きます。

 

4. これで Jenkins ダッシュボードが表示されるはずです。

 

Jenkins で JMeter がサポートされるようにするには、パフォーマンス プラグインを使用する必要があります。繰り返しますが、このプラグインのインストールは本当に簡単です。インストール方法は次のとおりです。

 

  1. Performance Plugin]ページから、プラグインの最新バージョンをダウンロードします。

  2. performance.hpi ファイルを Jenkins のインストールの plugins フォルダにコピーします。.war ファイルから Jenkins を実行する場合は、.jenkins plugins パスのユーザ ホーム フォルダにプラグインをドロップします。

  3. Jenkins を再起動すると、プラグインがピックアップされます。

  4. すべてが正常であれば、[Jenkins]-[Your Project]-[Configure]-[Add post-build action]に[Publish Performance Test Result Report]オプションが表示されるはずです。


Jenkins パフォーマンス レポート

 

Jenkins で JMeter テストを実行する方法

 

Jenkins で JMeter テストを実行するのは、それほど複雑ではありません。テストを非 GUI モードで実行する必要があることだけを覚えておいてください(非 GUI モードでの JMeter テストの実行の詳細については、この記事を参照してください)。

 

初めの数回の実行では、XML 形式で結果を保存するように JMeter に「指示」することをお勧めします。それには、次のいずれかの方法を利用してください。

 

  1. jmeter.save.saveservice.output_format=xml 行を user.properties ファイルに追加する(これは JMeter インストールの /bin フォルダにあります)

  2. C:\jmeter\bin\jmeter.bat -Jjmeter.save.saveservice.output_format=xml -n -t C:\jmeter\extras\Test.jmx -l Test.jtl といった -J コマンド ライン引数を使用して、プロパティを渡す

 

パフォーマンス プラグインに CSV ファイルを使用することもできます。ただし、XML ファイルは追加設定なしで正常に動作しますが、CSV ファイルには追加の設定が必要です。

 

JMeter テストを実行するように Windows のバッチ コマンドを設定するときの画面は次のようになります。


JMeter テストの実行

 

実行が成功したことを確認するには(または、問題に関する追加情報を得るには)、該当するプロジェクトの[Console Output]タブを確認します。


Jenkins コンソール出力

 

JMeter ログ ファイルと .jtl 結果ファイルはプロジェクトの[Workspace]に表示されます。


Jenkins ワークスペース

 

パフォーマンス プラグインを使用する方法

 

パフォーマンス プラグインは統計とトレンドを表示します。パフォーマンス プラグインを使用して、ビルドを結果に基づいて failed としてマークすることもできます。

 

追加方法は次のとおりです。

 

  1. Jenkins プロジェクトを開きます。

  2. [Configure]ボタンをクリックします。

  3. [Add post-build action]ボタンをクリックします。

  4. 次のように選択します。

- 結果ファイルが XML 形式の場合は、[JMeter]

- 結果ファイルが CSV 形式の場合は、[JMeterCSV]


Jenkins パフォーマンス テスト レポート

 

[Report Files]は、ここでの主な設定オプションです。これは、プラグインが JMeter の結果ファイルをスキャンするパスです。この形式は Ant ファイル セット include/exclude 形式に一致し、プロジェクトの Jenkins ワークスペースに関連します。

 

ここでの設定のその他のすべての名前は、ほとんど説明不要です。

 

プラグインが有効になっている最初のビルドでは、[Performance Trend]に空のチャートが表示されます。


Jenkins パフォーマンス トレンド

 

ビルドをさらに作成するにつれて、チャートは変わります。チャートには、平均値、中央値、90% 値、およびエラー数が表示されます。このチャートはクリックすることができ、実行された各サンプラの詳細な情報を得ることができます。

 

JMeter テストへの Jenkins パラメータの引き渡し

 

Jenkins では、ビルド パラメータを指定することができます。例: [Configure]ページで[This build is parametrized]ボックスをオンにすると、いくつかのパラメータ名をデフォルト値と共に設定することができます。

 

Jenkins パラメータ

 

つまり、.JMX スクリプトまたは Ant または Maven の設定を変更せずに、JMeter テストの設定を実行することができます。

 

たとえば、名前「foo」と値「bar」を使用してパラメータを定義する場合は、次のように記述できます。

 

  • %foo% - Jenkins ビルドが Windows マシンで実行される場合

  • $foo - Jenkins ビルドが Linux、Unix、または MacOSX マシンで実行される場合

 

JMeter スレッド数を設定して JMeter Windows バッチ コマンド テキストからアクセスする例を次に挙げますので、見てみましょう。


Jenkins 文字列パラメータ

 

 

ビルドをもう一度実行してから[Console Output]を見て、関連パラメータ値に基づいて %threads% スレッド変数が変更されていることを確認します。


Jenkins コンソール出力

 

おめでとうございます。これで Jenkins で JMeter を使い始める準備ができました。BlazeMeter ユーザは、BlazeMeter の Jenkins プラグインを使用して、直接 Jenkins から BlazeMeter クラウドのテストをキックオフすることができます。

 

詳細を知るには

 

MIT の DevOps エンジニアを特別ゲストとしてお迎えした、当社のオンデマンド Web キャスト「How to Build Testing Into Your CI Pipeline (CI パイプラインにテストを組み込む方法)」を視聴してください。

 

継続的インテグレーションと継続的デリバリ プロセスにテストを進化させる方法の詳細について、録画された Web キャストを視聴することもできます。

 

詳細については、ここから Web キャストをオンラインで視聴してください。

 

Jenkins パイプラインで JMeter と Taurus を利用したパフォーマンス テストの自動化の詳細については、ボストンニューヨークで開催される当社のミートアップに参加してください。ボストンでの開催は 5 月 23 日、ニューヨークでの開催は 5 月 25 日です。

 

一対一のデモセッションを予約いただくと、BlazeMeter の機能について説明を受けることができます。

     
arrow Please enter a valid URL

Interested in writing for our Blog?Send us a pitch!

We're working on starting your first test

Testing 20 Virtual Users

Starting your test in around 2-4 minutes. Your report will appear once we've gathered the data.

0

Status: Preparing Your Test

Your email is required to complete the test. If you proceed, your test will be aborted.