いままでブラウザテストの環境は、Codeceptionとか、Seleniumとか使っていたのですが、PHP環境だとしっくりくるブラウザテスト環境がありませんでした。多分好みの問題だけど。
会社でよくつかっているLaravelにも標準でブラウザテスト環境が用意されているので、いままで使っていなかったですが、せっかくなので使ってみました。
Laravel Dusk
https://laravel.com/docs/5.5/dusk
会社でよくつかっているLaravelにも標準でブラウザテスト環境が用意されているので、いままで使っていなかったですが、せっかくなので使ってみました。
Laravel Dusk
https://laravel.com/docs/5.5/dusk
Duskは「夕暮れ」のことです。
上記の公式ドキュメントによると、JDKとかSeleniumとかが不要で、スタンドアロンでChromeDriverを利用するよ、とのことです。
また、他のSelenum互換のドライバも利用できるようです。
上記の公式ドキュメントによると、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');
});
けど存在しないので、存在する文字列で比較。
成功
以上。選択肢が増えるのはいいことです




