
dusk
用 PHP 链式写法驱动真实浏览器,端到端测试 Laravel 应用
Laravel Dusk 是 Laravel 官方提供的端到端测试与浏览器自动化工具。它让 PHP 开发者无需手写复杂的 WebDriver 协议代码,就能用接近自然语言的链式 API 驱动真实浏览器,完成页面访问、表单填写、按钮点击、断言文本与元素可见性等操作。Dusk 默认使用 ChromeDriver,也支持其他 WebDriver 兼容浏览器,并内置了无头模式,方便在 CI 中运行。它解决了传统 PHPUnit 只能做单元/功能测试、无法覆盖 JavaScript 渲染和真实用户交互的问题,适合验证登录注册、支付流程、SPA 交互等关键路径。相比 Selenium 原生绑定,Dusk 与 Laravel 的测试生命周期、数据库迁移、认证系统深度集成,可复用测试环境配置,并支持页面对象模式组织复杂用例,降低维护成本。
项目数据
使用教程
⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。
环境要求
- 已有一个 Laravel 应用(Dusk 为 Laravel 官方测试工具)
- 本地已安装 PHP 运行环境
- 按 README 说明,默认无需安装 JDK 或 Selenium
- 需要可用的 Chrome 浏览器环境(Dusk 默认使用独立 Chromedriver)
安装与启动步骤
-
1确认 Laravel 项目
Dusk 是 Laravel 组件,需先有一个可运行的 Laravel 应用作为宿主项目;README 未给出创建项目的命令,请自行准备。
-
2查看官方文档
README 只提供文档入口,安装与配置说明均以官方文档为准,先打开文档确认当前版本要求。
-
3准备浏览器驱动
README 明确 Dusk 默认使用独立 Chromedriver,无需安装 JDK 或 Selenium;也可改用其他 Selenium 兼容驱动。
-
4按文档接入并运行
安装包、生成测试文件、执行测试的具体命令请严格照抄官方文档,README 未收录这些命令,不要凭记忆执行。
如何确认成功
README 未提供启动或验证命令,请以官方文档(https://laravel.com/docs/dusk)中的安装说明为准,确认测试可正常驱动浏览器即成功。
常见问题
Q:需要先安装 Selenium 或 JDK 吗?
A:不需要。README 明确说明 Dusk 默认使用独立的 Chromedriver,无需在机器上安装 JDK 或 Selenium。
Q:可以用 Chrome 以外的浏览器吗?
A:可以。README 说明你能够自由使用任何其他 Selenium 驱动,具体接入方式请查阅官方文档。
Q:为什么这份教程没有安装命令?
A:本次提供的 README 节选只有简介和文档链接,没有安装说明,为避免误导,未编造任何包名或参数。
注意事项
- 本教程依据的 README 节选不含安装步骤,实际安装请以 https://laravel.com/docs/dusk 为准。
- Dusk 面向 Laravel 项目,非 Laravel 的 PHP 项目需要额外改造。
- Dusk 默认驱动为独立 Chromedriver,支持无头模式,便于在 CI 中运行。
- 包管理与版本要求请参考 Packagist 上的 laravel/dusk 页面。
核心亮点
- 与 Laravel 深度集成,可直接复用测试数据库、认证和 .env 配置,开箱即用
- 链式 API 简洁直观,如 visit、type、click、assertSee,学习成本低
- 内置无头模式与页面对象模式,适合 CI 持续集成和复杂用例组织
不足之处
- 仅面向 Laravel 生态,非 Laravel 的 PHP 项目无法直接使用
- 依赖 ChromeDriver 等外部浏览器驱动,环境配置和版本匹配偶有麻烦
适用场景
- 验证用户注册登录、表单提交等关键业务流程
- 测试包含 JavaScript 渲染的前端交互,如弹窗、下拉菜单
- 在 CI 流水线中自动跑端到端回归测试,防止发布前功能退化
替代项目
Selenium、Codeception
项目介绍
上一篇:selenium
下一篇:stagehand-python
同类项目推荐
n8n
开源
拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。
Fair-code workflow automation platform with native AI capabilities. Combine visual b···
robotcode
开源
让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。
Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···
puppeteer
开源
用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。
JavaScript API for Chrome and Firefox
customermates
开源
比 Pipedrive 直观 10 倍的现代开源 CRM,轻松管理客户与自动化流程。
Building a modern alternative to Pipedrive that is 10x more intuitive.