【完全入門】Reqnroll × Playwrightで始めるE2Eテスト入門(C# / .NET対応)
Webアプリケーションの品質を保つために、自動テストは欠かせません。
その中でも、実際のユーザー操作に近い形でテストを行う E2Eテスト(End to Endテスト) が注目されています。
本記事では、以下の技術を使った E2Eテストの基本を解説します。
- Playwright
- Reqnroll
- C# / .NET
この記事を読むことで次のことが理解できます。
- E2Eテストとは何か
- Playwrightとは何か
- Reqnrollとは何か
- Reqnroll + Playwrightの基本構成
- E2Eテストの簡単な例
また本記事は Reqnroll × Playwright解説シリーズの親記事です。
Reqnroll × Playwright 記事一覧
本サイトでは、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の構成
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
などのプロジェクトでも利用できます。
まとめ
本記事では Reqnroll × PlaywrightによるE2Eテストの基礎を解説しました。
ポイント
- E2Eテストはユーザー操作を自動化するテスト
- Playwrightはブラウザ自動化ツール
- ReqnrollはBDDテストツール
- 組み合わせることで読みやすいE2Eテストが書ける
