首页 > php框架 > Laravel > 正文

Laravel Dusk如何进行浏览器自动化测试

冰火之心
发布: 2025-11-10 18:46:02
原创
712人浏览过
Laravel Dusk是官方浏览器测试工具,基于ChromeDriver,支持无头浏览器操作。安装通过composer require --dev laravel/dusk,运行php artisan dusk:install初始化。使用php artisan dusk:make创建测试类,如LoginTest,可在testUserCanLogin方法中用visit、type、press、assertPathIs模拟登录流程。Dusk提供clickLink、select、check、waitFor等方法交互,支持JavaScript执行与截图调试。默认无头运行,可修改DuskTestCase.php移除--headless参数查看界面,确保ChromeDriver与Chrome版本匹配,端口冲突时可用--server-port指定。

laravel dusk如何进行浏览器自动化测试

Laravel Dusk 是 Laravel 官方提供的浏览器自动化测试工具,基于 ChromeDriver 和 Facebook WebDriver 构建,无需安装 JDK 或 Selenium,使用起来非常方便。它让你可以用接近真实用户操作的方式测试前端功能,比如登录、表单提交、点击按钮等。

安装与配置 Dusk

在 Laravel 项目根目录下运行以下命令安装 Dusk:

composer require --dev laravel/dusk
登录后复制

安装完成后,注册 Dusk 的服务提供者(Laravel 8+ 通常会自动注册)。然后运行安装命令:

php artisan dusk:install
登录后复制

这个命令会生成 tests/Browser 目录,并创建一个示例测试文件。同时会在该目录下生成 Chromedriver 可执行文件(根据系统自动匹配)。

创建第一个浏览器测试

使用 Artisan 命令创建测试类:

php artisan dusk:make LoginTest
登录后复制

这会在 tests/Browser 下生成 LoginTest.php。编辑该文件:

示例:测试用户登录功能

白瓜面试
白瓜面试

白瓜面试 - AI面试助手,辅助笔试面试神器

白瓜面试 40
查看详情 白瓜面试
public function testUserCanLogin()
{
    $this->browse(function ($browser) {
        $browser->visit('/login')
                ->type('email', 'test@example.com')
                ->type('password', 'password')
                ->press('Login')
                ->assertPathIs('/dashboard');
    });
}
登录后复制

说明:

  • visit():访问指定页面
  • type():在输入框中填入内容(参数为字段名或 CSS 选择器)
  • press():点击按钮(支持文本或选择器)
  • assertPathIs():断言当前 URL 路径

常用操作与断言

Dusk 提供丰富的交互和断言方法:

  • 点击链接$browser->clickLink('Register')
  • 选择下拉框$browser->select('role', 'admin')
  • 勾选复选框$browser->check('terms')
  • 等待元素出现$browser->waitFor('.success-message')
  • 执行 JavaScript$browser->script('return document.title;')
  • 截图$browser->screenshot('failed_login')(调试时很有用)
  • 断言可见性$browser->assertVisible('.alert-danger')

运行测试

直接运行:

php artisan dusk
登录后复制

默认使用 Chrome 浏览器无头模式运行。如果想查看实际操作过程(调试时),可以启动有头模式:

修改 tests/DuskTestCase.php 中的 driver() 方法:

protected function driver()
{
    return RemoteWebDriver::create(
        'http://localhost:9515',
        DesiredCapabilities::chrome()->setCapability(
            'goog:chromeOptions',
            ['args' => ['--disable-gpu', '--no-sandbox']]
            // 移除 '--headless' 即可显示浏览器
        )
    );
}
</font>
<p>确保 Chromedriver 版本与 Chrome 浏览器兼容。如遇端口冲突,可指定其他端口:</p>
<font face="Courier New">
<pre class="brush:php;toolbar:false;">
php artisan dusk --server-port=9516
登录后复制
基本上就这些。Dusk 让 Laravel 应用的端到端测试变得简单直观,特别适合验证关键用户流程。

以上就是Laravel Dusk如何进行浏览器自动化测试的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号