⛓️

BrowserStackとCodeceptJSを連携し、複数ブラウザでE2Eテストを並列実行する方法

2023/07/31に公開

BrowserStackとCodeceptJSを連携して、複数のプラットフォームにてE2Eテストを並列実行する方法を紹介します。

使用するサービス、ライブラリ

BroserStack

ブラウザ上から、各種デスクトップ・モバイル端末の実機を操作し、手動・自動テストができるテストツールです。

https://www.browserstack.com/

CodeceptJS

Node.jsで動作するE2Eテストフレームワークです。
https://codecept.io/

詳しくは、以下の記事にて紹介してくれています!
https://zenn.dev/collabostyle/articles/3a2624dce4ace2

サンプルプロジェクトをクローンする

git clone -b sdk https://github.com/browserstack/codecept-js-browserstack.git
cd codecept-js-browserstack
npm install

設定ファイルを変更する

以下の環境にてテストするようにbrowserstack.ymlの内容を変更します。

OS ブラウザ バージョン
macOS Chrome latest
Windows Chrome latest
Android Chrome 12.0(OSのバージョン)

ユーザー名とアクセスキーは、BrowserStackのダッシュボードにある「ACCESS KEY」から参照できます。

parallelsPerPlatformの設定値も3に設定しておきます。

browserstack.yml
userName: {ユーザー名}
accessKey: {アクセスキー}
platforms:
  - os: OS X
    osVersion: Big Sur
    browserName: Chrome
    browserVersion: latest
  - os: Windows
    osVersion: 10
    browserName: Chrome
    browserVersion: latest
  - deviceName: Samsung Galaxy S22 Ultra
    browserName: chrome
    osVersion: 12.0
parallelsPerPlatform: 3 # 並列実行数
browserstackLocal: true
buildName: browserstack-build-1
projectName: BrowserStack Sample
debug: false
networkLogs: false
consoleLogs: errors

テストコードの実行

設定が終わったら、あとはテストコードを実行するだけです。

npm run sample-test

実行結果の確認

大体40秒ほどで全てのテストが完了しました。
実行結果は、ダッシュボードから確認することができます。

指定したOS、ブラウザで実行されていることがわかります。

テスト内容も動画で確認することができます。

ログも確認することができ、動作ログだけでなく、ネットワークログやコンソールログも確認することができます。

まとめ

スマートフォンでの実機検証となると、デバイスやOSのバージョン管理が大変になります。
テストのために大量のスマートフォンを所持している方は、BrowserStackの利用を検討してみてはいかがでしょうか?

自動化、並列化。私の好きな言葉です❤️

コラボスタイル Developers

Discussion