負荷テスト
From Wikipedia, the free encyclopedia
負荷テスト(ふかテスト、英: load testing)は、システムに負荷を与え、その応答を測定する手順のこと。
ソフトウェア負荷テスト
負荷テストという用語は、プロのソフトウェアテスト業界ではさまざまな方法で使用される。負荷テストとは、一般に、プログラムに同時にアクセスする複数のユーザーをシミュレートすることにより、ソフトウェアプログラムの予想される使用法をモデル化する方法を指す[1]。 そのため、このテストはマルチユーザーシステムに最も関連性があります。多くの場合、ウェブサーバーなどのクライアント/サーバーモデルを使用して構築されたものである。ただし、他のタイプのソフトウェアシステムも負荷テストを行うことができる。たとえば、ワードプロセッサやグラフィックエディタは、非常に大きなドキュメントを強制的に読み取ることができる。または、財務パッケージは、数年分のデータを含むレポートを生成することがある。負荷テストを最も正確に行うには、理論的・分析的なモデリングを使用するテストとは反対に、実際の利用環境を模倣してテストを行う。
負荷テストでは、実際の顧客の行動に基づいてウェブサイトのサービス品質(QOS)のパフォーマンスを測定する。ほぼすべての負荷テストツールとフレームワークは、従来の負荷テストパラダイムに従う。顧客がウェブサイトにアクセスすると、スクリプトレコーダーが通信を記録し、関連する対話スクリプトを作成する。ロードジェネレータは、記録されたスクリプトを再生しようとする。スクリプトは、再生前にさまざまなテストパラメータで変更される可能性がある。再生手順では、ハードウェアとソフトウェアの両方の統計がコンダクターによって監視および収集される。これらの統計には、物理サーバーのCPU、メモリ、ディスクIOと応答時間、テスト対象システム(SUT)のスループットなどが含まれる。そして最後に、これらすべての統計が分析され、負荷テストレポートが生成される。
負荷テストやパフォーマンステストは、マルチユーザーオーディエンス向けのソフトウェアを分析する。これらのさまざまな負荷の下でパフォーマンス測定値を監視しながら、ソフトウェアをさまざまな数の仮想ユーザーとライブユーザーに適用する。負荷テストやパフォーマンステストは通常、ソフトウェアシステムの稼働が許可される前に、実稼働環境と同じテスト環境で実行される。
負荷テスト中のユーザーエクスペリエンス
たとえば、テスト対象デバイス(DUT)が実稼働負荷(100 VUsers)になっている間に、ターゲットアプリケーションを実行する。ここでの対象アプリケーションのパフォーマンスは、負荷がかかった状態でのユーザーエクスペリエンスとなる。 DUTの応答の速さや遅さ、満足度やユーザーが実際にパフォーマンスをどのように認識しているかについてまとめる。
ブラウザレベルとプロトコルレベルのユーザー
これまで、すべての負荷テストは、プロトコル層(プロトコルレベルのユーザーまたはPLUと呼ばれることが多い)での同時対話を通じてトラフィックをシミュレートする自動APIテストを使用して実行されていた。コンテナとクラウドインフラストラクチャの進歩により、実際のブラウザ(多くの場合、ブラウザレベルのユーザーまたはBLUと呼ばれる)でテストするオプションが提供されている[2]。 それぞれの手法にはさまざまな種類のアプリケーションにメリットがあるが、通常、ブラウザレベルユーザーは、ウェブサイトが経験する実際のトラフィックに似ており、より現実的な負荷プロファイルと応答時間の測定値を提供することができる[3] 。 一方、ラウザレベルユーザーはテスト実行の手法の中ではコストが掛かる方法であり、また、利用できるアプリケーションに制限がある。特にデスクトップクライアントやAPIベースのアプリケーションなどのウェブブラウザーからアクセスできないアプリケーションでは使うことができない[4]。
負荷テストツール
| ツール名 | 提供会社 | ライセンス | 種類 | 価格 | 対象 | メモ |
|---|---|---|---|---|---|---|
| Apache JMeter | An Apache Jakarta open source project | Apache License 2.0 | ローカル | 無料 | 負荷テストとパフォーマンス測定のためのJavaデスクトップアプリケーション。 | |
| BlazeMeter | BlazeMeter Ltd. | プロプライエタリ | クラウド | 無料プランあり | ウェブサイト、ウェブアプリ、モバイル、データベース等 | 8つの場所から最大200,000人の同時シミュレートされたブラウザユーザーをスケーラブルにロードするす。統合テスト、機能テストにも使用できる。 |
| Blitz | Spirent Communications | プロプライエタリ | クラウド | 試用版あり | ウェブサイト、 モバイル、REST API | 世界中のさまざまな場所から最大50,000人の同時仮想ユーザーをシミュレートできる。 |
| Flood | Tricentis Corp. | プロプライエタリ | クラウド | 無料、有料 | ブラウザベースの負荷テスト、APIやプロトコル駆動型アプリ | AWSとAzureで利用可能なすべての地理的リージョンからの最大数百万の同時ユーザーへのスケーラブルなロードに加えて、オンプレミスの展開も。料金は、毎月消費される仮想ユーザー時間に基づく[5][6]。 |
| Gatling | Open Source | Apache License 2.0 | ローカル | 無料 | Java ウェブアプリケーション | ポータブル HTML レポート。 |
| Loader.io | SendGrid Labs | プロプライエタリ | クラウド | 無料プランあり | ウェブアプリケーションと API | |
| LoadRunner | Micro Focus | プロプライエタリ | ローカル | 試用版あり | 主に、多人数テスト(または多数の仮想ユーザー)の同時実行で使用される。単体テストや統合テストにも使用できる。 | |
| Load Test (included with SOAtest) | Parasoft | プロプライエタリ | ローカル | デモ版あり | 負荷がかかった状態で機能とパフォーマンスを検証するパフォーマンステストツール。 SOAtestテスト、JUnit、軽量ソケットベースのコンポーネントをサポートする。同時実行の問題を検出する。 | |
| loadUI | SmartBear Software | EUPL | ローカル | デモ版あり | 主にウェブサービスを対象としたクロスプラットフォームの負荷テストツール。 soapUIと統合される。 | |
| Login VSI | Login VSI, Inc. | プロプライエタリ | ローカル | 試用版あり | 仮想Windowsデスクトップ | |
| NeoLoad | Neotys | プロプライエタリ | ローカル | 無料プランあり | ウェブとモバイル | ローカルエージェントまたはクラウドから負荷を生成する。 |
| OpenSTA | Open System Testing Architecture | GNU General Public License 2.0 | ローカル | 無料 | ウェブサーバー | CORBAに基づく分散ソフトウェアアーキテクチャを利用する。 Windowsで利用可能なOpenSTAバイナリ。 |
| Rational Performance Tester | IBM | プロプライエタリ | ローカル | 試用版あり | サーバーベースのアプリケーションのシステム応答時間を測定するための、大規模パフォーマンステストの実行に使用される、Eclipseベースの大規模パフォーマンステストツール。 | |
| Siege | Open source | Open source GPLv3 or later | ローカル | 無料 | ウェブサーバー | 基本認証、Cookie、HTTP、HTTPS、およびFTPプロトコルをサポートする。 |
| Silk Performer | Borland | プロプライエタリ | ローカル | 試用版あり | クラウドおよびローカル仮想エージェントを備えたアプリケーションパフォーマンスツール。ほとんどのプロトコルとアプリケーションをサポートする。 | |
| Test Studio | Telerik | プロプライエタリ | ローカル | 試用版あり | 多数のユーザーが同時にアクセスした場合のウェブサイトのパフォーマンスを評価する。 | |
| Visual Studio Enterprise edition | マイクロソフト | プロプライエタリ | ローカル | 試用版あり | Visual Studio Enterprise Editionには、開発者が構成を組み合わせてさまざまなテスト(ウェブアプリケーションテスト、単体テストなど)を実行し、実際のユーザー負荷をシミュレートできる負荷テストツールが含まれる[7]。 | |
| WebLOAD[※ 1] | RadView | プロプライエタリ | ローカル | 無料プランあり | ウェブアプリ、モバイルアプリ、API | パフォーマンステスト分析用のウェブダッシュボードを含む、ウェブおよびモバイルアプリケーション用の負荷テストツール。クラウドからも発生する可能性のある大規模な負荷に使用される。 |
物理的負荷テスト
車の充電システム
負荷テストは、車のバッテリー状態の評価のも使用される。試験装置には、車のセルモーターと同様の抵抗を持つ大きな抵抗器と、無負荷状態と負荷状態の両方でバッテリーの出力電圧を読み取るメーターで構成される。試験装置を使用する場合は、最初にバッテリーの開回路電圧がチェックされる。開回路電圧が仕様(完全に充電されたバッテリーの場合は12.6ボルト)を下回る場合、バッテリーが最初に充電される。バッテリーの開回路電圧を読み取った後、負荷がかかる。適用すると、クランキング中に車のセルモーターを使う場合とほぼ同じ電流が流れる。バッテリーの指定されたコールドクランキングアンペアに基づいて、負荷がかかっている電圧が特定のポイントを下回った場合、バッテリーが不良であることがわかる。負荷テストは、走行中の車で、車のオルタネーターの出力をチェックするためにも使用される。
