Selenium を使用してUI
テストを自動化しています。最近、大多数のユーザーが Chrome を使用しているのを見てきました。そこで知りたかったのは、PhantomJS と Selenium の使用の長所と短所です。
- テストケースの実行にかかる時間など、パフォーマンスの点で実際に利点はありますか?
- Selenium よりも PhantomJS を好むのはいつですか?
Selenium を使用してUI
テストを自動化しています。最近、大多数のユーザーが Chrome を使用しているのを見てきました。そこで知りたかったのは、PhantomJS と Selenium の使用の長所と短所です。
彼らはさまざまな問題に取り組んでいます。PhantomJS はコマンド ラインで完全に実行されるため、開発ワークフローの一部として、および/または継続的インテグレーション サーバー内で、スモーク テストの最初のレイヤーとして適しています。Selenium は複数のブラウザーを対象としているため、ブラウザー間の一貫性を確保し、さまざまなオペレーティング システム間で広範なテストを実行するのに非常に役立ちます。
Web アプリケーションをさまざまな Web ブラウザーで実行する必要がある場合、PhantomJS のみを使用して UI テストを実行しても、ほとんどのテスト カバレッジは得られません。ただし、詳細なテストを行う前に、PhantomJS を起動して基本的なサニティ チェックを実行してもまったく問題ありません。ログイン画面が意図せず壊れて機能しない金融アプリケーションをテストするという狂気を想像してみてください!
最新の PhantomJS での最近の WebDriver のサポートにより、2 つの間の境界線がわずかにぼやけていることに注意してください。最初に PhantomJS を使用してテストをすばやく実行し、次に (重大なエラーが発生していないと仮定して) Selenium セットアップで同じテストを徹底的に実行し続けることができるようになりました。
最近の WebDriver 統合により (Ariya が指摘したように)、Selenium を使用して PhantomJS を駆動できるようになりました。
これは非常に強力です。
チェックインのたびに、ヘッドレス Unix サーバー上の CI を介して、完全に自動化された一連の Selenium テスト (PhantomJS を WebDriver 実装として使用) を実行できます。次に、ブラウザーの互換性をテストする場合は、基になる WebDriver 実装を Chrome、Firefox などに変更することで、ローカルでテストを実行できます。