찾다
PHP 프레임워크LaravelLaravel 개발: 자동화된 UI 테스트를 위해 Laravel Dusk를 사용하는 방법은 무엇입니까?

웹 애플리케이션이 발전하면서 테스트 자동화는 필수 요소가 되었습니다. 이 글에서는 자동화된 UI 테스트를 위한 Laravel 프레임워크의 강력한 도구인 Laravel Dusk를 살펴보겠습니다. Laravel Dusk는 헤드리스 브라우저를 실행하여 사용자 상호 작용을 시뮬레이션하여 웹 애플리케이션이 예상대로 작동하는지 확인하는 간단한 API를 제공합니다.

자동 UI 테스트에 Laravel Dusk를 사용하면 어떤 이점이 있나요?

  • 빠르고 안정적인 테스트: Laravel Dusk는 테스트 인프라를 단순화하는 동시에 테스트 주기를 단축하도록 설계된 빠르고 안정적인 테스트 도구입니다.
  • 더 나은 테스트 범위: Laravel Dusk를 사용하여 양식 유효성 검사, 사용자 작업, 인증 등과 같은 애플리케이션의 다양한 측면을 테스트하세요.
  • 실제 사용자 상호 작용 시뮬레이션: Laravel Dusk는 실제 사용자 상호 작용을 시뮬레이션하여 애플리케이션을 테스트하므로 애플리케이션이 실제로 예상대로 작동하는지 확인할 수 있습니다.
  • 상황 테스트: 다양한 시나리오를 통해 테스트를 수행할 수 있습니다. 즉, 특정 웹 페이지 테스트, 다양한 사용자 역할 및 권한 테스트 등 다양한 시나리오를 테스트할 수 있습니다.

다음으로 Laravel에서 자동화된 UI 테스트를 위해 Laravel Dusk를 사용하는 방법을 살펴보겠습니다.

전제 조건:

  • Laravel 5.4 이상
  • PHP 7.0 이상

1단계: Laravel Dusk 설치

Laravel Dusk는 Laravel 프레임워크의 일부이므로 먼저 Laravel 프레임워크를 설치해야 합니다. Laravel 프레임워크를 설치하려면 다음 명령을 실행하세요:

$ composer create-project --prefer-dist laravel/laravel project-name

다음으로, 다음 명령을 실행하여 Laravel Dusk를 설치해야 합니다:

$ composer require --dev laravel/dusk

2단계: Dusk 설정

Laravel Dusk가 설치되면 다음 작업을 수행해야 합니다. 테스트를 시작하려면 몇 가지 설정 단계가 필요합니다.

먼저 Dusk에는 테스트용 환경 변수가 포함된 .env 파일의 확장자인 .env.dusk.local 파일이 필요합니다. 다음 방법으로 .env.dusk.local 파일을 생성할 수 있습니다.

$ cp .env .env.dusk.local

테스트 요구 사항에 맞게 .env.dusk.local 파일의 내용을 변경합니다.

Laravel Dusk에는 테스트 중에 사용되는 데이터를 저장하기 위해 SQLite 데이터베이스도 필요합니다. 다음을 실행하여 데이터베이스를 생성할 수 있습니다.

$ touch database/database.sqlite

마지막으로 Dusk가 PHPUnit의 ChromeDriver를 사용하도록 지시하는 AppServiceProvider에 접근자를 등록합니다.

public function register()
{
    if ($this->app->environment('local', 'testing')) {
        $this->app->register(DuskServiceProvider::class);
    }
}

3단계: 테스트 작성

이제 첫 번째 Dusk 테스트 작성을 시작할 수 있습니다. 테스트를 작성하려면 테스트/브라우저 디렉터리를 만들고 그 안에 새 브라우저 테스트 클래스를 만듭니다.

이 파일은 Artisan Maker를 사용하여 쉽게 생성할 수 있습니다. 다음 명령을 실행하세요:

$ php artisan dusk:make LoginTest

이 명령을 실행하면 LoginTest.php라는 새 테스트 클래스 파일이 생성됩니다. 다음 예제 코드에 따라 이 파일을 업데이트하세요:

<?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');
        });
    }
}

예제에서는 Chrome 브라우저에서 로컬 애플리케이션을 열어 테스트한 후 로그인 페이지에 샘플 데이터를 입력하고 로그인 버튼을 클릭한 다음 리디렉션 경로가 "/home"인지 확인합니다.

마지막으로 다음 명령을 실행하여 테스트를 실행합니다.

php artisan dusk

축하합니다! 이제 Laravel Dusk 시작 튜토리얼을 완료했습니다. Laravel Dusk를 사용하면 자동화된 UI 테스트를 쉽게 작성하여 애플리케이션이 예상대로 작동하는지 확인할 수 있습니다.

위 내용은 Laravel 개발: 자동화된 UI 테스트를 위해 Laravel Dusk를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
laravel单点登录方法详解laravel单点登录方法详解Jun 15, 2022 am 11:45 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于单点登录的相关问题,单点登录是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,下面一起来看一下,希望对大家有帮助。

一起来聊聊Laravel的生命周期一起来聊聊Laravel的生命周期Apr 25, 2022 pm 12:04 PM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于Laravel的生命周期相关问题,Laravel 的生命周期从public\index.php开始,从public\index.php结束,希望对大家有帮助。

laravel中guard是什么laravel中guard是什么Jun 02, 2022 pm 05:54 PM

在laravel中,guard是一个用于用户认证的插件;guard的作用就是处理认证判断每一个请求,从数据库中读取数据和用户输入的对比,调用是否登录过或者允许通过的,并且Guard能非常灵活的构建一套自己的认证体系。

laravel中asset()方法怎么用laravel中asset()方法怎么用Jun 02, 2022 pm 04:55 PM

laravel中asset()方法的用法:1、用于引入静态文件,语法为“src="{{asset(‘需要引入的文件路径’)}}"”;2、用于给当前请求的scheme前端资源生成一个url,语法为“$url = asset('前端资源')”。

实例详解laravel使用中间件记录用户请求日志实例详解laravel使用中间件记录用户请求日志Apr 26, 2022 am 11:53 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。

laravel中间件基础详解laravel中间件基础详解May 18, 2022 am 11:46 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于中间件的相关问题,包括了什么是中间件、自定义中间件等等,中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制,下面一起来看一下,希望对大家有帮助。

laravel路由文件在哪个目录里laravel路由文件在哪个目录里Apr 28, 2022 pm 01:07 PM

laravel路由文件在“routes”目录里。Laravel中所有的路由文件定义在routes目录下,它里面的内容会自动被框架加载;该目录下默认有四个路由文件用于给不同的入口使用:web.php、api.php、console.php等。

laravel中的scope怎么用laravel中的scope怎么用Jun 09, 2022 am 11:15 AM

在laravel中,scope用于处理模型中的数据,在模型中可以定义scope开头方法,这类方法可以通过模型直接调用,被称为查询作用域,语法为“public function scope首字母大写单词($query){...}”。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구