Als Webentwickler müssen Sie wissen, wie wichtig die Website-Leistung für das Benutzererlebnis und das Suchmaschinenranking ist. Um eine leistungsstarke Website aufrechtzuerhalten, sind regelmäßige Leistungstests erforderlich, um die Leistung der Website zu erkennen und zu optimieren. Nun, in diesem Artikel stellen wir vor, wie man PHP und Lighthouse zum Testen der Website-Leistung verwendet.
Lighthouse ist ein von Google entwickeltes Open-Source-Tool zum Testen der Qualität und Leistung von Webanwendungen. Es testet nicht nur die Geschwindigkeit einer Webseite, sondern bewertet auch deren Zugänglichkeit, Best Practices und Suchmaschinenoptimierung. Im Allgemeinen können wir Lighthouse im Chrome-Browser verwenden, aber wenn Sie Lighthouse-Tests in Ihre CI/CD-Pipeline oder Ihr Skript integrieren müssen, ist PHP eine gute Wahl.
Zunächst müssen Sie sicherstellen, dass Sie PHP installiert haben und über einige Grundkenntnisse in PHP verfügen. Als nächstes müssen wir das Lighthouse PHP-Paket installieren. Sie können dies mit dem folgenden Befehl im Terminal tun:
composer require nunomaduro/laravel-mix-phplighthouse --dev
Hier verwenden wir das Paket nunomaduro/laravel-mix-phplighthouse, da es einfache und unkomplizierte Befehle zum Ausführen von Lighthouse-Tests bereitstellt und problemlos in Laravel Mix integriert werden kann. Wenn Sie Laravel Mix nicht verwenden, sollten Sie die Verwendung anderer PHP Lighthouse-Pakete in Betracht ziehen.
Nachdem die Installation abgeschlossen ist, müssen wir einige Konfigurationsoptionen von Lighthouse festlegen. Erstellen Sie eine Datei „lighthouse.php“ im Stammverzeichnis des Projekts und fügen Sie den folgenden Inhalt hinzu:
<?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', ], ];
In dieser Konfigurationsdatei definieren wir mehrere Optionen:
Als nächstes erstellen Sie eine Datei mit dem Namen test.php im Stammverzeichnis des Projekts und fügen den folgenden Inhalt hinzu:
<?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']); } }
In dieser Datei erstellen wir eine Testklasse mit dem Namen LighthouseTest. In dieser Klasse definieren wir eine Testmethode namens testPerformance entsteht. Bei dieser Methode verwenden wir Artisan-Befehle, um Lighthouse-Tests auszuführen und die Ergebnisse im JSON-Format im angegebenen Verzeichnis zu speichern. Anschließend prüfen wir mit der Methode „assertArrayHasKey“, ob der Abschnitt „Audits“ in den Testergebnissen enthalten ist.
Jetzt können Sie den Test durchführen. Verwenden Sie den folgenden Befehl im Terminal, um den Test auszuführen:
./vendor/bin/phpunit --filter=LighthouseTest
Dadurch wird die testPerformance-Testmethode in der LighthouseTest-Testklasse ausgeführt, die wir gerade erstellt haben. Wenn alles gut geht, sehen Sie, dass der Test bestanden wurde und im Verzeichnis storage/app/lighthouse eine Datei „report.json“ generiert wurde, die detaillierte Informationen zu den Testergebnissen enthält.
Zusätzlich zur Verwendung der Befehlszeile können wir Lighthouse-Tests auch in unsere PHP-Anwendungen integrieren. Angenommen, wir haben ein Skript namens performancelog.php, um die Leistung jeder Seite aufzuzeichnen. Dann können wir diesem Skript den folgenden Code hinzufügen, um den Lighthouse-Test auszuführen:
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();
In diesem Beispiel verwenden wir Lighthouse, um die angegebene URL zu testen Zeichnen Sie die Punktzahl in der Datei performance.log auf. Sie können dieses Skript regelmäßig ausführen, um die Leistung Ihrer Webanwendung zu überwachen.
In diesem Artikel behandeln wir die Verwendung von PHP und Lighthouse zum Testen der Website-Leistung. Unabhängig davon, ob Sie Webentwickler oder Systemadministrator sind, können Sie dieses Tutorial verwenden, um die Leistung Ihrer Webanwendungen zu instrumentieren und zu optimieren.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP und Lighthouse zum Testen der Website-Leistung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!