ハマログ

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

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   kaneko tomo   2017年12月18日


関連記事

Data URI schemeのおはなし

こんにちは、かねこです。 ウェブサイト高速化やろうぜ!ということで、高速化みたい…

Laravel6へのアップグレードで Call to undefined function str_slug()

はじめに 少し前にLaravel6がリリースされました。Laravel5.5で動…

Eclipseプロジェクト・ファセットの動的Webモジュールのバージョンをダウングレードする

ローカル環境構築に伴い、プロジェクト・ファセットの動的Webモジュールのバージョ…


← 前の投稿

次の投稿 →