目次: はじめに
序文
1. 負荷テストとは何ですか? パフォーマンステストとは何ですか?
負荷テストは、プログラムが過負荷環境で実行されるデータに耐えられるかどうかを示す一種のパフォーマンス テストです。このテストでは、テスト オブジェクトにさまざまなワークロードを負荷させ、さまざまな条件下でテスト オブジェクトのパフォーマンスを評価します。ワークロード条件、パフォーマンス動作、および適切に動作し続ける能力。
負荷テストの目的は、予想される最大ワークロードを超えてシステムが適切に機能することを判断し、保証することです。さらに、負荷テストでは、応答時間、トランザクション処理速度、その他の時間関連の側面などのパフォーマンス特性を評価します。
パフォーマンス テストでは主にシナリオを使用して、負荷テスト、強度テスト、データベース容量テスト、ベンチマーク テスト、競合 (同時実行、ユーザー) テストなど、ソフトウェア システムのパフォーマンスが運用パフォーマンス要件を満たしているかどうかをテストします。
2. パフォーマンス テストにはどのようなテストが含まれますか? (少なくとも 3 つのタイプを挙げてください)
負荷テスト、ストレステスト、安定性テスト、ベンチマークテスト
3. パフォーマンス テストの手順を簡単に説明します。
ステップ 1: 要件分析、テスト計画、テスト ケースの設計
ステップ 2: テストの設計と開発 (テスト スクリプトの記録とデバッグ、テスト シナリオの設計)
ステップ 3: テストの実行 (テスト環境のセットアップ、シナリオの展開、シナリオの実行、シナリオの監視)
パート4: テスト結果の分析、パフォーマンスの問題点の特定、テストレポートの評価
4. パフォーマンス テストの実行はいつから開始できますか?
機能テストに合格した場合、一般にパフォーマンステストが必要なシステムは、ユーザー数が多く、業務利用頻度が高く、重要な機能を持つ機能モジュールです。
5. 応答時間とスループットの関係は何ですか?
システムのスループットがシステム処理の制限に達しない場合、システムのパフォーマンスは低下せず、通常、トランザクションの平均応答時間は増加しません。
システムがスループット制限に達すると、クライアント トランザクションはリクエスト キューに入れられて待機し、待機時間が応答時間に記録されるため、一般にトランザクションの平均応答時間は増加します。
6. ソフトウェアパフォーマンステストの応用分野は何ですか?
機能検証: 条件 A でシステムは機能 B を持つことができますか? 機能
計画: システムに必要なパフォーマンス機能を持たせる方法、または特定の考えられる条件下でシステムがどのようなパフォーマンス機能を備えているか?
パフォーマンスのチューニング、欠陥の発見。
7. Web システムの応答時間について、業界で広く認知されているユーザーは何秒まで許容されますか?
2/5/10秒
8. パフォーマンス テストでは、通常どのようなパフォーマンス指標に注意を払う必要がありますか?
応答時間、同時実行性、スループット、システム パフォーマンス カウンター、思考時間
9. スループットについて説明してください。
単位時間あたりにシステムによって処理されたユーザー リクエストの数。
ビジネスの観点から見ると、スループットは、1 秒あたりのリクエスト数、1 秒あたりのサービス数、1 日あたりの人数、または 1 時間あたりに処理されるサービスの数などの単位で測定できます。
ネットワークの観点から見ると、スループットはバイト/秒で測定できます
。対話型アプリケーションの場合、スループット インジケーターはサーバーへの負荷を反映し、システムの負荷容量を示すことができます。
10.TPSとはどういう意味ですか?
単位時間あたりに処理されるトランザクション数
11. 一般化された同時実行性と厳密な同時性の例を挙げてください。
一般化された同時実行性: 一般化された同時実行性とは、実際には、一定期間内にトランザクションを操作する仮想ユーザーの存在を指します。
地下鉄の場合、毎回新しい人が到着し、出発しますが、基本的には誰もが同じことをします。
地下鉄に乗ります。ある時刻に地下鉄の構内に10,000人、改札で待っている人が100人、
発車した地下鉄に2,000人がいるとする。は2,000人、検査の場合はチケットチェックインエリアであれば同時乗客数は100人です。
同様に、調査対象のシステムが地下鉄ホールの場合、この時点の同時接続者数は 10,000 人です。この種の同時実行性は、一般に「一般化された同時実行性」と呼ばれます。
厳密な同時実行性: 多数のユーザーがソフトウェア システム上でまったく同じ機能操作または同じタイプの機能操作を同時に実行することを指します。例:ダブルイレブンのフラッシュセール商品
12. Web システムの場合、ユーザーが最も懸念しているパフォーマンス指標は何ですか?
反応時間
13. パフォーマンス テスト計画には通常何が含まれますか?
テスト目的、テスト品質目標、テスト環境、テスト段階と範囲、テスト戦略、テストスケジュール、テストケース
14. パフォーマンスのボトルネックを特定するにはどうすればよいですか?
最初に問題が発生した場所、つまり欠点を見つけて分析します。
まず、既存のシステムに関する CPU 消費量、メモリ消費量、ディスク I/O、ネットワーク カード I/O、帯域幅、ページ交換などのパフォーマンス テスト レポートを作成します。
そのうちの 1 つまたは複数がボトルネックに達していることが判明した場合は、ハードウェアが不足していてパフォーマンスが向上しないのか、それともシステムの実装が無理でシステムがいっぱいになっていないのかを検討する必要があります。
ハードウェアの問題の場合は、早めに容量を拡張することを検討してください。
リソースが限界に達していない場合、またはシステムの実装に問題があることが確認された場合は、システムの対応する機能を解体するか、機能レベルでの消費時間を監視する必要があります。
15. パフォーマンス テスト中に、OS のどのリソースを監視する必要がありますか?
CPU、メモリ、ディスク、ネットワーク
16. リソース競争とは何ですか?
複数のユーザーが同じものを使用しますが、このものは 1 人によってロックされ、リソース競合と
競合ロックが発生します。
17. 検証システムの応答時間は 100 TPS で 3 秒未満ですが、このような要件の場合、どのパフォーマンス テスト方法を使用する必要がありますか?
能力評価
18. 管理者の観点から見ると、システム パフォーマンスのどの指標が主に懸念されますか?
① システムの応答時間、
② システム ステータスに関する情報(CPU、メモリ、アプリケーション サーバーのステータス、JVM の利用可能なメモリ、データベースのステータスなど)、③ システムのスケーラビリティ、同時実行性の処理能力、
および
④ システムの最大容量、考えられるパフォーマンスのボトルネック、システムのパフォーマンスを向上させるためにどの機器を交換または拡張できるか、 ⑤ 長期間の運用が
十分に安定しているか、中断のないビジネス サービスを提供できるかなど。
19. 開発エンジニアの観点から見ると、システム パフォーマンスのどの指標が主に懸念されますか?
システムアーキテクチャ:アーキテクチャ設計が合理的かどうか、
データベース設計:データベース設計に問題がないか、
コード:コードにパフォーマンス上の問題がないか、システムに無理なメモリ使用方法がないか、設計
とコード:問題がないかシステム同期モードに不当なスレッドがあるか、システム内に不当なリソース競合があるかどうか
20. ストレス テストと負荷テストの違いについて説明してください。
ストレス テストの予想される結果は、システム内で問題が発生することです。私たちが検査するのは、システムの問題処理能力です。
負荷テストは、特定の負荷の下でソフトウェア システムのパフォーマンスを検査することです。
ストレス テストにより、システムの弱点と、極度の負荷下でプログラムがどのように動作するかを特定できます。
21明確なパフォーマンス要件が欠如しているプロジェクトの場合、どのようにパフォーマンス要件を抽出しますか?
過去の経験に基づいて、顧客とコミュニケーションし、履歴ログを確認し、類似製品と比較する
22. 完全なパフォーマンス テスト ケースには何を含める必要がありますか?
テストケース番号、プロジェクトタイトル、テストタイトル、重要度、設定条件、入力、操作手順、出力、テスト結果、テスター、時間
23. パフォーマンス テストの手順は何ですか?また、パフォーマンス テストで最も難しい部分は何ですか?
パフォーマンス テストの手順:
基本的なシステム機能の検証、テスト チームの編成、ツールの選択、ビジネス シナリオの事前分析などの準備作業。
テスト計画。
テスト スクリプトの設計と開発。
テストの実行と管理。
テスト分析。
パフォーマンス テストの最も難しい部分:
パフォーマンス テストで実際の負荷をシミュレートすることは困難であり、多くの場合、パフォーマンス テストは明らかなパフォーマンスの問題を見つけるための参照としてのみ使用できます。100% の精度を達成したい場合でも、オンラインのリアルタイム監視が必要です。
24. パフォーマンステストの実施方法とそのパフォーマンスを確認する方法を教えてください。
パフォーマンス要件分析: パフォーマンス テストが必要かどうかを明確にし、テスト対象システムの特性、基本ビジネス、主要ビジネス、ユーザーの行動、パフォーマンス テストの範囲、パフォーマンス テストの目標とパフォーマンス指標、パフォーマンス テストの戦略を明確にします。
テストケースの設計、テストスクリプトの開発とデバッグ、テスト環境とテストデータの準備を実行します。
パフォーマンス テストには jmeter ツールを使用します。
テストデータを取得し、システムを最適化し、テストレポートを完成させます。
jmeter テスト ツールを使用する場合は、集計レポートを使用してそのパフォーマンスを確認できます。パフォーマンス テスト データとテスト パフォーマンス インジケーターを比較します。パフォーマンス インジケーターに達している場合は、パフォーマンスが良好であることを意味します。
以下は、私がまとめた 2023 年の最も包括的なソフトウェア テスト エンジニア学習ナレッジ アーキテクチャ システム図です。 |
1. Python プログラミングの入門から習熟まで
2. インターフェース自動化プロジェクトの実践
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実践
5. 一流メーカーの履歴書
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8. JMeter パフォーマンス テスト
9. まとめ(最後にちょっとしたサプライズ)
たとえ道がどんなに迷っていても、心の中にある夢はいつも道しるべの光です。困難に果敢に立ち向かい、粘り強く努力し続けることは、成長の宝です。自分の能力を信じ、情熱を追い求め続けることでしか、自分自身の輝かしい旅を創り出すことができません。
努力することこそが夢を実現し、意志を研ぎ澄まし、自分を超え、勇敢に前進する唯一の方法です。どんなに多くの挫折や困難に遭遇しても、信念を貫き、勇敢に追求し、一歩ずつ歩み続ければ、やがて頂上に到達し、自分だけの素晴らしい詩を詠むことができるでしょう。
人生の舞台では、継続的な闘争が私たちの成長と進歩の鍵です。たとえどんな困難や困難に遭遇しても、自分の可能性と価値を信じ、勇敢に立ち向かい、しっかりと前に進んでこそ、私たちは心に希望を灯し、自らの栄光を創造することができるのです。