内容:ガイド
序文
負荷およびストレステスト
1. 負荷テスト: システム負荷を徐々に増加させてシステム性能の変化をテストし、最終的に性能指標を満たす条件下でシステムが耐えられる最大負荷を決定するテストです。
2. ストレス テスト: システム負荷を徐々に増加させ、システム パフォーマンスの変化をテストし、最終的にシステム パフォーマンスが障害状態にある負荷条件を特定し、これを使用してシステムが提供できる最大のサービス レベルを取得します。
分析例 1:
ログイン インターフェイスでは、最初に 10 人のユーザーがアクセスし、次に 100 人のユーザーがアクセスし、次に 1000 人のユーザーがアクセスし、タイムアウトまたは主要なリソースが枯渇するまで、プログラムの応答時間、消費されるリソースに注目します。
ストレス テスト: 長時間実行されるプログラムの安定性を指します。
分析例2:
プログラムを1日、1ヶ月、1年間実行した際に、各種指標が正常な指標の範囲内にあるか、メモリオーバーフローが発生していないか、機能障害が発生していないかなどに注目する。
ストレス試験は安定性試験と破壊試験に分かれます。
荷重・差圧
負荷テストは安定性を重視しませんが、ストレス テストは安定性を重視します。
パフォーマンステストにおける負荷テストとストレステストの違いは何ですか?
パフォーマンステスト、負荷テスト、ストレステストの違いについては、以前から明確だと思っていたのですが、いざ言われてみるとまだまだであることに気づきました。ここでは、インターネットからいくつかのコンテンツを選択し、さらに私自身の理解を加えて理解できるようにしました。忘れないようにここにメモしておきます。間違いがあれば修正していきたいと思います。
パフォーマンス テスト (またはマルチユーザー同時パフォーマンス テスト)、負荷テスト、強度テスト、容量テストはパフォーマンス テストの分野のいくつかの側面ですが、概念は混同されやすいです。
パフォーマンス テスト (パフォーマンス テスト): 通常、テストに関連するすべてのパフォーマンスが収集され、さまざまな機会にさまざまな人々によって使用されます。
1. 負荷テスト: 負荷テストは一種のパフォーマンス テストであり、プログラムが過負荷環境で実行されるデータの負荷に耐えられるかどうかを指します。
2. ストレス テスト: ストレス テスト (強度テストとも呼ばれます) もパフォーマンス テストの一種で、システム リソースが極度に不足している場合に、システムのどこでどのように障害が発生するかを調べるために使用されます。
3. エクストリーム テスト: 過剰なユーザーによる負荷テスト ハンマー テスト: 実行可能なすべての操作を継続的に実行します。
4. ボリューム テスト: 実際の使用パフォーマンスを考慮せずに、システムが処理できる同時オンライン ユーザーの最大数を決定します。
パフォーマンス テスト、負荷テスト、強度テストはわかりにくいと思われるかもしれません。
はい、これら 3 つの概念は比較的混乱しやすいものです。負荷テストとストレス テストはどちらもパフォーマンス テストのサブセットです。
パフォーマンス テストは、特定のベンチマークにおける最良の場合のパフォーマンスを表します。
負荷テストはパフォーマンス テストでもありますが、異なる負荷の下で行われます。
ストレステストは、比較的高い強度の条件下でのパフォーマンステストです。
性能テストは電力、負荷テストの負荷、ストレステストの強度です。
ストレス テスト ストレス テスト: 特定の「負荷条件」下でのシステムの長期間の連続動作がシステム パフォーマンスに及ぼす影響です。
負荷テスト 負荷テスト: 特定の「作業負荷」の下で、システムの負荷とシステムの応答時間。
ここでは、ストレス テストと負荷テストの違いを強調するために括弧を追加しました。
負荷テストは通常、ユーザーまたはユーザー リクエストの数を徐々に増加させることによってシステム (プログラム) に負荷をかける、特定の種類のストレス テストを指します。たとえば、実際にオンライン クエリ サービスを提供するシステムがある場合、比較的小さな負荷から開始し、システムの応答タイムアウト (負荷と呼ばれる) が終了するまで、シミュレートされたクエリ リクエストの数またはユーザーの数を徐々に増やします。テスト中。ここでのプレッシャーの種類は、アプリケーションによって提供されるサービスの種類、つまりワークロードである必要があります。
負荷テストの目的は、特定の負荷条件下でシステムのパフォーマンスをテストすることです (安定性には注意を払いません。つまり、長期実行には注意を払いません。異なる負荷の下で関連するパフォーマンス指標を取得するだけです)。
実際には、比較的小さな負荷から始めて、シミュレートされるユーザーの数を徐々に増やし (負荷を増やし)、タイムアウトまたは主要なリソースが使い果たされるまで、さまざまな負荷の下でアプリケーションの応答時間とリソース消費を観察することがよくあります。これは、ロード テストと呼ばれ、テスト システムのさまざまな負荷ケースにおけるパフォーマンス指標です。
ストレス テストの目的は、特定の負荷の下で長時間実行されるシステムの安定性をテストすることですが、この負荷は必ずしもアプリケーション システム自体によって引き起こされるわけではありません。たとえば、スクリプトやツールを使用してサーバーの CPU、メモリ、または帯域幅の一部を事前に消費して、特定の負荷環境を作成し、この環境下でテスト対象のアプリケーション システムのトランザクション処理能力と応答時間をテストすることがよくあります。
ストレステストでは、ビジネスボリュームが大きい条件下での長期実行時のシステムパフォーマンスの変化(応答が遅いかどうか、メモリリークによりシステムが徐々にクラッシュするかどうか、回復できるかどうかなど)に特に注意を払います。
ストレス テストでは、システムの制限と障害回復機能をテストします。これには次の 2 つの状況が含まれます。
1. 安定性ストレステスト: 選択した圧力値の下で、長時間連続運転します。このタイプのストレス テストでは、さまざまなパフォーマンス指標が指定の範囲内にあるか、メモリ リークがないか、機能障害がないかなどを確認できます。
2. 破壊的ストレステスト: 安定性ストレステストでは、システムパフォーマンスが明らかに低下するなど、いくつかの問題が発生する可能性がありますが、本当の理由を明らかにすることは困難です。破壊的かつ継続的な加圧により、多くの場合、すぐにシステムクラッシュを引き起こしたり、問題を明らかにしたりすることが可能です。
明確な説明:
ここにはアプリケーション システムに対応するウェイターがいます。
ストレステストは、サーバーに長時間休ませない、賃金を支払わないなどの外部圧力を加えて、サーバーが放棄する(要求に時間内に応答しない)か、続行するかを確認することです。ストライキ(ダウンタイム)など。
負荷テストは、単位時間内でウェイターの作業負荷を徐々に増加させ、さまざまな作業負荷の下でウェイターが完了するサービスの速度と品質を確認し、ウェイターの作業能力を把握することです。
ストレス テストと負荷テストは、サーバーのストレス耐性と動作能力を理解するのに役立ち、もちろんシステムやソフトウェアのパフォーマンスのボトルネックと品質を評価するのにも役立ちます。
以下は、私がまとめた 2023 年の最も完全なソフトウェア テスト エンジニア学習知識アーキテクチャ システム図です。 |
1. Pythonプログラミングの入門から習得まで
2.インターフェース自動化プロジェクトの実戦
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実戦
5. 一流メーカーの再開
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8、JMeterのパフォーマンステスト
9. まとめ(最後にちょっとしたサプライズ)
夢は強い意志とたゆまぬ努力があってこそ実現します。道は長くて、上へ下へ探していきます。失敗は前進への足がかりとなり、闘争は飛躍するための翼となります。初心を忘れないでください。あなたは常にそこにいて、自分を信じて、闘いの中で成功を収めることができますように。
勇敢に前進することによってのみ、人生はより刺激的になります。粘り強さが報われます。あなたが思っているよりも素晴らしい人になることができるので、夢を諦めないでください。すべてのステップは成功のマイルストーンです。将来の目標を達成するために一生懸命努力してください。
すべての試みは一種の成長であり、すべての失敗は一種の経験です。忍耐強く勇敢に前進する限り、必ず成功の喜びと栄光を迎えることができるでしょう。ぜひ一緒に頑張って夢の実現に向けてたゆまぬ努力を続けていきましょう!