隨著Web應(yīng)用程序的發(fā)展,測(cè)試自動(dòng)化已經(jīng)成為一個(gè)不可或缺的元素。在本文中,我們將探討Laravel Dusk,這是Laravel框架的一個(gè)功能強(qiáng)大的工具,用于自動(dòng)化UI測(cè)試。 Laravel Dusk提供了一個(gè)簡(jiǎn)單的API來(lái)運(yùn)行無(wú)頭瀏覽器,通過(guò)模擬用戶交互,驗(yàn)證您的Web應(yīng)用程序是否按照預(yù)期工作。
使用Laravel Dusk進(jìn)行自動(dòng)化UI測(cè)試的好處是什么?
快速而可靠的測(cè)試:Laravel Dusk是一個(gè)快速而可靠的測(cè)試工具,旨在使測(cè)試周期縮短,同時(shí)簡(jiǎn)化測(cè)試基礎(chǔ)架構(gòu)。更好的測(cè)試覆蓋范圍:使用Laravel Dusk可以測(cè)試您的應(yīng)用程序的許多方面,例如表單驗(yàn)證、用戶操作和身份驗(yàn)證等。模擬實(shí)際用戶交互:Laravel Dusk通過(guò)模擬實(shí)際用戶交互來(lái)測(cè)試應(yīng)用程序,因此您可以確保您的應(yīng)用程序?qū)嶋H上正在按照預(yù)期的方式工作。情境化測(cè)試:您可以通過(guò)不同的情境來(lái)執(zhí)行測(cè)試。這意味著您可以測(cè)試多種不同的方案,例如測(cè)試特定的網(wǎng)頁(yè)、測(cè)試不同的用戶角色和權(quán)限等。
接下來(lái),讓我們看一下如何在Laravel中使用Laravel Dusk進(jìn)行自動(dòng)化UI測(cè)試。
先決條件:
Laravel 5.4或更高版本PHP 7.0或更高版本
步驟1:安裝Laravel Dusk
Laravel Dusk是Laravel框架的一部分,因此我們需要先安裝Laravel框架。要安裝Laravel框架,請(qǐng)運(yùn)行以下命令:
$ composer create-project --prefer-dist laravel/laravel project-name
登錄后復(fù)制
接下來(lái),我們需要通過(guò)運(yùn)行以下命令來(lái)安裝Laravel Dusk:
$ composer require --dev laravel/dusk
登錄后復(fù)制
步驟2:設(shè)置Dusk
一旦您安裝了Laravel Dusk,您就需要執(zhí)行幾個(gè)設(shè)置步驟才能開始測(cè)試。
首先,Dusk需要一個(gè).env.dusk.local文件,該文件是一個(gè).env文件的延伸,其中包含用于測(cè)試的環(huán)境變量。您可以通過(guò)以下方式創(chuàng)建.env.dusk.local文件:
$ cp .env .env.dusk.local
登錄后復(fù)制
更改.env.dusk.local文件中的內(nèi)容以滿足您的測(cè)試需求。
Laravel Dusk還需要一個(gè)SQLite數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)測(cè)試期間使用的數(shù)據(jù)。您可以通過(guò)執(zhí)行以下命令來(lái)創(chuàng)建數(shù)據(jù)庫(kù):
$ touch database/database.sqlite
登錄后復(fù)制
最后,請(qǐng)?jiān)谀腁ppServiceProvider中注冊(cè)訪問(wèn)器,該訪問(wèn)器指示Dusk使用PHPUnit的ChromeDriver。
public function register()
{
if ($this->app->environment('local', 'testing')) {
$this->app->register(DuskServiceProvider::class);
}
}
登錄后復(fù)制
步驟3:編寫測(cè)試
現(xiàn)在,您可以開始編寫您的第一個(gè)Dusk測(cè)試。要編寫測(cè)試,請(qǐng)創(chuàng)建一個(gè)tests/Browser目錄,在其中創(chuàng)建一個(gè)新的瀏覽器測(cè)試類。
使用Artisan制造器可以方便創(chuàng)建該文件,運(yùn)行以下命令:
$ php artisan dusk:make LoginTest
登錄后復(fù)制
運(yùn)行此命令將創(chuàng)建一個(gè)名為L(zhǎng)oginTest.php的新測(cè)試類文件,請(qǐng)根據(jù)以下示例代碼更新此文件:
<?php
namespace TestsBrowser;
use LaravelDuskBrowser;
use TestsDuskTestCase;
class LoginTest extends DuskTestCase
{
/**
* A Dusk test example.
*
* @return void
*/
public function testLogin()
{
$this->browse(function (Browser $browser) {
$browser->visit('/login')
->type('email', '[email protected]')
->type('password', 'password')
->press('Login')
->assertPathIs('/home');
});
}
}
登錄后復(fù)制
該示例測(cè)試在Chrome瀏覽器中打開本地應(yīng)用程序,然后在登錄頁(yè)面輸入示例數(shù)據(jù),點(diǎn)擊登錄按鈕,然后驗(yàn)證重定向路徑是否為“/home”。
最后,運(yùn)行以下命令來(lái)運(yùn)行測(cè)試:
php artisan dusk
登錄后復(fù)制
恭喜!您現(xiàn)在已經(jīng)完成了Laravel Dusk的入門教程。使用Laravel Dusk,可以輕松地編寫自動(dòng)化UI測(cè)試,以確保您的應(yīng)用程序按照預(yù)期的方式工作。
以上就是Laravel開發(fā):如何使用Laravel Dusk進(jìn)行自動(dòng)化UI測(cè)試?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.xfxf.net其它相關(guān)文章!






