All Articles

Azure Pipelines で Chrome / Firefox / Safari / IE のSeleniumブラウザテストを実行させる

去年発表されたマイクロソフトの CI/CDツール「Azure Pipelines」では、オープンソースプロジェクトの場合、無料・無制限で利用することができます。

最近だと様々なオープンソースプロジェクトが利用しており、JUnit プロジェクトが Azure Pipelines に移行したことでも話題になりました。

この Azure Pipelines ですが、Linux / macOS / Windows のVMを利用することができます。

Selenium などのブラウザテストの場合、特定のOS上でしか動作できないブラウザ(Safari・IE・Edge)をテストする必要が出てくることもあります。

それらのテストと Azure Pipelines は相性が良いのではと考え、今回試してみることにしました。

サンプルコードは下記になります。今回は WebdriverIO で実装してみました。

実際にビルド結果などは下記のリンクから見ることができますが、Linux(Chrome, Firefox)・MacOS(Safari)・Windows(IE)で Selenium テストを実行させることができました。

https://dev.azure.com/tadashinemoto0713/practice-webdriverio-typescript/_build

それぞれの VM のイメージに何が入っているかは、下記のレポジトリから確認することができます。

Selenium を使う上で懸念しないといけない点は主に2点です。

1つ目に、Linux VM の場合は仮想ディスプレイなどが入っていないため、Chrome, Firefox のヘッドレスモードなどを利用する必要があります

config.capabilities = [{
  browserName: 'chrome',
  'goog:chromeOptions': {
    args: ['window-size=1920,1080', '--headless', '--disable-gpu']
  }
}]
config.capabilities = [{
  browserName: 'firefox',
  'moz:firefoxOptions': {
    args: ['window-size=1920,1080', '--headless']
  }
}]

2つ目に、Selenium standalone server や、各種 driver は別途インストールする必要があります。

※ Windows VMの一部では IE Driver / Chrome Driver / Gecko Driver がインストールされています

WebdriverIO の場合、@wdio/selenium-standalone-service を使うことによって、それらを自動でインストールしてくれるので便利です。

今回、Edge ブラウザのテストも試してみたかったのですがうまくできませんでした。

Windows VM に別途設定・インストールが必要かもしれないので時間があるときに試してみたいと思います。

それを差し置いても、Selenium で使うための Windows や macOS のリソースを手軽に利用できるのはとても魅力的に感じました。

オープンソースプロジェクトや、小さな開発チームには有効に使えるのではと考えています。