カテゴリ: Laravel 更新日: 2026/03/04

Laravelでブラウザテスト(Dusk)の基本的な使い方を初心者向けにやさしく解説

Laravelでブラウザテスト(Dusk)の基本的な使い方
Laravelでブラウザテスト(Dusk)の基本的な使い方

先生と生徒の会話形式で理解しよう

生徒

「Laravelで画面を操作するテストができると聞いたんですが、本当にブラウザを動かすんですか?」

先生

「はい、Laravel Duskを使うと、人が操作するようにブラウザを動かしてテストできます。」

生徒

「パソコンをあまり触ったことがなくても大丈夫ですか?」

先生

「操作はすべてプログラムで書くので、順番に理解すれば問題ありませんよ。」

1. Laravelのブラウザテスト(Dusk)とは?

1. Laravelのブラウザテスト(Dusk)とは?
1. Laravelのブラウザテスト(Dusk)とは?

Laravel Duskとは、実際のブラウザを自動で操作してテストを行うための仕組みです。ボタンをクリックしたり、文字を入力したり、画面に表示されている内容を確認したりできます。人がマウスやキーボードで操作する代わりに、プログラムが代わりに操作してくれるイメージです。画面の動きを含めて確認できるため、フォームやログイン画面などのテストに向いています。

2. ブラウザテストと通常のテストの違い

2. ブラウザテストと通常のテストの違い
2. ブラウザテストと通常のテストの違い

Laravelには通常のテストとブラウザテストがあります。通常のテストは「中身の処理」を確認するのが目的で、画面は動きません。一方、Duskは実際のブラウザを起動し、画面の表示や動きを確認します。たとえるなら、通常のテストはエンジンだけを確認する検査で、ブラウザテストは実際に車を走らせて確認する検査のようなものです。

3. Laravel Duskのインストール方法

3. Laravel Duskのインストール方法
3. Laravel Duskのインストール方法

Laravel Duskは、コマンドを使って追加します。コマンドとは、文字でパソコンに指示を出す方法です。難しそうに感じますが、決まった文字をそのまま入力するだけなので安心してください。インストールすると、ブラウザテスト専用のフォルダや設定ファイルが自動で用意されます。


php artisan dusk:install

4. 初めてのDuskテストを書いてみよう

4. 初めてのDuskテストを書いてみよう
4. 初めてのDuskテストを書いてみよう

Duskでは、テスト用のクラスに処理を書いていきます。ここでは、トップページを開いて文字が表示されているかを確認します。「visit」はページNavigator のような役割で、指定したURLを開きます。「assertSee」は、画面に指定した文字が見えるかを確認する命令です。


public function test_top_page()
{
    $this->browse(function ($browser) {
        $browser->visit('/')
                ->assertSee('Laravel');
    });
}

5. ボタンをクリックするテスト

5. ボタンをクリックするテスト
5. ボタンをクリックするテスト

Laravel Duskでは、ボタンをクリックする動作も再現できます。これは、人がマウスでクリックするのと同じ動きです。ログインボタンや送信ボタンが正しく動くかを確認するときに役立ちます。画面の流れをそのままテストできるのが、ブラウザテストの大きな特徴です。


public function test_click_button()
{
    $this->browse(function ($browser) {
        $browser->visit('/login')
                ->press('ログイン')
                ->assertPathIs('/dashboard');
    });
}

6. 文字を入力するテスト方法

6. 文字を入力するテスト方法
6. 文字を入力するテスト方法

フォームに文字を入力する操作も、Duskで簡単に書けます。「type」はキーボードで文字を入力する動作を表します。これにより、メールアドレスやパスワードの入力テストが可能になります。入力ミスが起きないかを事前に確認できるのがメリットです。


public function test_input_text()
{
    $this->browse(function ($browser) {
        $browser->visit('/login')
                ->type('email', 'test@example.com')
                ->type('password', 'password');
    });
}

7. Duskテストを実行する方法

7. Duskテストを実行する方法
7. Duskテストを実行する方法

Duskのテストは、専用のコマンドで実行します。実行すると、実際にブラウザが立ち上がり、自動で画面操作が始まります。初めて見ると少し驚きますが、すべてテストの一部です。失敗した場合は、どこで止まったかも分かるので、修正しやすくなります。


php artisan dusk

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

ブラウザテストでは、画面の表示が終わる前に次の操作をしてしまい、失敗することがあります。その場合は、表示を待つ処理を入れることで解決できます。また、画面に表示される文字が変わるとテストも失敗するため、表示内容を意識して書くことが大切です。ゆっくり順番に確認する意識を持つと、失敗しにくくなります。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのコントローラでリクエストをログ出力する方法を初心者向けに解説
New2
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
New3
Symfony
Symfonyのセッション管理完全ガイド!初心者でもわかるセッションドライバ設定(file・Redis)
New4
Laravel
Laravelのエラーメッセージをカスタマイズする方法|初心者向けガイド
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
No.2
Java&Spring記事人気No2
Laravel
LaravelでBasic認証を実装するミドルウェアの使い方!初心者向けガイド
No.3
Java&Spring記事人気No3
Symfony
SymfonyでTwigテンプレートを表示する方法を完全ガイド!初心者にもわかるHTMLとの違いや使い方
No.4
Java&Spring記事人気No4
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.5
Java&Spring記事人気No5
Laravel
LaravelでファクトリとSeederを組み合わせてダミーデータを生成する方法!初心者でも簡単にテストデータ作成
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Symfony
Symfonyのコントローラでリダイレクトする方法を徹底解説!初心者にもやさしく解説
No.8
Java&Spring記事人気No8
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方