首頁  >  文章  >  後端開發  >  如何使用PHP和Lighthouse進行網站效能測試

如何使用PHP和Lighthouse進行網站效能測試

WBOY
WBOY原創
2023-06-19 15:36:00843瀏覽

身為Web開發者,你一定知道網站效能對使用者體驗和搜尋引擎排名的重要性。而要保持一個高效能的網站需要進行定期的效能測試來偵測和優化網站的效能。那麼,在這篇文章中,我們將介紹如何使用PHP和Lighthouse進行網站效能測試。

Lighthouse是一個由Google開發的開源工具,用於測試Web應用程式的品質和效能。它不僅可以測試Web頁面的速度,還可以評估其可訪問性、最佳實踐和搜尋引擎優化。一般來說,我們可以在Chrome瀏覽器中使用Lighthouse,但如果你需要整合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方法檢查測試結果中是否包含Audits部分。

現在可以執行測試了。在終端機中使用以下命令來執行測試:

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

這將會執行我們剛剛建立的LighthouseTest測試類別中的testPerformance測試方法。如果一切正常的話,你會看到測試運行通過了,並且在storage/app/lighthouse目錄下生成了一個report.json文件,包含了測試結果的詳細資訊。

除了使用命令列之外,我們還可以將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進行網站效能測試。無論你是Web開發者還是系統管理員,你都可以使用這個教學來偵測和優化你的網路應用程式的效能。

以上是如何使用PHP和Lighthouse進行網站效能測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn