2009-02-19 34 views
5

フロントエンドでAJAXとダイナミックJavaScriptをかなり活用しているサイトで作業しています。ストレステストを開始するときです。しかし、フロントエンドでいくつかのリンクをクリックする必要のあるテストを、どのようにして適切にストレスをかけることができますか?サイトのすべてのページを簡単かつ頻繁に簡単にヒットさせる方法の1つは、Google Miniを利用することでした。しかし、それはリンクをクリックしてからモーダルウィンドウやそのようなものをナビゲートするつもりはない。UIの負荷テスト

編集 - サイトがPHP5で行われ、使用されるJavaScriptライブラリがjQueryであることを指摘しておきます。これが何らかの違いを生むが、知ることが有用であると感じたかどうかは不明である。

答えて

2

JMeterです。あなたのセッションを録音し、好きなように微調整することができます。

いわゆる「ajax load testing」は、このサイトの繰り返し対象であり、しばしば混乱します。それでは、まっすぐにしましょう。通常のWebページの負荷テストとajaxによる負荷テストには、実際に違いはありません。それは離散的な要求にまで沸きます。彼らはちょうど完全なページリフレッシュではないことが起こります。

要するに、リクエストを処理するサーバーの負荷テスト(負荷テスト)と更新されるUIコンポーネントの画面上のパフォーマンス(javascriptの性能)との間に明確な違いがあります。

単純な負荷テスト例:

  1. 初期ページのロード
  2. ログイン
  3. をナビゲート!
  4. 5-10「アヤックスの要求(またはアプリケーションの使用パターンに合わせて何でも)
  5. 私はある程度ネイサンとフレディに反対ログアウト
1

は、テストがAJAXリクエストを処理するサーバーの能力で強調することです。テストを「録音」している間に要求を見て、適切なものにチューニングするロードツールを使用します。私はvsのテスト版を使っただけなので、低コストのものを指摘することはできません。

1

。 「AJAXテスト」は、HTTPリクエストが行われる点で違いはありません。しかしそれはそれほど単純ではありません。 Ajaxian.comに関する私の記事Why Load Testing Ajax is Hardを参照してください。

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

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

私の記事では、1000の異なる検索用語(負荷テスト中の重要な目標)をクエリするときにGoogleのホームページのようなものをテストするのがいかに難しいかの簡単な例を挙げます。JMeter/Pylot/Grinderを使用すると、AJAXコードの一部(あなたの場合はj/jQuery)をツールの母国語で書き直すことになります。

あなたの目標がユーザーによって認識された応答時間を測定することである場合はさらに複雑になります(これは、おそらく1日の終わりに最も重要なことです)。 Comet/"Reverse Ajax"(オープンソケットを長時間保持する技術)を使用する本当に複雑なアプリケーションでは、従来のロードツールはまったく動作しません。

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

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

希望に役立ちます!

0

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

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

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

これにより、テストの目的に合わせてスクリプトをまとめて、反復回数、各反復でのユーザー数、各新規ユーザーを導入するためのランプアップ時間、各反復間の遅延を構成できます。テストは将来スケジュールすることもできます。

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

スプレッドシートに保存できるレポートがいくつか生成されます。ピボットテーブルを使用して、結果を簡単に分析しグラフ化します。

関連する問題