0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PlaywrightのUIテストをクラウドでさっくりと

Last updated at Posted at 2023-10-13

はじめに

Microsoft Playwright Testingというサービスがプレビューで出てきました。公式ドキュメントに色々と書いてはありますが、なによりもUIテストを実行するインスタンス自体をマネージドサービスに外だしできるのはとても良いですよね。

なお、基本的に公式ドキュメントをなぞったのですが、2023/10/13現在は以下のバグがあり、テスト結果をAzure LogAnalytics Workspaceには送れないですね・・残念。プレビューですが、早く治るといいなぁ。
[BUG]: Log Analytics receives no monitoring data after a test run

やったこと

試した内容は以下の5点だけです。とても簡単です。

  1. Playwrightのバージョンを最新に上げる
  2. Mirosfot Playwright Testing のリソースを作って設定を控える
  3. クラウド実行用の設定ファイルを作成する
  4. GitHub Actionsに組み込む
  5. UIテスト結果を確認する

なお、参考にした公式ドキュメントは以下の2つです。

1. Playwrightのバージョンを最新に上げる

当初そのまま設定ファイルなどを作ったのですが、スキーマエラーなどが発生しましたので、公式最新にしておきます。(久々に触る場合なんか特に…)

npm install @playwright/test@latest

2. Microsoft Playwright Testing のリソースを作って設定を控える

このあたりは公式の手順そのままです。無料トライアルとして、30日間100分までのテストは無料になりますので、動きを試してみるくらいには十分使えそうです。

  • Azure Portal から Microsoft Playwright Testing のリソースを作成する
  • Microsoft Playwright Testing ポータルに移動する
  • Microsoft Playwright Testing ポータルから必要な設定値(エンドポイント、トークン)を控えておく

3. クラウド実行用の設定ファイルを作成する

設定ファイル(playwright.service.config.ts)も公式ドキュメントのままで大丈夫です。既にあるplaywright.config.tsと同じとこに置きます。
もし、ここでエラーなどが出るようでしたらplaywrightのバージョンを上げる必要があります。

あとは環境変数ように.envなりを用意したら、この時点でnpx playwright test --config=playwright.service.config.ts"でローカルからクラウド上でのUIテスト実行が可能です。失敗したらlocalhostに戻ってきてplaywrightの結果が確認できます。

4. GitHub Actionsに組み込む

基本的には公式ドキュメント通りなのですが、今回は以下のようにステージを分けました。

github_actions.yml
  uitest:
    runs-on: ubuntu-latest
    needs: deploy
    steps:
      - uses: actions/checkout@v2

      - name: Set up Node.js version
        uses: actions/setup-node@v1
        with:
          node-version: '18.x'

      - name: npm install, build, and test
        run: |
          npm install

      - name: Run Playwright tests
        working-directory: . 
        env:
          # Access token and regional endpoint for Microsoft Playwright Testing
          PLAYWRIGHT_SERVICE_ACCESS_TOKEN: ${{ secrets.PLAYWRIGHT_SERVICE_ACCESS_TOKEN }}
          PLAYWRIGHT_SERVICE_URL: ${{ secrets.PLAYWRIGHT_SERVICE_URL }}
          PLAYWRIGHT_SERVICE_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }}-${{ github.sha }}
        run: npx playwright test -c playwright.service.config.ts --workers=20

5. UIテスト結果を確認する

UIテストが全部成功すれば普通にオールグリーンですが、失敗させると以下のような感じで失敗ログを確認できます。(しょうもないエラーを出させてみました)
image.png

なお、本来であればテスト詳細ログをLog Analyticsにとばして、そっちで確認できるみたいなんですが、冒頭に書いたようにバグがあって確認できません。とても残念。

また、ダッシュボードもあるのですが、いつ誰がどのくらい実行したか、くらいの情報しかないため、こちらではテスト結果が確認できません。これも残念

image.png

これからに期待

Playwright のテストをクラウド上で大量並列で実行するシナリオなど、現状でも使い勝手がありそうですが、プレビューゆえに以下の残念ポイントがあります。

  • Log Analytics Workspaceにログがとばせない
  • ダッシュボードではいつ実行したかくらいの情報しかない
  • 上2点ゆえに、テスト結果をCI/CDパイプラインのログとして見ないとならない

まぁそれでもビルドマシン上からUIテストをしているケースなんかでは代替したほうが良いケースもありそうですし、またもしコンテナとかをUIテスト用に作っていたりするケースだと手間暇も減りそう。

結果を見るすべが充実してくるとこのサービスとてもとても使えそうな雰囲気だなというところが10/13プレビュー時点での評価かなと。

LoadTesting(JMeter)と合わせて使うと必要なテストの大部分がマネージドでまかなえるようになるので、期待してしばらく待ちたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?