5

私は、フロント エンドで AJAX と動的 JavaScript をかなり多用するサイトに取り組んでおり、ストレス テストを開始する時が来ました。しかし、フロントエンドで複数のリンクをクリックする必要があるものを適切にストレス テストするにはどうすればよいでしょうか。サイトのすべてのページをすばやく繰り返し簡単にアクセスできる 1 つの方法は、Google Mini をそのページに向けることでした。しかし、リンクをクリックしてモーダル ウィンドウなどをナビゲートするわけではありません。

編集 - サイトは PHP5 で作成されており、使用されている JavaScript ライブラリは jQuery であることを指摘しておく必要があります。これが違いを生むかどうかはわかりませんが、知っておくと役立つかもしれないと感じました.

4

5 に答える 5

2

JMeterはこれが得意です。セッションを記録して、好みに合わせて微調整することができます。

いわゆる「ajax負荷テスト」は、このサイトで繰り返し発生するテーマであり、しばしば混乱します。それでは、わかりやすく説明しましょう。通常のWebページの負荷テストとajaxを使用した負荷テストに違いはありません。それはすべて、個別の要求に要約されます。たまたまフルページの更新ではありません。

覚えておくべきことの1つは、リクエストを処理するサーバーの負荷テスト(負荷テスト)と、更新されるUIコンポーネントの画面上のパフォーマンス(JavaScriptのパフォーマンス)には明確な違いがあることです。

簡単な負荷テストの例:

  1. 最初のページの読み込み
  2. ログインする
  3. ナビゲートしますか?
  4. 5-10「ajax」リクエスト(またはアプリケーションの使用パターンに適合するもの)
  5. ログアウト
于 2009-02-19T21:31:47.383 に答える
1

AJAXをサポートできる負荷テストツールがあります。たとえば、WebLoad

http://www.radview.com/solutions/ajax-load-testing.aspx

于 2009-02-19T20:51:51.723 に答える
1

私はネイサンとフレディにある程度同意しません。「AJAX テスト」は、HTTP 要求が行われるという点で実際には違いがないという彼らの意見は正しいです。しかし、それはそれほど単純ではありません。Why Load Testing Ajax is Hardに関する Ajaxian.com の私の記事を参照してください。

JMeter、Pylot、および The Grinder はすべて、HTTP 要求を生成するための優れたツールです (個人的には Pylot をお勧めします)。しかし、基本的には、ブラウザーとして機能したり、JavaScript を処理したりすることはありません。つまり、記録的な速さで見たトラフィックを再生するだけです。これらの AJAX リクエストがそのセッションに固有のものである場合、それらは大量に再生するのに適していないか正しくない可能性があります。

実際には、ブラウザーにプッシュされるロジックが増えるほど、従来の負荷テスト ツールを使用してトラフィックを適切にシミュレートすることが (不可能ではないにしても) はるかに難しくなります。

私の記事では、Google のホームページのようなものをテストする際に、何千もの異なる検索用語をクエリする場合 (負荷テストの重要な目標) をテストすることがいかに難しいかを示す簡単な例を示しています。JMeter/Pylot/Grinder でそれを行うには、ツールのネイティブ言語で AJAX コードの一部 (この場合は jQuery を使用) を効果的に書き直すことになります。

ユーザーが認識した応答時間を測定することが目標である場合は、さらに複雑になります (これは、結局のところ、間違いなく最も重要なことです)。Comet/「Reverse Ajax」 (ソケットを長期間開いたままにする手法) を使用する非常に複雑なアプリケーションの場合、従来のロード ツールはまったく機能しません。

私の会社、BrowserMob は、Seleniumを搭載した Firefox ブラウザーを使用して数百または数千の実際のブラウザーを駆動する負荷テスト サービスを提供しており、ブラウザーに表示される視覚要素のパフォーマンスを測定して時間を計ることができます。また、従来の仮想ユーザー (ブラインド HTTP トラフィック) とシミュレートされたブラウザー ( HtmlUnit経由) もサポートしています。

とは言っても、通常、BrowserMob のようなサービスと従来の負荷テストを組み合わせることが正しいアプローチです。つまり、実際のブラウザは完全忠実な負荷テストには最適ですが、10 ~ 100 倍の RAM と CPU を必要とするため、「仮想ユーザー」ほど経済的ではありません。仮想ユーザーをシミュレートするかどうかについては、私の最近のブログ記事を参照してください。

それが役立つことを願っています!

于 2009-02-20T17:35:56.897 に答える
1

本当に必要なのは、サーバーが ajax リクエストを処理する能力をストレス テストすることです。テストの「記録」中に要求を調べるロード ツールを使用し、必要に応じて調整します。私はvsテスト版しか使ったことがないので、低価格のものを紹介することはできません.

于 2009-02-19T21:15:46.323 に答える
0

openSTAのようなものを使用できます。

これにより、Web サイトとのセッションを記録し、比較的単純なスクリプト言語で再生することができます。

Web サービスを簡単にテストして、独自のスクリプトを作成することもできます。

これにより、任意の方法でスクリプトをテストにまとめて、反復回数、各反復のユーザー数、各新規ユーザーを紹介するためのランプアップ時間、および各反復間の遅延を構成できます。テストは将来的にスケジュールすることもできます。

オープンソースで無料です。

スプレッドシートに保存できる多数のレポートを生成します。次に、ピボット テーブルを使用して、結果を簡単に分析およびグラフ化します。

于 2009-02-26T23:35:49.387 に答える