このセクションでは、パフォーマンス テスト、パフォーマンス テストが必要な理由、パフォーマンス テストの種類、およびパフォーマンス テストのプロセスについて学びます。
このセクションで理解するトピックは次のとおりです。
パフォーマンステストとは何ですか?
これは非機能テストの最も重要な部分です。
何らかの負荷を加えてアプリケーションの動作をチェックすることは、パフォーマンス テストとして知られています。
一般に、このテストはサーバーがユーザーのリクエストにどれだけ早く応答するかを定義します。
アプリケーションのパフォーマンス テストを行う際、次のようなさまざまな要素に重点を置きます。 応答時間、負荷、安定性 アプリケーションの。
反応時間: 応答時間は、サーバーがクライアントの要求に応答するのにかかる時間です。
負荷: ここで、Load とは、次のことを意味します。 N番号 アプリケーションを同時に使用しているユーザー、または一度にサーバーにリクエストを送信しているユーザーの数。
安定性: 安定性係数については、N 人のユーザーが特定の時間アプリケーションを同時に使用した場合の安定性係数と言えます。
パフォーマンス テストを使用する場合は?
ソフトウェアが安定して運用環境に移行したら、パフォーマンス テストを実行します。複数のユーザーが同時にアクセスする可能性があるため、パフォーマンスの問題が発生する可能性があります。これらのパフォーマンスの問題を回避するために、テスターは 1 ラウンドのパフォーマンス テストを実行します。
これは非機能テストであるため、パフォーマンス テストを常に使用するわけではないため、アプリケーションが機能的に安定している場合にのみパフォーマンス テストを実行します。
注: パフォーマンス テストはコストがかかり、正確な結果を維持できないため、手動で行うことはできません。
パフォーマンステストの種類
パフォーマンス テストの種類は次のとおりです。
Java文字列を文字に変換
を完全に理解していただくために、1つずつ説明していきます 負荷、ストレス、スケーラビリティ、 そして 安定性 性能試験。
負荷テスト
負荷テストは、負荷テストと呼ばれる、望ましい負荷以下の負荷を適用することによってアプリケーションのパフォーマンスをチェックするために使用されます。
例えば: 下の画像では、 1000ユーザー は 希望の負荷 、お客様から提供されたもの、および 3/秒 それは ゴール これは負荷テストの実行中に達成したいことです。
ストレステスト
ストレステストとは、所望の負荷を超える負荷を加えてアプリケーションの動作を確認するテストです。
例えば: 上記の例で、必要な負荷を 1000 ユーザーから 1100 ユーザーに増やし、目標を 4/秒としたとします。このシナリオでストレス テストを実行すると、負荷が実際に必要な負荷より大きい (100 アップ) ため、テストは合格します。
スケーラビリティテスト
特定のスケール (ユーザー数) で負荷を増減することによってアプリケーションのパフォーマンスをチェックすることは、次のように知られています。 スケーラビリティテスト 。上向きのスケーラビリティと下向きのスケーラビリティのテストは、スケーラビリティ テストと呼ばれます。
スケーラビリティ テストは、次の 2 つの部分に分かれています。
好きと好きの違い
上方拡張性テスト
それは私たちがどこでテストしているのか 特定の規模でユーザー数を増やす クラッシュポイントが見つかるまで。上向きのスケーラビリティ テストを使用して、アプリケーションの最大容量を見つけます。
下方拡張性テスト
下向きのスケーラビリティ テストは、負荷テストに合格しなかった場合に使用され、その後開始されます。 番号を減らします。特定の間隔におけるユーザーの数 目標が達成されるまで。ボトルネック(バグ)を特定しやすくするためです。
安定性試験
アプリケーションのパフォーマンスをチェックする 特定の時間にわたって負荷を加える として知られている 安定性試験 。
パフォーマンステストの例
一例を挙げてみましょう。 必要な負荷が 1000 ユーザー未満または 1000 ユーザーに等しい場合のアプリケーションの動作をテストする 。
下の画像では、 100アップ をチェックするユーザーは継続的に増加しています。 最大荷重 、とも呼ばれます 上向きのスケーラビリティテスト 。
1200 → 3.5秒: [希望の負荷以下ではないため、 失敗 】
1300 → 4秒: [希望の荷重以下ではありません。つまり、 失敗 】
1400 → 墜落
注 1: ボリューム アンド ソーク テストはテストの一種ですが、パフォーマンス テストではありません。
ボリュームテスト
ボリューム テストはテストであり、データに関して大量の負荷を挿入することによってアプリケーションの動作をチェックするのに役立ちます。ボリューム テストとして知られています。ここでは、ユーザー数よりもデータ レートの数に焦点を当てます。 。
注2:
ボリュームは容量であり、負荷は数量です。つまり、負荷テストは「いいえ」を意味します。ボリュームテストとはデータ量を意味します。
浸漬試験
このタイプのテストでは、長時間サポートされない環境でのアプリケーションの動作をチェックします。これはソーク テストとして知られています。
一般に、サーバーまたは環境がサポートされていないことがすでにわかっているため、ソーク テストはネガティブなタイプのテストです。
パフォーマンステストのプロセス
次の理由から、パフォーマンス テストを手動で行うことはできません。
- 多くのリソースが必要となり、コストのかかるアプローチになりました。
- また、応答時間を手動で追跡すると、精度を維持できません。
パフォーマンス テスト プロセスは次の手順で完了します。
- パフォーマンスのシナリオを特定する
- パフォーマンス テスト スクリプトを計画および設計する
- テスト環境の構築と負荷分散
- テストスクリプトを実行する
- 結果
- 分析結果
- ボトルネックを特定する
- テストを再実行する
を実行すると、 ポジティブな流れ パフォーマンス テスト プロセスでは、次のプロセスに従うことができます。
パフォーマンスのシナリオを特定する
まず、以下の要素に基づいてパフォーマンス シナリオを特定します。
最も一般的なシナリオ: これは、シナリオに基づいてパフォーマンス シナリオを見つけることができることを意味します。 Gmail アプリケーション。 私たちは実行します ログイン、受信箱、アイテムの送信、メールの作成とログアウト 。
最も重要なシナリオ: 重要なシナリオとは、定期的に使用され、ビジネスライクな Gmail アプリケーションにとって重要であることを意味します。 ログイン、作成、受信トレイ、およびログアウト 。
巨大なデータトランザクション: 巨大なデータがあるということは、n 人のユーザーが同時にアプリケーションを使用していることを意味します。
パフォーマンスのシナリオを特定したら、次のステップに進みます。
パフォーマンス テスト スクリプトを計画および設計する
このステップでは、テスト エンジニア マシンにツールをインストールしてテスト サーバーにアクセスし、テスト シナリオに従ってスクリプトを作成してツールを実行します。
スクリプトの作成が完了したら、次のステップに進みます。
テスト環境の構築と負荷分散
テストスクリプトを作成したら、実行前にテスト環境を整えます。また、ツールやその他のリソースを管理し、「使用パターン」に従って負荷を分散したり、期間や安定性について言及したりすることもできます。
テストスクリプトを実行する
負荷の分散が完了したら、テスト スクリプトを実行、検証、監視します。
結果
テスト スクリプトを実行すると、テスト結果が得られます。そして、結果が指定された応答時間内で目標を満たしているかどうかを確認します。応答時間は最大値、平均値、最小値のいずれかになります。
Javaでの挿入ソート
応答が必要な応答時間を満たしていない場合は、 負の流れ ここで以下の手順が実行されます。
分析結果
まず、テスト結果が応答時間を満たしているかどうかを分析します。
ボトルネックを特定する
その後、 ボトルネック (バグまたはパフォーマンスの問題) )。そして、次のような側面が原因でボトルネックが発生する可能性があります。 コードの問題、ハードウェアの問題 (ハードディスク、RAM プロセッサ)、ネットワークの問題、 そしてその ソフトウェアの問題 (オペレーティング システム) 。そしてボトルネックを見つけた後、実行します チューニング(修正または調整) このボトルネックを解決するには。
テストを再実行する
ボトルネックを修正したら、テスト スクリプトを再実行し、結果が必要な目標を満たしているかどうかを確認します。
パフォーマンステストで問題が発生する
アプリケーションのパフォーマンス テストを実行しているときに、いくつかの問題が発生する場合があります。これらの問題は、 パフォーマンスの問題 。
パフォーマンスの問題は次のとおりです。
応答時間の問題
応答時間は、サーバーがクライアントのリクエストにどれだけ早く応答するかを意味します。ユーザーのリクエストが所定の応答時間内に完了しない場合、ユーザーは特定のソフトウェアまたはアプリケーションに対する興味を失ってしまう可能性があります。そのため、アプリケーションまたはソフトウェアには、ユーザーのリクエストに迅速に応答するための完璧な応答時間が必要です。
スケーラビリティの問題
スケーラビリティの問題は、アプリケーションが n 人のユーザーと予期されるユーザーのリクエストを同時に処理できない場合に発生します。だからこそ私たちはやります 上向きのスケーラビリティテスト (アプリケーションの最大容量を確認してください) 下方スケーラビリティテスト (予想時間が実際の時間と一致しない場合)。
ボトルネック
ボトルネックとは、アプリケーションが単一のコンポーネントによって制限され、システムのパフォーマンスに悪影響を与える場合に発生するバグの非公式名です。
ボトルネックの主な原因は次のとおりです。 ソフトウェアの問題 (オペレーティング システムに関連する問題)、ハードウェアの問題 (ハードディスク、RAM、プロセッサに関連する問題)、 そして コーディングの問題、 等
最も一般的なパフォーマンスのボトルネックは次のとおりです。
- メモリ使用率
- ディスクの使用状況
- CPU使用率
- オペレーティング システムの制限事項
- ネットワーク利用率
速度の問題
アプリケーションのパフォーマンス テストを実行するときは、ユーザーの関心と注意を引くために、アプリケーションの速度を速くする必要があります。アプリケーションの速度が遅いと、アプリケーションに対するユーザーの興味を失う可能性があるためです。
パフォーマンステストツール
市販ツールやオープンソース ツールなど、さまざまなタイプのパフォーマンス テスト ツールが市場で入手可能です。
商用ツール: LoadRunner[HP]、WebLOAD、NeoLoad
オープンソース ツール: JMeter
ロードランナー
これは、パフォーマンス テストの最も強力なツールの 1 つであり、広範なプロトコル、多数のテクノロジ、およびアプリケーション環境のパフォーマンス テストをサポートするために使用されます。
パフォーマンスの問題の最も一般的な原因を迅速に特定します。また、アプリケーションのスケーラビリティと容量を正確に予測します。
Jメーター
Apache JMeter ソフトウェアはオープンソース ツールであり、機能テストの動作をロードしてパフォーマンスを測定するように設計された完全に Java アプリケーションです。
一般に、Web アプリケーションをテストするために設計されましたが、現在は他のテスト機能にも拡張されています。
Apache JMeter は、静的および動的リソースと動的 Web アプリケーションのパフォーマンスをテストするために使用されます。
これを使用して、サーバー、ネットワーク、オブジェクト、サーバーのグループにかかる重い負荷を再現して、その強度をテストしたり、さまざまな負荷タイプの下で全体的なパフォーマンスを分析したりできます。
ウェブロード
WebLOAD テスト ツールは、Web アプリケーションの負荷テスト、パフォーマンス テスト、ストレス テストをテストするために使用されます。
WebLOAD ツールは、Web アプリケーションとモバイル アプリケーションを検証するための単一プロセスとしてパフォーマンス、スケーラビリティ、整合性を組み合わせます。
ネオロード
Neotys は、NeoLoad と呼ばれるテスト ツールを開発しています。 NeoLoad は、パフォーマンス テスト シナリオのテストに使用されます。 NeoLoad の助けを借りて、Web およびモバイル アプリ開発プロセスのボトルネック領域を見つけることができます。
NeoLoad テスト ツールは、従来のツールと比較して高速です。
これら以外にも、いくつかのツールがあります。 電気負荷、Web ストレス ツール、LoadUI Pro、StresStimulus、LoadView、LoadNinja、RedLine13、 これは、ソフトウェアまたはアプリケーションのパフォーマンスをテストするのに役立ちます。
果物はいくつありますか