GTmetrixAPIでサイトのページロード時間を取得する
サイトパフォーマンステストサービスであるGTmetrixのAPIを利用して、 このブログのページロード時間を取得しました。
GTmetrixAPIについて
詳しい説明は公式ページに掲載されているので、そちらをご確認ください。
GTmetrix REST API | GTmetrix
無料(Basic)プランと有料プランがあるのですが、今回は無料プランを利用しました。
以下、無料プランの内容です。
- 1解析要求 = 1クレジット
- 無料ユーザは毎日20クレジットを貰える
- 最初のAPIキー作成で、テスト利用で使うために100クレジットを貰える
以下、料金プランです。
GTmetrixAPIの利用方法
GTmetrixAPIを利用するために、API Keyを発行します。
まず、GTmetrixAPIのサイトからSign UPします。
Sign UPが完了するとAPI keyが作成できるので作成します。
API keyを作成するとAPI Keyや現在のクレジット数などの情報が表示されるようになります。
解析に必要なクレジットも100与えられていることが分かりますね。
これで準備完了です。
GTmetrixAPIを利用する
このブログのページロード時間を取得します。
まず、このブログページを解析し、解析結果ページのurlを取得します。
curl --user [登録メールアドレス]:[APIキー] \ --form url=http://takedajs.hatenablog.jp/ --form x-metrix-adblock=0 \ https://gtmetrix.com/api/0.1/test
上記のcurlコマンドを叩いた結果です。
この解析をすることでクレジットが1減ります。
{"test_id":"GlDaptHf","poll_state_url":"https://gtmetrix.com/api/0.1/test/GlDaptHf"}
次に、解析結果ページのurlを元に解析結果を取得します。
curl --user [登録メールアドレス]:[APIキー] \ https://gtmetrix.com/api/0.1/test/GlDaptHf
上記のcurlコマンドを叩いた結果です。
目的であったページロード時間であるpage_load_time(ms)が取れているとこが分かります。
{ "error": "", "resources": { "har": "https://gtmetrix.com/api/0.1/test/GlDaptHf/har", "pagespeed": "https://gtmetrix.com/api/0.1/test/GlDaptHf/pagespeed", "pagespeed_files": "https://gtmetrix.com/api/0.1/test/GlDaptHf/pagespeed-files", "report_pdf": "https://gtmetrix.com/api/0.1/test/GlDaptHf/report-pdf", "report_pdf_full": "https://gtmetrix.com/api/0.1/test/GlDaptHf/report-pdf?full=1", "screenshot": "https://gtmetrix.com/api/0.1/test/GlDaptHf/screenshot", "yslow": "https://gtmetrix.com/api/0.1/test/GlDaptHf/yslow" }, "results": { "html_bytes": "18145", "html_load_time": "317", "page_bytes": "40431915", "page_elements": "231", "page_load_time": "8235", "pagespeed_score": "18", "report_url": "https://gtmetrix.com/reports/takedajs.hatenablog.jp/cXeiHRtQ", "yslow_score": "46" }, "state": "completed" }
まとめ
登録からcurlコマンドでのページロード時間取得まで、簡単にできました。
ただ、より正確な数値を出すためには、定期的にページロード時間を取得して、取得結果の平均を出す必要があります。GTmetrixAPIを利用するためのPHPライブラリが提供されているので、それを利用して簡単なアプリケーションを作ってみたいと思います。