これは間違った質問かもしれませんが、asp.net Webアプリケーションに大きな負荷を複製する最良の方法は何ですか?特定のページで多くのリクエストをシミュレートする簡単な方法はありますか?または、プロファイラーを使用して単一のリクエストを追跡し、パフォーマンスが良好な場合はそこから解決するのが最善ですか?
Webアプリがサーバー仕様でどれだけうまく機能するかを知っておくといいでしょう。テストサーバーで大量のトラフィックをシミュレートできるようにしたいので、実稼働サーバーで十分な場合(特にdbパフォーマンスではなくiis/asp.netで)うまくいくことができます。
最初に自動テストを行うことをお勧めします。 Selenium を使用します。
次に、Seleniumグリッドを展開して、複数のコンピューターで同時にテストします。
自動テストツールとしてのSeleniumは非常に高速に実行されますが、ミニストレステストを作成します。同じオートメーションをネットワーク上の2台のコンピューターで同時に実行すると、その動作を確認できます。
応答のタイミングを記録したい場合は、自動化を実行するスクリプトを作成するために使用できるクールなAPIがあります。
編集:Seleniumは非常に使いやすく、コンテンツをテストする場合にページコンテンツにアサートします。また、必要に応じてページ内の動きをコピーします(これは私の提案です)。ページを何度も移動し、自動化のために保存します。 Seleniumがより高速に実行されるように、アサートを行わないでください。
http://loadimpact.com 私がこれまでに見つけた最高のものを試してみてください。
JMeter はそのようなツールの1つです。学習と設定は少し難しいかもしれませんが、通常は価値があります。
ab (Apache bench)ツールを使用すると、1つのページに多くのリクエストを送信し、使用するクライアントの数と同時接続の数を指定できます。
これは、サイトを開発するときの最初のステップかもしれません。特定の負荷でいくつかのページをテストするだけです。このベンチマーク方法には、キャッシングが過剰に使用されるなどの問題が発生する場合があります。
後で、単一のページではなく、具体的なトラフィックをシミュレートするツールが必要になる場合があります。そのようなツールについてはまだ参考になりません。
多分 grinder 助けになるでしょうか?スレッドと軽量プロセスによる同時要求をシミュレートしたり、複数のマシンにテストを分散したりできます。私は毎回成功して広範囲に使用しています。
商用製品の試用版と無料で入手できる試用版の両方で、いくつかのアプリケーションを試しました。最終的に、それは私たちが試した Team Test Load Agent ソフトウェアの試用版でした。それは間違いなくうまく機能し、使用するのはかなり簡単です。長期的には、Team Foundation Serverに移行し、部門のすべての部分に適切なツールを装備するという議論を強化しました。
ただし、明らかなマイナス面は価格です。
この種のプロジェクトでは WebLOAD を使用しました。スクリプトの作成は簡単で、ASP.NETの統計情報の監視のサポートが組み込まれています
私が気に入っているもう1つのツールはOpen STAです。 http://opensta.org/
主にパフォーマンステストに焦点を当てており、無料です。
2018年更新:
答えはかなり古いので、OpenSTAプロジェクトはあまりアクティブではないようですが(ツールはまだ利用可能ですが)、今は他にも推奨する2つのツールがあります。
私の意見では、ガトリングは制限がなく、商用のエンタープライズソリューションを提供し、Jenkinsのような継続的インテグレーションツールに適合しているため、ガトリングはより良いと思われます。
逆に、NeoLoadには無料版がありますが、50ユーザーに制限されています(場合によってはこれで十分です)。機能の完全な比較は こちら です。
Webサービスのテスト、ソープレスト、またはWCF(WebHttpBindingを含む)については、SOA Cleanerを試してください。以下からダウンロードできます: http://xyrow.com 。無料版があり、インストールは不要です。負荷テストも実行できます。
DUP: ASP.Netストレステスト