2011-08-19 14 views
3

私は、ウェブサーバー上の重い負荷を何度も繰り返しURLのリストを繰り返し訪問しています。ストレス/負荷テストAjaxヘビーウェブアプリケーション

最初は、wget/curlを使用して単純なスクリプトを作成する予定でしたが、サイトでは重い作業の多くでajaxリクエストが多く使用されていたため、これは実現可能なオプションではありません。リンクからhtmlを解析し、ajaxリクエストを抽出し、それらをカールするために、複雑なスクリプトを書く必要があります。私はこの要求を繰り返す必要があります。

理想的には、移動する前に各リンクで15-30秒を費やしているURLのリストをループするために、broswer(または同様のもの)を取得する方法があります。これは、各URLが訪問され、サイトの負荷が代表になるときにすべての私のjavascriptが実行されることを意味するでしょう

誰でも私はこれを簡単に行うことができますか?

答えて

2

あなたが探しているのは「負荷テストソフトウェア」です。多くのソリューションがあります.AJAXをどれだけうまく処理するかは大きく異なります。テストシナリオが本当に "このURLのリストを訪問する"のように簡単であると仮定して、あなたが始めるのが最も簡単なのは、(セレンのようなものを介して)実際のブラウザを駆動するツールでしょう。あなたのためにこれを行うことができるリアルブラウザのWebベースのテストツールが少なくとも1つあります(BrowserMob)。当社の製品Web Performance Load Testerは、ブラウザをシミュレートしていますが、一般的にはAJAXをかなりうまく処理することができます。 AFAIK、無料ソリューションのすべては、特にAJAXが関与しているときに、できることにはかなり制限されています。

2

apacheベンチを使用します。

ab

このような単純な何か:

> ab -k -n 100 -c 100 -g myresults.txt http://myajax.com/page

上記のすべてのキープアライブ、およびテキストファイルmyresultsに結果を保存すると、100の同時接続を超える100ページを意味します。 TXT。

http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=ab+apache

もseigeあります。

+0

これはページ内のすべてのjavascriptを実行しますか?実際にロードをテストするためにはページ内のAjaxリクエストが実際に必要です。 – Tristan

+0

いいえ、私の知る限りではありません。あなたはabのヘッダをXmlHttpRequestを使うように設定することができますが、あなたのためにアプリケーションを実行してリンクをクリックすることはありません。それだけでは不可能です。これは、javascriptファイルを取得し、あなたのアプリを設定するために必要なすべてをつかむ。 – Layke

+0

それはリンクをクリックする必要はありません恥ずかしいthatsは基本的には、ページのdocument.onloadでjavascriptを実行する必要がありますし、サーバーへのリクエストの残りの部分が読み込まれます – Tristan

3

LoadBooster(https://www.loadbooster.com)をご覧ください。これは、ヘッドレススクリプト可能なブラウザPhantomJSを使用してWebサイトをテストするクラウドベースの負荷テストサービスです。免責事項:私はLoadBoosterで働いています。

0

同様のタイプのテストにはWebLOADを使用しました。相関エンジンは重いAJAX状況で非常に便利です。

関連する問題