>  기사  >  백엔드 개발  >  웹사이트 성능 테스트를 위해 PHP와 Lighthouse를 사용하는 방법

웹사이트 성능 테스트를 위해 PHP와 Lighthouse를 사용하는 방법

WBOY
WBOY원래의
2023-06-19 15:36:00795검색

웹 개발자로서 귀하는 사용자 경험과 검색 엔진 순위에 대한 웹사이트 성능의 중요성을 알아야 합니다. 고성능 웹사이트를 유지하려면 정기적인 성능 테스트를 통해 웹사이트 성능을 감지하고 최적화해야 합니다. 자, 이번 글에서는 웹사이트 성능 테스트를 위해 PHP와 Lighthouse를 사용하는 방법을 소개하겠습니다.

Lighthouse는 웹 애플리케이션의 품질과 성능을 테스트하기 위해 Google에서 개발한 오픈 소스 도구입니다. 웹페이지의 속도를 테스트할 뿐만 아니라 접근성, 모범 사례 및 검색 엔진 최적화도 평가합니다. 일반적으로 Chrome 브라우저에서 Lighthouse를 사용할 수 있지만 Lighthouse 테스트를 CI/CD 파이프라인 또는 스크립트에 통합해야 하는 경우 PHP가 좋은 선택입니다.

먼저 PHP가 설치되어 있는지 확인하고 PHP에 대한 기본 지식이 있어야 합니다. 다음으로 Lighthouse PHP 패키지를 설치해야 합니다. 터미널에서 다음 명령을 사용하여 수행할 수 있습니다:

composer require nunomaduro/laravel-mix-phplighthouse --dev

여기에서는 Lighthouse 테스트를 실행하기 위한 간단하고 쉬운 명령을 제공하고 Laravel Mix와 쉽게 통합될 수 있는 nunomaduro/laravel-mix-phplighthouse 패키지를 사용하고 있습니다. Laravel Mix를 사용하지 않는 경우 다른 PHP Lighthouse 패키지 사용을 고려해보세요.

설치가 완료되면 Lighthouse의 일부 구성 옵션을 설정해야 합니다. 프로젝트의 루트 디렉터리에 lighthouse.php 파일을 만들고 다음 콘텐츠를 추가합니다.

<?php
return [
    'temp_dir' => 'storage/app/lighthouse',
    'chrome_path' => '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
    'chrome_flags' => [
        '--show-paint-rects',
        '--headless',
    ],
    'audits' => [
        'first-contentful-paint',
        'largest-contentful-paint',
        'first-meaningful-paint',
        'speed-index',
        'total-blocking-time',
        'cumulative-layout-shift',
        'interactive',
        'uses-long-cache-ttl',
        'user-timings',
        'critical-request-chains',
        'redirects',
        'content-width',
        'font-display',
        'optimal-images',
    ],
];

이 구성 파일에서는 여러 옵션을 정의합니다.

  • temp_dir: Lighthouse 테스트 데이터가 저장되는 디렉터리를 지정합니다.
  • chrome_path: Chrome 브라우저의 위치를 ​​지정합니다.
  • chrome_flags: Chrome 브라우저의 일부 매개변수를 지정합니다. --headless는 헤드리스 모드에서 실행됨을 의미합니다.
  • audits: Lighthouse 테스트에 사용되는 감사 항목을 지정합니다. 여기에서는 일반적으로 사용되는 몇 가지 감사 항목을 선택했으며 필요에 따라 추가하거나 삭제할 수 있습니다.

다음으로 프로젝트의 루트 디렉터리에 test.php라는 파일을 만들고 다음 콘텐츠를 추가합니다.

<?php

require_once __DIR__.'/vendor/autoload.php';

use NunoMaduroPHPUnitLaravelTestCasesBrowserTestCase;

class LighthouseTest extends BrowserTestCase
{
    public function testPerformance()
    {
        $this->artisan('lighthouse https://www.example.com --json --no-interaction');
        $output = json_decode(file_get_contents(base_path('storage/app/lighthouse/report.json')), true);
        $this->assertArrayHasKey('audits', $output['categories']);
    }
}

이 파일에서 LighthouseTest라는 테스트 클래스를 만듭니다. 이 클래스에서는 testPerformance라는 테스트 메서드를 정의합니다. 생성됩니다. 이 방법에서는 Artisan 명령을 사용하여 Lighthouse 테스트를 실행하고 결과를 JSON 형식으로 지정된 디렉터리에 저장합니다. 그런 다음 AssertArrayHasKey 메서드를 사용하여 Audits 섹션이 테스트 결과에 포함되어 있는지 확인합니다.

이제 테스트를 실행할 수 있습니다. 테스트를 실행하려면 터미널에서 다음 명령을 사용하세요.

./vendor/bin/phpunit --filter=LighthouseTest

이렇게 하면 방금 생성한 LighthouseTest 테스트 클래스에서 testPerformance 테스트 메서드가 실행됩니다. 모든 것이 순조롭게 진행되면 테스트가 통과되고 테스트 결과에 대한 자세한 정보가 포함된 report.json 파일이 Storage/app/lighthouse 디렉터리에 생성된 것을 볼 수 있습니다.

명령줄을 사용하는 것 외에도 Lighthouse 테스트를 PHP 애플리케이션에 통합할 수도 있습니다. 각 페이지의 성능을 기록하기 위해performancelog.php라는 스크립트가 있다고 가정하고 이 스크립트에 다음 코드를 추가하여 Lighthouse 테스트를 실행할 수 있습니다.

require_once __DIR__.'/vendor/autoload.php';

use NunoMaduroPHPUnitLaravelTestCasesBrowserTestCase;

class LighthouseTest extends BrowserTestCase
{
    public function run()
    {
        $url = 'https://www.example.com';
        $this->artisan("lighthouse {$url} --json --no-interaction");
        $output = json_decode(file_get_contents(base_path('storage/app/lighthouse/report.json')), true);
        $categories = array_intersect_key($output['categories'], array_flip(['performance']));
        $score = array_sum(array_column($categories['performance']['auditRefs'], 'score')) / count($categories['performance']['auditRefs']);
        file_put_contents('performance.log', "{$url}: {$score}
", FILE_APPEND);
    }
}

$LighthouseTest = new LighthouseTest;
$LighthouseTest->run();

이 예에서는 Lighthouse를 사용하여 지정된 URL을 테스트합니다. Performance.log 파일에 점수를 기록합니다. 이 스크립트를 주기적으로 실행하여 웹 애플리케이션의 성능을 모니터링할 수 있습니다.

이 글에서는 웹사이트 성능 테스트를 위해 PHP와 Lighthouse를 사용하는 방법을 다룹니다. 웹 개발자이든 시스템 관리자이든 이 튜토리얼을 사용하여 웹 애플리케이션의 성능을 계측하고 최적화할 수 있습니다.

위 내용은 웹사이트 성능 테스트를 위해 PHP와 Lighthouse를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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