Webフォームファイルのアップロードをストレステストするにはどうすればよいですか?
-
04-07-2019 - |
質問
ファイルをアップロードするWebフォームをテストする必要があります。 各アップロードのファイルサイズは約10 MBです。 サーバーが100を超える同時アップロードを処理できるかどうかをテストしたいのですが、 サイトの残りの部分に応答します。
オフィスからのフォーム送信の繰り返しは、ローカルDSL回線によって制限されます。 サーバーはより高い帯域幅のオフサイトです。
経験に基づいた回答は素晴らしいと思いますが、どんな提案も歓迎します。
解決
ab(ApacheBench)コマンドラインツールを使用しますApacheにバンドル
(この素晴らしい小さなツールを発見しました)。 cURLやwgetとは異なり、
ApacheBenchは、Webサーバー(あらゆる種類のWebサーバー!)でストレステストを実行するために設計されました。
統計もたくさん生成します。次のコマンドは
ファイル test.jpg
から http:// localhost /
へのHTTP POSTリクエスト
最大4つの同時リクエストで100回。
ab -n 100 -c 4 -p test.jpg http://localhost/
次のような出力が生成されます。
Server Software:
Server Hostname: localhost
Server Port: 80
Document Path: /
Document Length: 0 bytes
Concurrency Level: 4
Time taken for tests: 0.78125 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Non-2xx responses: 100
Total transferred: 2600 bytes
HTML transferred: 0 bytes
Requests per second: 1280.00 [#/sec] (mean)
Time per request: 3.125 [ms] (mean)
Time per request: 0.781 [ms] (mean, across all concurrent requests)
Transfer rate: 25.60 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.6 0 15
Processing: 0 2 5.5 0 15
Waiting: 0 1 4.8 0 15
Total: 0 2 6.0 0 15
Percentage of the requests served within a certain time (ms)
50% 0
66% 0
75% 0
80% 0
90% 15
95% 15
98% 15
99% 15
100% 15 (longest request)
他のヒント
お気に入りの言語を使用して Selenium RC を自動化します。 Seleniumの100スレッドを開始し、それぞれが入力でファイルのパスを入力し、送信をクリックします。
100個の連続した名前のファイルを生成して簡単にループすることも、同じファイルを繰り返し使用することもできます
おそらく、cURLを使用してランダムなもの( / dev / urandom
から10MBを読み取り、base32にエンコードするなど)を送信し、POST要求を介して手動で作成します。本文はファイルアップロードになります(ロケット科学ではありません)。
そのスクリプトを100回、おそらく数台のサーバーでフォークします。システム管理者があなたがDDoSなどをしていると思わないようにしてください:)
残念ながら、この答えは少し曖昧なままですが、うまくいけば正しい軌道に乗ることができます。
Liamのコメントに従って続行:
アップロードを受信するサーバーがそれに接続するクライアントと同じLANにない場合、可能な限り本物の動作をシミュレートするためだけに、ストレステストのために可能な限りリモートノードを取得することをお勧めします。ただし、ローカルLANの外部のコンピューターにアクセスできない場合、ローカルLANは何もないよりも常に優れています。
サーバーに二重の負荷をかけるので、同じハードウェア内からストレステストを行うのは得策ではありません。 )、そしてそのときだけサーバーは魔法をかけることができます。送信側が外部委託されている場合、受信側で2倍の(任意のサイズの塩で撮影された)パフォーマンスが得られます。