Noga Cohen is a Sr. Product Marketing Manager for CA BlazeMeter. She manages the BlazeMeter blog and other content activities. Noga focuses on creating technological content in the fields of performance, load testing and API testing, both independently and by managing writers who are developers. Noga has more than 5 years of experience in a wide scope of writing techniques: hi-tech, business, journalist and academic.

Learn JMeter in 5 Hours

Start Learning
Slack

Test Your Website Performance NOW!

arrow Please enter a valid URL

パフォーマンス テスト、ロード テスト、ストレス テスト

開発者、QA エンジニア、または DevOps 担当者は、コードを変更したり機能を追加したりするたびに、それがシステムに不具合が発生することなく動作することを確認するために、さまざまな種類のパフォーマンス テストを実施する必要があります。

 

しかし、どの種類のパフォーマンス テストを実施すればよいのでしょうか。ロード テストとその他の種類のテストの違いは何でしょうか。そして、それぞれの状況によって、どのテストが適しているでしょうか。このブログ記事では、これらの質問や、その他の質問に対する答えを示します。

 

パフォーマンス テストとは

 

パフォーマンス テストは、システムの動作とパフォーマンスをチェックするテストの総称です。パフォーマンス テストでは、ソフトウェアとインフラストラクチャの応答性、安定性、拡張性、信頼性、処理速度、およびリソース使用量を調べます。さまざまな種類のパフォーマンス テストによって提供される、さまざまなデータについて詳しく説明します。

 

テストを実行する前に、システムのビジネス目標を決めることが重要です。目標が決まっていれば、顧客のニーズに対してシステムが満足できる状態で稼働しているかどうかを判断することができます。

 

パフォーマンス テストの実行後、仮想ユーザ数、1 秒あたりのヒット数、1 秒あたりのエラー数、応答時間、レイテンシ、1 秒あたりのビット数(スループット)などのさまざまなKPI と、KPI 間の相関関係を分析できます。レポートを通じてボトルネック、バグおよびエラーを特定し、どのような対処が必要かを決定できます。

 

パフォーマンス テストを使用すべき場合

 

サーバ、データベース、ネットワークなどに加えて Web サイトのパフォーマンスとアプリのパフォーマンスをチェックする場合、ウォーターフォール手法の使用時は、少なくとも、1 つのバージョンをリリースするたびに実施します。シフト レフトを採用してアジャイルで進める場合は、継続してテストする必要があります。

 

CA BlazeMeter でのパフォーマンス テスト レポートの例を次に示します。このテストの結果は良好です。ユーザ数が増加しても応答時間に影響はなく、エラー率は低く維持され、1 秒あたりのヒット数はユーザ数に応じて上昇していますが、安定を保っています。

 

CA BlazeMeter でのパフォーマンス テスト レポート

 

ロード テストとは

 

ロード テストとは、非常に多くの仮想ユーザが特定の期間に同時にトランザクションを実行したとき、システムがどのように機能するかをテストすることです。言い換えると、システムが大量の負荷をどのように処理するかということです。数種類あるオープン ソースのロード テスト ツールの中で、JMeter が最もよく使われています。

 

ロード テストを使用すべき場合

 

システムがどれだけのユーザ数に対応できるかを確認したい場合。システムの異なる部分に焦点を当てたさまざまなユーザ シナリオを確認できます(Web サイトやアプリのチェックアウト Web ページの Web ロード テストなど)。また、ユーザがどこからアクセスしているか(地理的な場所)や、システム内で負荷がどのように発生し、持続するかを確認できます。基本的にロード テストは、システムが常に期待どおりに稼働していることを確認するために常時行う必要があるものです。この理由のため、JenkinsTaurus のようなツールを使用して継続的なインテグレーション サイクルに統合する必要があります。

 

JMeter でのロード テストの様子を以下に示します。このテストでは、ユーザ数が 1,000 になるまで 30 秒おきに 100 ユーザを追加します。各ステップは完了に 30 秒かかり、JMeter は次のステップを開始する前に 30 秒待機します。スレッド数が 1,000 に達した後、すべてのスレッドが実行を継続し、5 分間同時にサーバにアクセスします。

 

jmeter でのロード テスト レポート

 

ストレス テストとは

 

ストレス テストは、極端な負荷をかけてシステムの上限値をチェックするテストです。このテストでは、負荷の高い状況でのシステムの挙動と、通常の使用量に戻ったときの回復状況(たとえば、スループットや応答時間などの KPI が回復前と同じかどうか)を調べます。ストレス テストでは、KPI のロード テストに加えてメモリ リーク、速度低下、セキュリティ問題、データ破損についても調べます。

 

ストレス テストを実行するには、ロード テスト ツールで同時仮想ユーザ数が非常に多いテスト ケースを定義します。ストレス テストに仮想ユーザ数の突発的な上昇が含まれている場合、そのテストはスパイク テストと呼ばれます。負荷を少しずつ増やして時間の経過に伴うシステムの持続可能性を調べる長時間のストレス テストを行う場合、そのテストはソーク テストと呼ばれます。

 

ストレス テストを使用すべき場合

 

Web サイトのストレス テストとアプリのストレス テストは、ブラック フライデーや人気の高いコンサートのチケット販売、選挙などの大きなイベントの前に重要になるテストです。しかし、システムの耐久性を把握するため、ときどきストレス テストを実施することをお勧めします。そうすれば、予想外のトラフィック急上昇に対して常に備えることができ、より多くの時間とリソースをボトルネックの解決に投じることができます。

 

JMeter でのスパイク テストの例を次に示します。このテストでは、一度に 7,000 ユーザを追加した後、10,000 ユーザに達するまで 30 秒おきに 500 ユーザを追加します。スレッド数が 10,000 に達した後、すべてのスレッドが実行を継続して実行し、5 分間同時にサーバにアクセスします。

 

jmeter でのスパイク テスト レポート

 

異なる複数種類のパフォーマンス テストを使用することで、存在する問題を常に把握し、対処方法を計画することができます。そのため、すべての種類のテストを継続的に実施してください。

 

JMeter の使用方法については、無料のウェビナー「JMeter Load Testing at Scale (大規模な JMeter ロード テスト)」とブログをご覧ください。JMeter は CA 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.