Sauce

Sauce

[5] ondemand.saucelabs.com は http しかなくて https にする方法がないみたいだけどいいのか・・・?

[6] Selenium::Remote::Driver という便利そうなモジュールがあるが LWP かつ Moo だ・・・。

[1] Sauce Labs:

[2] Sauce Connect:

[3] というのをふまえて

というテストを書いて

という感じで実行するのが良いか。

A/C はブラウザー以外からのアクセスのテスト、境界ケースやセキュリティーに関わる場合のテストに必要である。ブラウザーが不要な分速いので、ブラウザーが必要ないサーバー側の基本動作のテストはこちらの方法で書くべきである。B/D は実際の人間利用者のアクセスに近いので、こちらのテストは必要である。 JavaScript や表示中のユーザー操作が関わる動作のテストもこちらでしか書けない。

A/B と C/D の違いはアプリケーションサーバーの起動のタイミング以上に、接続されているDBの違いがある。本番環境でのテストはユーザーに見えてしまうことがあるので、慎重にしなければならないし、テストできない動作もある。そのため本番環境で実行され得るテストとそれ以外のテストは分ける必要がある。開発中には任意の状態を作り出したいので、基本的には A/B の方法で書くべきである。しかし本番環境特有の問題が見つかることはよくあるので、 C/D も必要ではある。デプロイ後にロールバックするかどうかの判断はできるだけ早く行いたいので、 C/D のテストは少ない方が良い。

[4] ただこういう使い方をするのに Sauce Labs の料金プランは高すぎる。 CI で常時チェックしたいなら、他の CI プラットフォーム上で Web ブラウザー + WebDriver サーバーを自前で動かした方がコストパフォーマンスは圧倒的に優れている。 (ただしいろいろなプラットフォームの Web ブラウザーが揃っているという Sauce Labs の圧倒的なメリットがある。)

[7] Pricing | Sauce Labs () <https://saucelabs.com/pricing>

[8] Test with Sauce Labs - CircleCI () <https://circleci.com/docs/1.0/browser-testing-with-sauce-labs/>

[9] Sauce Labs やっぱり CI には高すぎるよなあ。