Selenium Grid on Azure and LambdaTest

EhimeJSという勉強会で初心者歓迎LT会が開催されるということで、JSはあまり得意ではないのですが、ちょうどクロスブラウザのテストが気になっていたのでSeleniumの練習を兼ねて参加してきました。

当日の様子はこちら。(@PET_HAL さんのまとめ)

数年前にSeleniumを仕事で使ったことがあって、その時はJavaとPythonでテストプログラムを書いたのですが、今回はJSがテーマということでざっと調べたところ Node.js の記事がいろいろ見つかったので Node.js で書くことにしました。

そしてテスト環境ですが、仕事で主にmacOSを使っていて、Chrome / Firefox / Safari はローカル環境で問題ないので、Edge / IE をメインのテスト対象として考えました。ここで、MSのブラウザは Edge_Chromium がメインになっていくと思うので Edge_HTML / IE 対応にはあまりコストをかけたくないというのが正直なところですが、運用しているウェブサイトの利用状況を見るとそれなりにユーザー数もあるので、であればテストを自動化することでモチベーションにつながればということもあります。

Edge_HTML / IE を試すには Win10 の仮想マシンが必要と考えて、だとすれば Azure を使ってみるのも良いかなと思い Azure の VM で Selenium Grid (hub + node) を立てることにしました。結論としては、環境構築自体は割とスムーズにできて、手元のターミナルからリモートマシンの Chrome / Firefox / Edge_HTML / IE11 を Node.js で動かすことができました。

少し手間取ったのはリージョンの選択とVMサイズの変更。いろいろリージョンを変えてVMを探してみたのですが、少し金額が高めのスペックしか選択肢に表示されず。ちょっと様子がわからなかったので、サポートに問い合わせたところ、希望するリージョンとVMのスペックをリクエストすれば選べるようになりますとのこと。ということでリージョンを変えて希望のスペックが選択できました。

Seleniumについては主にこのページを参考にしました。
Setting up your own test automation environment

ローカルでのテストの仕方やリモートテストに関する情報がまとまっています。ここで LambdaTest というサービスも紹介されていたので試してみました。

EhimeJS で発表した資料はこちらに公開しています。
Selenium Grid on Azure and LambdaTest
LTで説明したのは前半の20枚くらいです。後半に環境構築での注意点とか、まだ試してはいませんが、気になる記事をまとめておきました。少しでも参考になれば幸いです。