takedajs ログ

備考録

GTmetrixAPIでサイトのページロード時間を取得する

サイトパフォーマンステストサービスであるGTmetrixのAPIを利用して、 このブログのページロード時間を取得しました。

f:id:takedajs:20160924212252p:plain

GTmetrixAPIについて

詳しい説明は公式ページに掲載されているので、そちらをご確認ください。
GTmetrix REST API | GTmetrix

無料(Basic)プランと有料プランがあるのですが、今回は無料プランを利用しました。
以下、無料プランの内容です。

  • 1解析要求 = 1クレジット
  • 無料ユーザは毎日20クレジットを貰える
  • 最初のAPIキー作成で、テスト利用で使うために100クレジットを貰える

以下、料金プランです。

f:id:takedajs:20160924212306p:plain

GTmetrixAPIの利用方法

GTmetrixAPIを利用するために、API Keyを発行します。

まず、GTmetrixAPIのサイトからSign UPします。

f:id:takedajs:20160924210319p:plain

Sign UPが完了するとAPI keyが作成できるので作成します。

f:id:takedajs:20160924210344p:plain

API keyを作成するとAPI Keyや現在のクレジット数などの情報が表示されるようになります。
解析に必要なクレジットも100与えられていることが分かりますね。

f:id:takedajs:20160924211251p:plain

これで準備完了です。

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ライブラリが提供されているので、それを利用して簡単なアプリケーションを作ってみたいと思います。