Tests Laravel avec Dusk : automatiser les tests navigateur Selenium-style

Maitrisez Laravel Dusk pour vos tests navigateur. Installation, ecriture de tests, interactions JavaScript et bonnes pratiques avec ChromeDriver.

Mahmoud DEVO
Mahmoud DEVO
December 28, 2025 3 min read
Tests Laravel avec Dusk : automatiser les tests navigateur Selenium-style
Table of Contents

Introduction

L’écriture de tests pour les applications web est une étape cruciale du développement logiciel. Les développeurs ont besoin d’une solution fiable et efficace pour tester leurs applications avant leur déploiement en production. Dans ce chapitre, nous allons explorer deux outils de testing populaires dans le monde de Laravel : BrowserKit Testing et Dusk.

BrowserKit Testing

BrowserKit Testing est un package qui a été initialement inclus dans les versions précédentes de Laravel (avant la version 5.4). Cet outil permet de simuler une interaction avec l’application en utilisant le navigateur web. Il peut être utile pour des interactions simples comme cliquer sur un lien ou remplir un formulaire, mais il ne prend pas en compte les aspects JavaScript.

Malheureusement, BrowserKit Testing a l’apparence d’une solution dépassée et obsolète. Les documents officiels de Laravel n’en parlent même plus, ce qui suggère que cette solution n’est plus recommandée. Si vous souhaitez en savoir plus sur cet outil, nous vous conseillons de consulter la première édition de ce livre, disponible sous forme de PDF gratuit.

Dusk

Dusk est un outil de testing créé par Laravel pour faciliter l’écriture de tests Selenium-style pour les applications web. Il utilise ChromeDriver et permet d’interagir avec votre application comme si elle était une vraie page web. Voici comment écrire un test simple en utilisant Dusk :

$this->browse(function ($browser) {
    $browser->visit('/register')
        ->type('email', 'test@example.com')
        ->type('password', 'secret')
        ->press('Sign Up')
        ->assertPathIs('/dashboard');
});

Dusk est particulièrement utile pour les tests de regression, car il permet d’interagir avec votre application comme si elle était une vraie page web. Cela signifie que vous pouvez tester des interactions complexes avec JavaScript et même prendre des écrans d’échec.

Installation de Dusk

Pour installer Dusk, exécutez les commandes suivantes :

composer require --dev laravel/dusk
php artisan dusk:install

Modifiez ensuite votre fichier .env pour définir la variable APP_URL sur l’URL que vous utilisez pour accéder à votre site dans votre navigateur local.

Écriture de tests en utilisant Dusk

Pour écrire un nouveau test en utilisant Dusk, utilisez la commande suivante :

php artisan dusk:make RatingTest

Ce test sera placé dans le fichier tests/Browser/RatingTest.php.

Customisation des variables d’environnement pour Dusk

Vous pouvez personnaliser les variables d’environnement pour Dusk en créant un nouveau fichier nommé .env.dusk.local. Remplacez local par l’environnement dans lequel vous travaillez (par exemple, “staging”).

Exemples de tests avec Dusk

Voici quelques exemples de tests que vous pouvez écrire en utilisant Dusk :

public function testBasicExample()
{
    $user = factory(User::class)->create();
    $this->browse(function ($browser) use ($user) {
        $browser->visit('login')
            ->type('email', $user->email)
            ->type('password', 'secret')
            ->press('Login')
            ->assertPathIs('/home');
    });
}

Notez que la syntaxe pour l’authentification est légèrement différente de celle utilisée dans les tests de Laravel. Utilisez $browser->loginAs($user) au lieu de $this->be($user).

Pitfalls à éviter

Lorsque vous utilisez Dusk, il y a quelques choses que vous devez garder à l’esprit pour éviter des erreurs et des comportements indésirables :

  • N’utilisez pas le trait RefreshDatabase avec Dusk. Utilisez plutôt le trait DatabaseMigrations.
  • Utilisez les attributs dusk="selector-here" pour référencer vos éléments HTML de manière plus fiable.
  • Notez que Dusk utilise des transactions pour interagir avec votre base de données, ce qui peut causer des problèmes si vous utilisez le trait RefreshDatabase.

Conclusion

Dusk est un outil puissant et utile pour écrire des tests Selenium-style pour les applications web. Il permet d’interagir avec votre application comme si elle était une vraie page web et prend en compte les aspects JavaScript. Cependant, il est important de garder à l’esprit les pittoresques mentionnés ci-dessus pour éviter des erreurs et des comportements indésirables.

Nous vous recommandons d’utiliser Dusk pour vos tests de regression et d’explorer ses fonctionnalités plus en profondeur dans la documentation officielle.

Advertisement

In-Article Ad

Dev Mode

Share this article

Mahmoud DEVO

Mahmoud DEVO

Senior Full-Stack Developer

I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.

Enjoyed this article?

Subscribe to get more tech content delivered to your inbox.

Related Articles