2012-03-22 14 views
3

Selenium/WebDriverテストに関する以前の経験はありません。私はプレーが箱から出してセレンをサポートしていることを知っているが、率直に言っサポートが組み込まれ私の期待と一致していないようです:Play Frameworkを使用したマルチブラウザのSelenium/Webドライバテスト

  1. 私はセットアップに複数のブラウザ/ OSでテストを実行する自動ビルドをしたいです。 SauceLabsのようなサイトであれば、さまざまなブラウザに簡単にアクセスでき、それを活用したいと思っていますが、組み込みのSeleniumテストを集めたものではうまくいきません。
  2. もっと一般的には、組み込みテストはHTMLで書かれているようですが、Javaでテストを書くことはサポートされていません。

私はUnitTestを拡張し、自分でSauceLabsを使用しようとしました。これはうまくいくように見えましたが、私は複数のブラウザで同じテストを実行しようとするロードブロッキングを打ちました。私はjUnit's Parametrized Testsを使用しようとしましたが、うまくいきませんでした(テストクラスの作成者が多すぎるためにエラーが発生しました)。

  1. 継続的インテグレーションシステムの一部として複数のブラウザ簡単実行されます:

    は、プレイ中に書き込みシステム/ Seleniumテストのためのベストプラクティスがありますか?

  2. HTMLではなくJavaで書かれていますか?
+0

SauceからJavaライブラリのマルチブラウザテストを実行できないという点に関しては、この[すべてのブラウザ/ OSコンボのJSON](http://saucelabs.com/rest/v1/info/browsers)を入手できます。/webdriver)、ハードコードされた一連のブラウザをjUnitテストファイルに 'ビルド'する別のユーティリティを使用して再フォーマットします。これは私がPHPライブラリで持っていた同様の問題を克服した –

答えて

3

私はこのPlayを開発しました!私もあなたのために働くかもしれないと思うモジュール、:

https://github.com/miguelrgonzalez/Play--Selenium-webdrive

それは本当に早い段階ではまだだが、それはすでに機能です。

気軽にフォークしてください!

+0

ありがとう!私はチャンスがあるときにこれを見ています。 (当面は答えが受け入れられる) – ripper234

0

これは確かに可能です。しかし、Selenium/WebDriver Gridを使用しなければ、これを効果的に達成することは困難です。デフォルトでは、多くのブラウザでは、自分自身の1つのバージョンのみがシステムにインストールされます。どのブラウザを起動するかは制御できますが、どのバージョン(または現在インストールされているバージョンに制限されているか)を制御することはできません。

グリッドを使用して、次の手順で、既存のインフラストラクチャを活用することができます

  • は(などマシン、仮想マシン、)別のノードを持つハブノード、このハブに接続を確立します。これらのノードにはそれぞれ異なるブラウザが含まれており、これらの「機能」は接続時にハブに登録されます。
  • テストが実行されるときに、ローカルブラウザに対して実行する代わりに、ハブにテストをディスパッチします。ハブは、グリッドに登録されているノード内で指定した機能に最適な一致を検出します。グリッドは、グリッド上でテストを透過的に実行できるように、そしてローカルで行う場合と同じように使いやすいように、メッセージの前後に必要なすべてのマーシャリングを行います。

グリッドの詳細については、hereを参照してください。この情報はPlay Frameworkとは特に関連していませんが、うまくいけば役立ちます。

0

PlayでSelenium 2/WebDriverテストを実行するために特別な操作を行う必要はありません!フレームワーク。

RemoteWebDriverテストを作成し、play.test.UnitTestから拡張するだけです。その後、これらのテストはPlay!によって実行されます。 TestRunnerと、明らかに、結果はPlayに保存されます!標準的な方法。

関連する問題