私はテストHTTPサーバー/ Webアプリケーションを数回ロードする必要があり、そのたびに、見つけたツールの品質に圧倒されていました。
では、HTTPサーバーの負荷テストを行う場合、どのツールを使用しますか?そして、次にそれをしなければならないときに、私が間違いを犯す可能性が最も高いのは何ですか?
JMeter は無料です。
Mercury Interactive Load Runnerは非常に優れており、非常に高価です。
私の現在の会社はWebサーバーへの25,000の同時接続をシミュレートする必要があるため(この場合はオンライン広告を提供します)、この質問に答えるのは非常に資格があります。
非常に大量の負荷テストの場合、Httperfが適しています。これは無料であり、私たちの経験では、同じハードウェア上でJMeterまたはSTAよりも多くの同時接続をシミュレートできます。
ご参考までに、低電力で安価な超小型フォームファクターOptiplex 330で1秒あたり3500のリクエストをシミュレートします。これらの小さなボックスのコストはたったの280ドルで、実行するためにそれらの多くが接続されています。 Httperfオンデマンド。比較すると、JMeterはこのハードウェアで約800〜900リクエスト/秒しかプッシュできませんでした。
Webサーバーで一度に1つのURLに負荷をかけたいだけの場合は、Apache ABをダウンロードしてください。 Apache HTTPサーバーが付属しています。
簡単なコマンド
ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers
10ユーザーの同時実行で10000リクエストを実行します。
ブラウジングセッションを記録する場合は、投票してjmeterの回答を受け入れます。 Jmeterは驚くべきものであり、巨大な負荷をかける可能性のある多くのテストマシンに拡張できます。
Erlangベースのツール Tsung があります。
http://www.softwareqatest.com/qatweb1.html#LOAD にも、非常に長いツールのリストがあります。
簡単なテストでは、curlシーケンスとURLのセットを使用できます。たとえば、Googleに対して実行可能な負荷ストレステストを実行するとします...
curl -s "http://google.com?[1-1000]"
これにより、Googleに1000回の呼び出しが行われます。
http://google.com?1
http://google.com?2
http://google.com?3
...
http://google.com?1000
さまざまなテストを設定する必要があります。
各テストの後/前に、以前のようにプラットフォームを元に戻す必要があります。データベースを復元し、再起動してメモリとキャッシュを消去します。
また、ウォームアップを実装します。実際のテストの前にシナリオを1回起動して、Webページをコンパイルし、データベースへの接続を確立します。そうでなければ、最初の呼び出しは常にあなたの統計で悪いでしょう。
次のような複雑さを追加できます。
最後に重要なこと:完全に同じ方法で再度作成できるように、完了したすべてのシナリオを保存する必要があります。これにより、以前のテストとパフォーマンスを比較できます。
複数の接続の処理方法をテストするだけの場合は、 Siege のようなものを使用できます。それでも素晴らしい方法であるかどうかはまだわかりませんが、少なくとも複数の接続の処理方法がわかります
私は openSTA を使用しました。
これは比較的単純なスクリプト言語を使用します。
Webサービス/サーバーを簡単にテストし、独自のスクリプトを作成できます。
これにより、スクリプトを任意の方法でテストに組み込んで、反復数、各反復のユーザー数、各新規ユーザーを導入するための立ち上げ時間、および各反復間の遅延を構成できます。将来的にテストをスケジュールすることもできます。
オープンソースで無料です。
スプレッドシートに保存できる多数のレポートを作成します。次に、ピボットテーブルを使用して、結果を簡単に分析およびグラフ化します。
以前はLoadRunnerを使用していましたが、負荷が高く、負荷テストを実行するシステムを含むMicrosoftのTeam Testerエディションツールも使用しました。ツールの動作にはかなり満足しており、LoadRunnerよりも構文が簡単な.netを使用してテストを拡張できました。
私たちが使用したロードランナーのバージョンも、AJAXサイトを処理できませんでした(これは2000年に戻ったので、ツールは今までに拡張されているはずです)
[〜#〜] wapt [〜#〜] を使用しており、非常にうまく機能します。セットアップが簡単で、数百ドルです。 LoadRUnnerは途方もなく高値であり、Forutune 500を除いてすべての手が届きません。
シナリオの複雑さによって異なります。
サーバー上の実際のユーザーの負荷を正しくシミュレートするには、ユーザーが実際に行っていることをシミュレートする必要があります。ユーザーがURLでサーバーにアクセスしただけの場合、無料/簡単なツールで実行できます。
もう少し複雑なWebサイトの場合、動的な値の相関、パラメーター化などを支援するツールを使用することをお勧めします。Load-Runnerなどを使用できます。使用するのは WebLOAD です。 =。