クライアントは、Web サイトで同時に 50 人の作業をシミュレートする必要があり、応答時間は 5 秒以内である必要があります。しかし、私たちの懸念は、彼らのウェブサイトでテストすると、ネットワーク速度、ハードウェアなどを制御できないことです. それは私たちのテスト結果に影響を与える可能性があるためです。もう 1 つのことは、私たちの Web サイトにいくつかの偽造防止トークンがあることです。パフォーマンス テスト ツールはこのメカニズムをシミュレートできません。リクエストを記録した後、システムが再度リクエストを送信すると、トークンが無効になるため失敗します。また、このパフォーマンス テストを通常どのように行っているかを知りたいです。助言がありますか ?前もって感謝します !
2 に答える
負荷テストを実行するときは、環境をできる限りエミュレートするのが最善です。テスト システムのリソースが本番システムと異なる場合、異なる結果が得られます。
それでも、特定のハードウェアでテストを実行し、取得した数値をレポートできます。たとえば、本番システムで使用可能な帯域幅に関係なく、システムが必要とする帯域幅を測定できるため、それを知ることができます。
しかし、クライアントが見るものに対して測定したい場合は、同じ環境でそれを行う必要があります.
私の通常のアプローチは段階的です。
まず、WCAT などの単純なツールを使用して開発環境でテストします。JavaScript を実行したり、ポストバックを実行したりしませんが、パフォーマンスの大きなボトルネックとなることが多い同時リクエストとスレッドにストレスを与えます。
期待どおりに機能したら、より複雑なシナリオをサポートする Visual Studio Team Test に進みます。ラボから始めて、ベータ/運用前環境に移行します。また、クライアント側の測定に加えて、または場合によってはその代わりに、サーバー側のパフォーマンス カウンターと監視を使用することも好きです。
偽造防止ロジックの場合、負荷テストの目的でのみ、そのチェックを持たないバージョンのシステムを構築できます。
次に、ベータ環境で実際のユーザーを使用してテストします。詳細はプロジェクトによって異なります。実際のユーザーを獲得できない場合は、実際のブラウザーでテスト スクリプトを実行する数十台の PC のセットアップも作成しました。Load Runner (高価ですが) など、ここでも役立つ優れたサードパーティ製ツールがいくつかあります。
最後に、ソフトウェアが本番環境に入ったら、引き続き監視とテストを行います。ベータ版で問題なく動作するソフトウェアが、予期しない違いや不一致 (IIS 構成など) により、本番環境で機能しなくなることは珍しくありません。