隨著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
接下來(lái),我們需要通過(guò)運(yùn)行以下命令來(lái)安裝Laravel Dusk:
$ composer require --dev laravel/dusk
步驟2:設(shè)置Dusk
一旦您安裝了Laravel Dusk,您就需要執(zhí)行幾個(gè)設(shè)置步驟才能開(kāi)始測(cè)試。
首先,Dusk需要一個(gè).env.dusk.local文件,該文件是一個(gè).env文件的延伸,其中包含用于測(cè)試的環(huán)境變量。您可以通過(guò)以下方式創(chuàng)建.env.dusk.local文件:
$ cp .env .env.dusk.local
更改.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
最后,請(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); } }
步驟3:編寫(xiě)測(cè)試
現(xiàn)在,您可以開(kāi)始編寫(xiě)您的第一個(gè)Dusk測(cè)試。要編寫(xiě)測(cè)試,請(qǐng)創(chuàng)建一個(gè)tests/Browser目錄,在其中創(chuàng)建一個(gè)新的瀏覽器測(cè)試類。
使用Artisan制造器可以方便創(chuàng)建該文件,運(yùn)行以下命令:
$ php artisan dusk:make LoginTest
運(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', 'example@domain.com') ->type('password', 'password') ->press('Login') ->assertPathIs('/home'); }); } }
該示例測(cè)試在Chrome瀏覽器中打開(kāi)本地應(yīng)用程序,然后在登錄頁(yè)面輸入示例數(shù)據(jù),點(diǎn)擊登錄按鈕,然后驗(yàn)證重定向路徑是否為“/home”。
最后,運(yùn)行以下命令來(lái)運(yùn)行測(cè)試:
php artisan dusk
恭喜!您現(xiàn)在已經(jīng)完成了Laravel Dusk的入門(mén)教程。使用Laravel Dusk,可以輕松地編寫(xiě)自動(dòng)化UI測(cè)試,以確保您的應(yīng)用程序按照預(yù)期的方式工作。