2009-08-13 10 views
1

私のプログラムをテストするために、私は約50のHTTPリクエストをできる限り速く送りたいと思っています。現在、私はできるだけ早くHTTPリクエストを送信する

curl "http://my.host.com/test.php?param=1" & 
curl "http://my.host.com/test.php?param=2" & 
curl "http://my.host.com/test.php?param=100" & 

のように各要求を送信するためにカール&を呼び出しますが、それは十分に速くはないようだbashスクリプトを使用しています。私は、各カールコールが最初にtcp接続を確立し、接続が1回だけ確立されればパフォーマンスが改善されるためだと思います。他のツールを使ってリクエストを送信することはできますか?

答えて

6

Apacheには、ベンチマーク用の「ab」というプログラムが付属しています。ネット上では、あなたが使用できるウェブサイトのための多くのストレステストアプリケーションがあります。

+1

http://httpd.apache.org/docs/2.0/programs/ab.html – gnarf

1

bashは使用しないでください。他のスクリプト言語(Perl、Pythonなど)を使用して、1つの接続を作成し、できるだけ早く要求を処理してください。ボーナスポイントの場合、複数のスレッドを起動して、同時接続を処理するプログラムの能力をテストしてください!

1

JMeterは良い方法ですload test apacheです。自分のサイトから

のApache JMeterは、オープンソースソフトウェア 、テスト 機能の挙動をロードし、 パフォーマンスを測定するために設計された100%純粋なJavaのデスクトップ アプリケーションです。もともとは のWebアプリケーションをテストするために設計されたものですが、以来、他のテスト の機能にも拡張されています。

どうすればいいですか?

は、ApacheのJMeterは静的および動的 リソース(ファイル、サーブレット、Perlの スクリプト、Javaオブジェクト、データベースと クエリ、FTPサーバおよびそれ以上)に パフォーマンスの両方をテストするために使用することができます。 サーバーまたはネットワークまたはオブジェクトの重い負荷をシミュレートして の強度をテストしたり、異なる負荷 タイプの全体的なパフォーマンスを分析したりすることができます。これを使用してパフォーマンスのグラフィックス分析 を作成したり、負荷の重いサーバ/スクリプト/オブジェクト の動作をテストするために を使用することができます。

1

すべてのダウンロードをバックグラウンドで実行しても、OSはまだカールをキャッシュからロードしなければならないにもかかわらず、プロセスを作成し、パラメータを解析するなどの理由で実行されない理由はありません。

新しいプロセスを開始することなく、N個の要求を並行して送信できるものが必要です。

3

PHP(およびもちろんCURL)にはsomething really niceがあります。

google.comで通常のGETを実行するのに約16秒かかります。約秒あたり63リクエスト

3

Apache JMeterは、複数のマシンで実行されている場合、かなり高速に動作します。