web-dev-qa-db-ja.com

可変URLのHTTP負荷テストツール

可変URLを送信するための「ApacheBench」のような負荷テストツールについては誰でも知っています。 (サーバーは同じですが、クエリ文字列が異なります)

例えば、

ab -text list.txt -n 1000 http://test.com/search?

list.txt

name=abc&age=10
name=pqr&age=20
anything=anything&age=30
......

注:実際には、Apacheベンチにはそのようなオプション-textはありません

24
sura2k

それはあなたが必要なものを提供するので、包囲を試してみてください。 bashのようなパラメーターを使用するURLファイルを作成して、自分で繰り返す必要がないようにすることができます。また、基本認証、POST、ログインURLなどもサポートしています。

siege -f urls.txt 

urls.txt:

URL=https://www.example.com/
$(URL)index.php?ab=1
$(URL)site.php?different=12

詳細については、こちらをご覧ください: http://www.joedog.org/siege-home/

22
Julian Hille

この次のプロジェクトapachebenchを複数のURLに使用できます 複数のURLのApacheベンチ

ApacheBenchでサポートされているマルチURLリクエスト。 URLリストを「-Lファイル名」として設定し、各リクエストのドキュメント長の応答を確認することもできます。

7

windowsのコマンドラインから:

for /F %q in (list.txt) DO ab -n 1000 https://test.com/search?%q

Apache Benchも、データの収集方法もわかりません。私のアプローチでは、おそらくlist.txtの各行のデータの新しい収集が開始されますが、これは望ましくない場合があります。さまざまな実行の結果を手動で集計する必要があります。

(デバッグするには:

for /F %q in (list.txt) DO echo ab -n 1000 https://test.com/search?%q

実行するステートメントをコンソールに出力します)

3
rene

Apacheソースコードを取得し、パッチを http://chrismiles.livejournal.com/21720.html でApacheのab.cソースの現在のバージョンに移植する準備ができている場合(Cにある程度慣れている必要ですが、それほど多くはありません)、abで-textパラメーターと同等のものを取得する必要があります(実際には、パラメーターのサブセットのみを変更したいPOSTのベンチングに適したリクエストに追加する機能があります)。

私は現在これを自分で試しているので、審査員はまだ出ていません...しかし、初期の指標は、このアプローチがうまく機能していることです。

1
rstaveley