【完全入門】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アプリでは次のような流れをテストします。
- ログインページを開く
- ID・パスワードを入力
- ログインボタンを押す
- マイページが表示される
このように ユーザー操作を自動化してテストするのが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 | ロジック |
| Integration | API |
| E2E | ユーザー操作 |
Reqnroll × Playwright 記事一覧
本サイトでは、ReqnrollとPlaywrightを使ったE2Eテストについて、以下の記事で詳しく解説しています。
基礎から実装まで順番に読むことで理解しやすくなります。
基礎系
環境構築系
- Reqnroll + Playwrightの環境構築手順(.NET / C#)
- ReqnrollのFeatureファイルの書き方(BDD入門)
- ReqnrollのStepDefinitionの書き方(C#)
実践的コード系
レポート出力系
- 【Reqnroll】テスト結果をHTMLレポートに出力する方法(Formattersの使い方)
- Reqnroll + PlaywrightでHTMLレポートにスクリーンショットを出力する方法
- Reqnroll LivingDocでテストレポートを作成する方法(.NET / Visual Studio)
Playwright系
まとめ
本記事では Reqnroll × PlaywrightによるE2Eテストの基礎を解説しました。
ポイント
- E2Eテストはユーザー操作を自動化するテスト
- Playwrightはブラウザ自動化ツール
- ReqnrollはBDDテストツール
- 組み合わせることで読みやすいE2Eテストが書ける
