ホームページ  >  記事  >  バックエンド開発  >  Web サイトのパフォーマンス テストに PHP と Lighthouse を使用する方法

Web サイトのパフォーマンス テストに PHP と Lighthouse を使用する方法

WBOY
WBOYオリジナル
2023-06-19 15:36:00795ブラウズ

Web 開発者として、ユーザー エクスペリエンスと検索エンジンのランキングに対する Web サイトのパフォーマンスの重要性を認識する必要があります。高パフォーマンスの Web サイトを維持するには、Web サイトのパフォーマンスを検出して最適化するための定期的なパフォーマンス テストが必要です。さて、この記事では、Web サイトのパフォーマンス テストに PHP と Lighthouse を使用する方法を紹介します。

Lighthouse は、Web アプリケーションの品質とパフォーマンスをテストするために Google によって開発されたオープンソース ツールです。 Web ページの速度をテストするだけでなく、そのアクセシビリティ、ベスト プラクティス、検索エンジンの最適化も評価します。一般に、Lighthouse は Chrome ブラウザで使用できますが、Lighthouse テストを CI/CD パイプラインまたはスクリプトに統合する必要がある場合は、PHP が適切な選択です。

まず、PHP がインストールされていることと、PHP の基本的な知識があることを確認する必要があります。次に、Lighthouse PHP パッケージをインストールする必要があります。ターミナルで次のコマンドを使用して実行できます:

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

ここでは、nunomaduro/laravel-mix-phplighthouse パッケージを使用します。これは、Lighthouse テストを実行するためのシンプルで使いやすいコマンドを提供し、簡単に統合できるためです。 Laravel Mix を使用します。 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 メソッドを使用して、監査セクションがテスト結果に含まれているかどうかを確認します。

これでテストを実行できます。ターミナルで次のコマンドを使用してテストを実行します。

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

これにより、作成したばかりの LighthouseTest テスト クラスで testPerformance テスト メソッドが実行されます。すべてがうまくいけば、テストが成功し、テスト結果に関する詳細情報を含む report.json ファイルが storage/app/lighthouse ディレクトリに生成されたことがわかります。

コマンドラインの使用に加えて、Lighthouse テストを PHP アプリケーションに統合することもできます。各ページのパフォーマンスを記録するパフォーマンスログ.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 ファイルに記録します。このスクリプトを定期的に実行して、Web アプリケーションのパフォーマンスを監視できます。

この記事では、Web サイトのパフォーマンス テストに PHP と Lighthouse を使用する方法を紹介します。 Web 開発者であってもシステム管理者であっても、このチュートリアルを使用して Web アプリケーションのパフォーマンスを計測し、最適化することができます。

以上がWeb サイトのパフォーマンス テストに PHP と Lighthouse を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。