スポンサーリンク

【完全入門】Reqnroll × Playwrightで始めるE2Eテスト入門(C# / .NET対応)

【完全入門】Reqnroll × Playwrightで始めるE2Eテスト入門(C# / .NET対応)

ReqnrollとPlaywrightを組み合わせたE2Eテストは、.NET環境におけるモダンなテスト手法として注目されています。

ReqnrollはBDD(Behavior Driven Development)を実現するためのテストフレームワークであり、Gherkin形式で仕様を記述できます。
一方、Playwrightはブラウザ操作を自動化できるE2Eテストツールで、クロスブラウザ対応や高い安定性が特徴です。

本記事では、Reqnroll × PlaywrightによるE2Eテストの全体像から実装方法、運用のポイントまでを体系的に解説します。

E2Eテストとは

E2Eテストとは End to Endテストの略で、
システム全体の動作を確認するテストです。

例えばWebアプリでは次のような流れをテストします。

  1. ログインページを開く
  2. ID・パスワードを入力
  3. ログインボタンを押す
  4. マイページが表示される

このように ユーザー操作を自動化してテストするのがE2Eテストです。


テストの種類

一般的なテストは次の3種類に分けられます。

テスト種類内容
単体テストクラスやメソッド単位
結合テスト複数モジュールの連携
E2Eテストシステム全体

E2Eテストは最も実際のユーザー操作に近いテストになります。

Playwrightとは

Playwrightは Microsoftが開発したブラウザ自動化ツールです。

主に次の用途で利用されます。

  • E2Eテスト
  • UIテスト
  • Webスクレイピング

Playwrightの特徴

  • Chrome / Edge / Firefox / Safari対応
  • 自動待機機能
  • 高速動作
  • 複数言語対応(C# / JavaScript / Pythonなど)

.NET環境でも利用できるため、C#でE2Eテストを書くことができます。

Playwrightの詳細については、こちらの記事で解説しています。

Playwrightとは?Seleniumとの違いをわかりやすく解説

Reqnrollとは

Reqnrollは BDD(Behavior Driven Development)ツールです。

簡単に言うと、自然言語に近い形でテストを書くことができるツールです。

例えば以下のようなテストを書けます。

Feature: Login

Scenario: ログイン成功
  Given ログイン画面を開く
  When ユーザー名とパスワードを入力
  And ログインボタンを押す
  Then マイページが表示される

このように 仕様書に近い形でテストを書くことができるのが特徴です。

詳しくはこちらの記事で解説しています。

Reqnrollとは?SpecFlowとの違いと特徴を解説

なぜ「Reqnroll × Playwright」なのか

1. 可読性の高いテスト

  • Reqnroll → ビジネス視点
  • Playwright → 実装

2. 保守性が高い

  • UI変更に強い(Playwright)
  • 仕様変更に強い(Reqnroll)

3. チーム開発に向いている

  • 非エンジニアでも理解可能(Gherkin)

E2Eテストの役割

E2Eテストは万能ではありません。

むしろ以下に限定すべきです:

  • 重要なユーザーフロー
  • 決済・ログインなどのクリティカル機能
  • 外部連携

E2Eはコストが高いテストです。
必要なところだけに使うのがベストです。

Reqnroll × Playwrightの構成

ReqnrollとPlaywrightを組み合わせることで、次のような構成でE2Eテストを作成できます。

Featureファイル(Reqnroll)
        ↓
StepDefinition(C#)
        ↓
Playwright
        ↓
ブラウザ操作

役割は以下の通りです。

役割ツール
テスト仕様Reqnroll
テスト実装C#
ブラウザ操作Playwright

簡単なE2Eテストの例

ログイン機能のE2Eテストを例に見てみます。

Featureファイル

Feature: Login

Scenario: ログイン成功
  Given ログイン画面を開く
  When IDとパスワードを入力
  And ログインボタンをクリック
  Then マイページが表示される

StepDefinition

[Given("ログイン画面を開く")]
public async Task OpenLoginPage()
{
    await _page.GotoAsync("https://example.com/login");
}

[When("ログインボタンをクリック")]
public async Task ClickLogin()
{
    await _page.ClickAsync("#login-button");
}

Playwrightを使用することで、ブラウザ操作を自動化したテストを実行できます。

Reqnroll × Playwrightのメリット

この組み合わせには次のメリットがあります。

テストが読みやすい

ReqnrollのFeatureファイルにより
仕様書のような形でテストを書くことができます。

UIテストを自動化できる

Playwrightにより

  • クリック
  • 入力
  • ページ遷移

などのブラウザ操作を自動化できます。

.NETとの相性が良い

C#でテストを書くことができるため

  • ASP.NET
  • Blazor
  • Angular + .NET

などのプロジェクトでも利用できます。

設計のベストプラクティス

Page Objectを使う

UI操作はまとめる:

  • LoginPage
  • DashboardPage

テストコードをシンプルに保つ

シナリオは短くする

悪い例:

  • ログイン → 投稿 → 削除 → ログアウト

良い例:

  • ログインだけ
  • 投稿だけ

E2Eは「独立したテスト」にする

テストの粒度を意識する

テスト種類役割
Unitロジック
IntegrationAPI
E2Eユーザー操作

Reqnroll × Playwright 記事一覧

本サイトでは、ReqnrollとPlaywrightを使ったE2Eテストについて、以下の記事で詳しく解説しています。

基礎から実装まで順番に読むことで理解しやすくなります。

基礎系

環境構築系

実践的コード系

レポート出力系

Playwright系

まとめ

本記事では Reqnroll × PlaywrightによるE2Eテストの基礎を解説しました。

ポイント

  • E2Eテストはユーザー操作を自動化するテスト
  • Playwrightはブラウザ自動化ツール
  • ReqnrollはBDDテストツール
  • 組み合わせることで読みやすいE2Eテストが書ける

.NET
スポンサーリンク
シェアする
trelab