SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

クラウドE2Eテストを実現するMicrosoft Playwright Workspaces入門

Playwright Workspacesで簡易TODOアプリのクラウドE2Eテストを実施する

クラウドE2Eテストを実現するMicrosoft Playwright Workspaces入門 第2回

 本連載では全4回に分けて、Microsoftが提供するクラウド型のEnd-to-End(以降「E2E」)テストサービス「Microsoft Playwright Workspaces」について紹介します。

はじめに

 前回はMicrosoft Playwright Workspacesの概要として、E2Eテストの課題、OSS Playwrightとの関係、親サービスであるAzure App Testingの位置づけ、料金体系などについて紹介しました。

 今回からは実際にアプリケーションとテストの実装を行っていきます。Azureポータル上でPlaywright Workspacesのリソースを作成し、ローカルで用意した簡易TODOアプリに対するE2Eテストを「クラウド上のブラウザ」で実行して、その成功をAzureポータルで確認するところまでを説明していきます。

検証環境と前提

 本回のハンズオンは、次の環境を前提とします。お手元の環境を事前に整えておいてください。

  • 有効なサブスクリプションを持つAzureアカウント
  • Node.js(LTS版。執筆時点では20.x以降を推奨)
  • Azure CLI(バージョン2.2.0以降。「az --version」で確認できます)

 Playwright Workspacesは、テストの「制御」自体は手元のマシンで実行し、ブラウザの起動だけをクラウドへオフロードする構造でした。そのため、ローカルにNode.jsとPlaywrightの実行環境が必要になります。Azure CLIは、後述するMicrosoft Entra ID認証でクラウドへサインインするために使用します。

題材となる簡易TODOアプリ

 本連載では、全4回を通じて同じ簡易TODOアプリをテスト対象として使い回します。まずはその構成を確認しておきましょう。アプリはNode.js/Expressで実装したサーバーと、静的なHTML/JavaScriptのフロントエンドから成る、ごく小さなものです。

アプリの機能と画面

 TODOアプリが提供する画面は次の3つです。いずれもE2Eテストの題材として典型的な操作を含んでいます。

本稿で利用するTODOアプリ
本稿で利用するTODOアプリ
  • ログイン画面(ユーザー名とパスワードを入力して認証)
  • TODO一覧画面(登録済みのやることを一覧表示)
  • 追加・削除の操作(フォームから追加、ボタンで削除)

 ログインフォームの操作、入力した値の送信、一覧への反映、要素の削除といった一連の流れは、実際のWebアプリでも頻出するパターンです。これらをE2Eテストで検証できれば、本サービスの基本的な使い方は十分に身についたと言えるでしょう。

ファイル構成

 サンプルアプリは「programs/todo-app/」配下に配置しています。主なファイル構成は次の通りです。

  • server.js:Expressによるサーバー(APIと静的ファイルの配信)
  • public/:フロントエンド(index.html、app.js、style.css)
  • playwright.config.ts:OSS Playwright用の基本設定
  • playwright.service.config.ts:クラウド実行用の設定(後の手順で生成)
  • tests/todo.spec.ts:E2Eテストの本体

 サーバーは、TODOデータをインメモリで保持するだけのシンプルな実装です。ログイン認証も学習用の固定アカウント(demo/passw0rd)で行います。サーバーの要点を抜粋すると次のようになります。

[リスト1]TODO APIの抜粋(server.js)
// ログイン認証。成功時のみ200を返します
app.post('/api/login', (req, res) => {
  const { username, password } = req.body ?? {};
  if (username === DEMO_USER.username && password === DEMO_USER.password) {
    return res.json({ ok: true });
  }
  res.status(401).json({ ok: false });
});

// TODOの追加
app.post('/api/todos', (req, res) => {
  const text = (req.body?.text ?? '').trim();
  const todo = { id: nextId++, text };
  todos.push(todo);
  res.status(201).json(todo);
});

 アプリを起動するには、todo-appフォルダで依存パッケージをインストールしてからサーバーを起動します。

[リスト2]アプリの起動
npm install
node server.js

 ブラウザで「http://localhost:3000」にアクセスし、ログイン後にTODOの追加・削除ができれば準備は完了です。

次のページ
AzureポータルでPlaywright Workspacesを作成

この記事は参考になりましたか?

クラウドE2Eテストを実現するMicrosoft Playwright Workspaces入門連載記事一覧
この記事の著者

WINGSプロジェクト 秋葉 龍一(アキバ リュウイチ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/28916 2026/07/27 08:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー