ホームページ >バックエンド開発 >PHPチュートリアル >Web サイトのパフォーマンス テストに PHP と Lighthouse を使用する方法
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', ], ];
この設定ファイルでは、いくつかのオプションを定義します。
次に、プロジェクトのルート ディレクトリに 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 サイトの他の関連記事を参照してください。