Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan PHP dan Rumah Api untuk ujian prestasi laman web
Sebagai pembangun web, anda mesti tahu kepentingan prestasi tapak web kepada pengalaman pengguna dan kedudukan enjin carian. Untuk mengekalkan tapak web berprestasi tinggi, ujian prestasi tetap diperlukan untuk mengesan dan mengoptimumkan prestasi tapak web. Nah, dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP dan Rumah Api untuk ujian prestasi laman web.
Lighthouse ialah alat sumber terbuka yang dibangunkan oleh Google untuk menguji kualiti dan prestasi aplikasi web. Ia bukan sahaja menguji kelajuan halaman web, tetapi juga menilai kebolehcapaian, amalan terbaik dan pengoptimuman enjin cariannya. Secara umumnya, kami boleh menggunakan Lighthouse dalam penyemak imbas Chrome, tetapi jika anda perlu menyepadukan ujian Lighthouse ke dalam saluran paip atau skrip CI/CD anda, PHP ialah pilihan yang baik.
Pertama sekali, anda perlu memastikan anda telah memasang PHP dan mempunyai pengetahuan asas tentang PHP. Seterusnya, kita perlu memasang pakej Lighthouse PHP. Anda boleh melakukannya menggunakan arahan berikut dalam terminal:
composer require nunomaduro/laravel-mix-phplighthouse --dev
Di sini kami menggunakan pakej nunomaduro/laravel-mix-phplighthouse kerana ia menyediakan arahan yang ringkas dan mudah untuk menjalankan ujian Lighthouse dan boleh Disepadukan dengan Laravel Mix dengan mudah . Jika anda tidak menggunakan Laravel Mix, pertimbangkan untuk menggunakan pakej PHP Lighthouse yang lain.
Selepas pemasangan selesai, kami perlu menetapkan beberapa pilihan konfigurasi Rumah Api. Cipta fail lighthouse.php dalam direktori akar projek dan tambah kandungan berikut:
<?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', ], ];
Dalam fail konfigurasi ini, kami mentakrifkan beberapa pilihan:
Seterusnya, buat fail bernama test.php dalam direktori akar projek dan tambah kandungan berikut:
<?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']); } }
Dalam fail ini kami mencipta fail bernama LighthouseTest Test kelas, dalam kelas ini, kami mentakrifkan kaedah ujian yang dipanggil testPerformance. Dalam kaedah ini, kami menggunakan perintah Artisan untuk menjalankan ujian Rumah Api dan menyimpan keputusan dalam format JSON ke direktori yang ditentukan. Kami kemudian menggunakan kaedah assertArrayHasKey untuk menyemak sama ada bahagian Audit disertakan dalam keputusan ujian.
Anda kini boleh menjalankan ujian. Gunakan arahan berikut dalam terminal untuk menjalankan ujian:
./vendor/bin/phpunit --filter=LighthouseTest
Ini akan menjalankan kaedah ujian testPerformance dalam kelas ujian LighthouseTest yang baru kami buat. Jika semuanya berjalan lancar, anda akan melihat bahawa ujian itu lulus dan fail report.json telah dijana dalam direktori storan/apl/rumah api, yang mengandungi maklumat terperinci tentang keputusan ujian.
Selain menggunakan baris arahan, kami juga boleh menyepadukan ujian Lighthouse ke dalam aplikasi PHP kami. Katakan kita mempunyai skrip bernama performancelog.php untuk merekod prestasi setiap halaman, maka kita boleh menambah kod berikut dalam skrip ini untuk menjalankan ujian Rumah Api:
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();
Dalam contoh ini, kami menggunakan ujian Rumah Api yang ditentukan URL dan log skor ke fail performance.log. Anda boleh menjalankan skrip ini secara berkala untuk memantau prestasi aplikasi web anda.
Dalam artikel ini, kami memperkenalkan cara menggunakan PHP dan Rumah Api untuk ujian prestasi tapak web. Sama ada anda seorang pembangun web atau pentadbir sistem, anda boleh menggunakan tutorial ini untuk instrumen dan mengoptimumkan prestasi aplikasi web anda.
Atas ialah kandungan terperinci Cara menggunakan PHP dan Rumah Api untuk ujian prestasi laman web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!