JMeterでHTTPリクエストを行うと、「このページはJavaScriptを使用しており、JavaScript対応のブラウザが必要です」などの応答データが表示されます。この問題をどのように修正することができますか。
4 に答える
JMeterはブラウザではなく、ダウンロードしたページのJavaScriptを解釈しません。
JMeter wikiから:
JMeterは、HTMLページに埋め込まれたJavascriptまたはアプレットを処理しません。
JMeterは関連するリソースをダウンロードできますが(正しいオプションが設定されている場合、一部の埋め込みリソースは自動的にダウンロードされます)、HTMLを処理せず、Javascript関数を実行しません。
ページがJavascriptを使用してURLを作成したり、フォームを送信したりする場合は、プロキシ記録機能を使用して必要なサンプラーを作成できます。これが不可能な場合は、Javascriptが何を行っているかを判断するために、コードを手動で検査する必要があります。
実行している内容に応じて、 Firefox用のSeleniumIDEを使用して実行テストを作成できます。テストはブラウザで実行されるため、JavaScriptも実行されます。ただし、JMeterの代わりにSeleniumを使用したことはなく、両方のツールに共通する機能についても知らないことに注意してください。
WebDriverプラグインを使用して、実際のブラウザーテスト(IE / Firefox / Chrome / Selenium)を実行できると思います。
ここに良いドキュメントがあります
WebDriverをJMeterテストに追加して、ページのレンダリングを完全に評価できます。
Web Driver Samplerは、ブラウザー(クライアント側)でのパフォーマンスメトリックの実行と収集を自動化します。これまでのパフォーマンステストの大部分は、サーバー側で行われてきました。ただし、テクノロジーの進歩、HTML5、JS、CSSの改善により、ますます多くのロジックと動作がクライアントにプッシュされています。これにより、Webサイト/ Webアプリの全体的なパフォーマンスが向上しますが、このメトリックはJMeterでは使用できません。ブラウザの全体的な実行時間に追加されるものには、次のものがあります。
- クライアント側のJavascriptの実行-例:AJAX、JSテンプレート
- CSS変換-例:3Dマトリックス変換、アニメーション
- サードパーティのプラグイン-例:Facebookのような、ダブルクリック広告、サイト分析など
これらすべてがブラウザの全体的な実行時間に追加されます。このプロジェクトは、このすべてのコンテンツのレンダリングを完了するのにかかる時間を測定することを目的としています。
これを解決するには、スレッドにHTTP Cookie /CacheManagerを追加する必要があります。