私は、AJAXを大量に使用するエンタープライズWebアプリケーションのテストを担当しています。人間の介入なしにテストを連続して実行できるシステムを構築する必要があります。現在私は主に負荷テストに興味がありますが、機能テストで使用される負荷を生成するために使用された同じスクリプトが必要です。リアルレスヘッドブラウザ
現在、負荷テストのために私はgrinderを使用しています。スクリプトを記録し、非同期要求を処理するためにスクリプトを記録します。このシステムは今のところ機能します。スクリプトは繊細で、私たちの開発サイクル中にそれらを維持することはできません。私は、HTMLやJavaScriptの詳細を抽象化するプログラミング言語を使って 'ブラウザを走らせる'ことができる必要がありますが、ヘッドレスでなければなりません。言い換えれば、私のテストスクリプトが壊れた場合、それはアプリケーションの実際の破損を表す必要があります。 xvfbで実行中のfirefoxは、xvfbを実行しているヘッドレスLinuxマシンでも、firefoxは依然として多すぎるリソースを使用しているため、動作しません。私はheadless xサーバーの下でwebdriverでfirefoxを運転しようとしました。
HTMLUnitは、これが理想的なソリューションであるため、数日間作業しています。私はHTMLUnitのドライバをJythonに書いているので、グラインダーで使うことができます。残念ながら、私はjavascriptのエラー(firefox/chrome/IEでは実際のエラーではありません)を実行しています。私はこのために道路の終わりにいると思います。いずれにしても、私はHtmlUnitをよく知っていて、本当に別のものが必要です。
他の解決策がいくつかあります(envjsおよびzombie.js)。しかし、私はこれらの技術がどのように開発されたのか分かりませんし、もう1週間は無駄な時間を無駄にしたくはありません。
FirefoxやWebkitのいずれかのソースコードを取得して、すべてのレンダリング/ GUI呼び出しをコメントアウトし、実際のヘッドレスブラウザを作成することはどれほど難しいでしょうか?これは完了しましたか?これを他のものよりも簡単に行うことができますか?正直なところ、なぜこれがまだ行われていないのかわからないので、私はそれが私が予想しているよりずっと難しいと推測しています。
妥当なパフォーマンス特性を持つ真のヘッドレスブラウザを得ることができれば(私はこの問題で投げる大規模なサーバー艦隊を持っていますが、実際のFirefoxのGUIレンダリングでは十分ではありません)、私は設定されます。
BrowserMob(http://browsermob.com/performance-testing)やGomez(http://www.gomez.com/products-solutions/products/load-testing/)のような商用サービスの使用を検討しましたか?安くはないが、Firefox/Webkitをハックしようとするよりも簡単だ。 –
私は本当にこれらのサービスを見ていないが、私はそれらを聞いた。私は、オープンソース技術を用いて社内システムを組み立てることに熱心です。私たちは多くのテストサーバーを持っており、実際にそれらを利用したいと考えています。しかし、提案をありがとう。 – user573225