modelizer / selenium
laravel 5 的 Selenium 包。
v2.0.2
2019-08-19 12:23 UTC
Requires
- php: >=7.1
- guzzlehttp/guzzle: ^6.2
- lmc/steward: dev-master
- orchestra/testbench: ^3.3
README
重点
- 您只需要下载此包,无需下载任何其他内容。
- 默认情况下,此包将下载 selenium 独立服务器 v3.11.0,并且根据操作系统下载 chrome 驱动程序。
- 基于 Fluit API 的 浏览器测试套件
- 具有最小配置选项,许多内容都从 Laravel 默认配置中拉取。
要求
- 本地机器上应已安装 Java。
- 您应该至少对 PHPUnit 有基本了解。
安装指南
使用 Laravel 包管理器 进行安装,然后您可以通过运行以下命令 ⇩ 安装它,并且管理器将负责注册 selenium 服务提供者。
php artisan add modelizer/selenium
或者您也可以使用 composer。
composer require modelizer/selenium "~2.0"
在 app.php
中注册服务提供者
Modelizer\Selenium\SeleniumServiceProvider::class
使用环境变量进行操作:您需要在根目录下创建单独的文件 testing.env
以加载测试特定变量。示例
APP_URL=http://testing.dev:8000
别忘了清除 Laravel 配置缓存文件。
php artisan config:clear
我们完成了!现在启动 selenium 服务器。
php artisan selenium:start
创建第一个测试
通过 Artisan 命令
php artisan selenium:make:test SeleniumExampleTest
手动
- 在
tests
目录中创建一个空的SeleniumExampleTest.php
文件。 - 将以下代码添加到
SeleniumExampleTest.php
文件中,并运行phpunit vendor/bin/phpunit tests/SeleniumExampleTest.php
<?php namespace Tests; use Modelizer\Selenium\SeleniumTestCase; class SeleniumExampleTest extends SeleniumTestCase { /** * A basic functional test example. * * @return void */ public function testBasicExample() { // This is a sample code you can change as per your current scenario $this->visit('/') ->see('Laravel') ->hold(3); } /** * A basic submission test example. * * @return void */ public function testLoginFormExample() { $loginInput = [ 'username' => 'dummy-name', 'password' => 'dummy-password' ]; // Login form test case scenario $this->visit('/login') ->submitForm('#login-form', $loginInput) ->see('Welcome'); // Expected Result } }
运行测试用例
vendor/bin/steward run staging chrome
此包是在 Steward 的基础上构建的,用于运行具有特定参数的测试用例,您可以查看 Steward 的 Wiki
有关完整文档,您可以查看我们的 API Wiki。它内部继承自 facebook Web Driver,因此您可以充分利用这些依赖项包的全部功能。
注意
- 使用了 Selenium 3.11.0 和 ChromeDriver 2.35。
- 欢迎贡献或创建问题。
- 对于 Laravel 5.3 以下版本的用户,无法在 PHPUnit 和 Selenium 之间切换。
- 我们将变更日志作为 发布板 和 Wiki。
- 如果使用虚拟机(例如 VirtualBox、Vagrant、Homestead),则需要 framebuffer。
# install xvfb if needed: sudo apt-get install xvfb # run Xvfb sudo nohup Xvfb :10 -ac # Set DISPLAY environment variable export DISPLAY=:10
路线图
增加了 Firefox 支持。(注意:只有当用户已本地安装 Firefox 时才有效)需要添加 Windows 和 Linux 支持。驱动文件应按用户特定的操作系统下载。- 添加更多对 API 的支持。
- 添加对多个浏览器的支持。
- 如果可能,添加 Behat 集成(研究)
- 支持第三方服务,如 saucelab。
总结
许多API,如see
、wait
、submitForm
等,已经在Laravel 5.3中实现。这个包的整体目标是使用户能够随时轻松切换测试类型。例如:如果用户想要使用Selenium进行测试,那么他只需在他的测试用例中扩展Modelizer\Selenium\SeleniumTestCase
;如果他想进行PHPUnit测试,那么他可以通过扩展Laravel 5.3默认提供的TestCase
来实现。这将使用户能够在不更改API的情况下,使用多种不同的测试类型进行测试。
贡献
- 如果您喜欢这个包,可以给它一个星标。
- 帮助保持readme更新,添加一些这个包中存在但其他人看不到的功能。
- 请随意创建PR(Pull Request)、Issue或建议,以帮助这个包成长。只需这样做。欢迎您:)