ハマログ

株式会社イーツー・インフォの社員ブログ

Laravelでブラウザテストを実行する(Laravel Dusk)

いままでブラウザテストの環境は、Codeceptionとか、Seleniumとか使っていたのですが、PHP環境だとしっくりくるブラウザテスト環境がありませんでした。多分好みの問題だけど。
会社でよくつかっているLaravelにも標準でブラウザテスト環境が用意されているので、いままで使っていなかったですが、せっかくなので使ってみました。

Laravel Dusk
https://laravel.com/docs/5.5/dusk
Duskは「夕暮れ」のことです。

上記の公式ドキュメントによると、JDKとかSeleniumとかが不要で、スタンドアロンでChromeDriverを利用するよ、とのことです。
また、他のSelenum互換のドライバも利用できるようです。
Laravel Duskをcomposerで追加インストールします。
>composer require --dev laravel/dusk
You are running Composer with SSL/TLS protection disabled.
Using version ^2.0 for laravel/dusk
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
  - Installing facebook/webdriver (1.5.0): Downloading (100%)
  - Installing laravel/dusk (v2.0.8): Downloading (100%)
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
composer.jsonの様子。
{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
// 略    
,
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "laravel/dusk": "^2.0",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7"
    },

artisanでDuskのscaffoldを作成します。

>php artisan dusk:install
Dusk scaffolding installed successfully.
できました!

失敗したけどうごいた(標準ではヘッドレス Chromeで動作するため見た目は何も変化なし)

失敗すると、勝手にスクリーンショットが取得されます。
ExampleTest.phpで比較文字列が”Laravel”になっていた
$this->browse(function (Browser $browser) {
    $browser->visit('/')->assertSee('Laravel');
});
けど存在しないので、存在する文字列で比較。
成功
以上。選択肢が増えるのはいいことです
BrowserChromeDuskGoogleLaravelLaravel Duskブラウザ

  kaneko tomo   2017年12月18日


関連記事

Laravelのstringバリデーターについて

Laravel標準のLoginControllerを見ていたら、stringとい…

Laravel5.4のバリデーションの重複チェックで自分自身は除外

更新時にメールアドレス重複の確認などで使う場合、自分自身のを除外する必要がありま…

laravel5で実際に実行されたクエリを確認する

クエリビルダやEloquentを利用する際に、実際に実行されたクエリを確認したい…


← 前の投稿

次の投稿 →