Saucelabsを使ったマルチプラトフォームテストが便利そう

複数のプラットフォームでのブラウザテストができるSaucelabsを使うと、クロスブラウザテストで楽ができそう。

CapybaraでE2Eのテストを作成する必要があったのですが、マルチプラットフォームのクロスブラウザテストもした方が良さそうだったのでSaucelabsを使ってみたら結構良さそうだった。

Saucelabsを利用することで豊富なプラットフォームとブラウザでのテストができて、実行時の詳細なログを確認できるだけでなく、テストの実行時の様子をオンデマンドでもscreenshotsやscreencastsで確認できる。
この辺の環境を自前で構築するする手間を肩代わりできる。
無料アカウントだと利用できるVMの数やテストできる時間に制限はあるものの、それ以上に恩恵は大きいきがする。

簡単にセットアップをメモしたもの。
Gemfileに以下のgemを追加

sauce-connectを使用して、セキュアな状態でSaucelabsとTunnelし、Saucalebsのvmでアプリケーションを実行する。
これにより、ローカル環境などで動作しているアプリケーションでもテストできる。
詳しくはこの辺りに解説がある。
また、parallel_testsを使用しているので並列にテストを行え、時間短縮できそう。

今回はsaucelabsの設定用にsauce_helper.rbを作成した

ここのあたりの設定についてもドキュメントに沿った感じで、username、access_keyを使って、必要なプラットフォームを追加しておけば大体いい感じ。サポートプラットフォームは豊富にあるのでほぼサポートできそう。

今回は既存のcapybaranのテストに追加するために、環境変数で既存のテストとsaucalabesのテストをそれぞれ実行できるようにするために、spec_helper.rbは以下のようになった。

クロスプラットフォームのテスト時だけ、sauce_helper.rbをrequireする感じで使用しました。

各specファイルにsauceを追加する。

まだ、導入して簡単に利用しただけだが、
リグレッションテストとしてアプリケーションの挙動だけでなく表示の確認できそうだし、
スマートフォンなどで複数端末が必要なモバイルアプリのテストなどにも活躍しそう。

Comments