Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHP WebDriver untuk menguji masa memuatkan halaman

Cara menggunakan PHP WebDriver untuk menguji masa memuatkan halaman

PHPz
PHPzasal
2023-06-15 22:06:001508semak imbas

Dengan populariti Internet yang berterusan, masa memuatkan halaman, sebagai penunjuk penting pengalaman pengguna, adalah sangat penting untuk pengoptimuman tapak web dan penalaan prestasi. Semasa proses ujian, cara mengukur masa pemuatan halaman dengan tepat menjadi isu penting. Artikel ini akan memperkenalkan cara menggunakan PHP WebDriver untuk menguji masa memuatkan halaman.

1. Pengenalan kepada PHP WebDriver

PHP WebDriver ialah alat pembangunan PHP berdasarkan Selenium WebDriver Ia mengawal penyemak imbas untuk melaksanakan operasi halaman dengan memanggil pemacu asas penyemak imbas. Menggunakan PHP WebDriver, anda boleh melaksanakan ujian automatik, merangkak dan fungsi lain halaman web.

2. Kaedah ujian masa memuatkan halaman

Sebelum menguji masa memuatkan halaman, kita perlu memahami beberapa konsep:

  • Masa pemaparan pertama (Masa Cat Pertama ): merujuk kepada perbezaan masa antara apabila penyemak imbas mula memaparkan halaman dan apabila piksel pertama muncul pada halaman.
  • First Contentful Paint: merujuk kepada masa apabila kumpulan pertama kandungan bermakna muncul pada halaman.
  • Masa Interaktif Pertama: merujuk kepada masa apabila skrip utama pada halaman telah dimuatkan dan pengguna boleh mula berinteraksi.
  • Masa Muat Halaman: merujuk kepada masa apabila semua sumber pada halaman dimuatkan sepenuhnya dan skrip dilaksanakan.

Berdasarkan konsep di atas, ujian berikut boleh dilakukan:

  1. Ujian Kali Cat Pertama

Apabila penyemak imbas mula melukis Halaman , kita boleh menggunakan 'first-paint' dalam Performance Timing API untuk mendapatkan masa pemaparan pertama adalah seperti berikut:

$driver->get('http://www.baidu.com');
$performance = $driver->executeScript('return window.performance.timing');
$firstPaint = $performance['responseStart'] - $performance['navigationStart'];
echo "First Paint Time: " . $firstPaint . "ms
";
  1. Ujian First Contentful Paint

Disebabkan caching penyemak imbas, paparan pertama mungkin tidak lengkap, jadi kami memerlukan kaedah yang lebih tepat untuk menguji First Contentful Paint (FCP).

Dapatkan cap masa perubahan kandungan terkini melalui API Pemerhati penyemak imbas untuk mencapai fungsi mengukur FCP Kod sampel adalah seperti berikut:

$driver->get('http://www.baidu.com');
$driver->executeScript('function observerCallback(entries) {
  entries.forEach(entry => {
      if(entry.entryType == "paint" && entry.name == "first-contentful-paint") {
        console.log(entry.startTime);
        return entry.startTime;
      }
  });
}
var observer = new PerformanceObserver(observerCallback);
observer.observe({entryTypes: ["paint"]});');
  1. Ujian Masa Interaktif Pertama) <.>
Untuk Masa Interaktif Pertama, anda boleh mengujinya dengan memantau acara DOMContentLoaded Kod sampel adalah seperti berikut:

$driver->get('http://www.baidu.com');
$driver->executeScript('function ti() {
    var ti = window.performance.timing.domContentLoadedEventEnd - window.performance.timing.navigationStart;
    console.log(ti);
    return ti;
}
return {ti: ti()};');

    Ujian Masa Muat Halaman
  1. .
Masa memuatkan halaman penuh boleh diperolehi melalui API pemasaan navigasi Kod contoh adalah seperti berikut:

$driver->get('http://www.baidu.com');
$performance = $driver->executeScript('return window.performance.timing');
$pageLoadTime = $performance['loadEventEnd'] - $performance['navigationStart'];
echo "Page Load Time: " . $pageLoadTime . "ms
";

3 Bantu kami memahami prestasi halaman dengan lebih baik dan menyediakan rujukan penting untuk mengoptimumkan tapak web. Artikel ini memperkenalkan cara menggunakan PHP WebDriver untuk menguji masa memuatkan halaman Pembaca boleh melaksanakannya dengan sewajarnya berdasarkan situasi sebenar mereka.

Atas ialah kandungan terperinci Cara menggunakan PHP WebDriver untuk menguji masa memuatkan halaman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn