PHP, Seleniumでページの読み込み時間を測定する。

WordPressで作ったサイトをリリースする前に、ページがちゃんと機能しているかを自動テストするスクリプトをSelenium&PHPで書きました。 ついでにそこで処理の負担になっているところ(サーバーからのレスポンスに時間がかかっているところ)を発見し、wordpressのコードをブラッシュアップしてやろうと試みて見ます。

そこで今回は、このブラッシュアップに必要な、seleniumでページの読み込み時間を取得する方法についてまとめたいと思います。

seleniumのcapabilitiesでネットワークのログを有効にするやり方もありましたが、今回はJavascriptを実行してwindowオブジェクトから読み込み時間を取得するやり方について書きます。

リクエストしてからロードイベントが終わるまでの時間の差分を取ることで読み込み時間を得られます。

result = $this->driver->executeScript("return (window.performance.timing.loadEventEnd - window.performance.timing.requestStart) / 1000");
echo($result);

他にもリダイレクト時間やDOMの構築時間など様々な値が同様に取得できます。 詳しくはこちらを参考にして見てください。

Navigation Timing APIの仕様