URLにWebPagetestスクリプトを追加する 【上級】
目的:WebPagetestスクリプトを使用すると、ヘッダーの追加、Cookieの設定、複数のページの実行、ショッピングカートへのログイン、商品の追加など、あらゆる種類の操作を実行できます。
Written by Mark Zeman
Enterpriseプランを利用している場合、テストするURLにWebPagetestスクリプトを追加できます。 「Settings」ページで「Site」を編集する際に、各URLの横にスクリプトを追加できるスクリプトアイコンがあります。
WebPagetestスクリプトを使用すると、ヘッダーの追加、Cookieの設定、複数のページの実行、ショッピングカートへのログインや、商品の追加といったページ上でのアクションなど、あらゆる種類の操作を実行できます。
WebPagetest.orgを使用してスクリプトを作成してみましょう。動作を確認したら、SpeedCurveアカウントに追加してください。「WebPagetest scripting documentation」には、利用可能なオプションがあり、ページ下部にサンプルのスクリプトが含まれています。
SpeedCurveスクリプトの警告
SpeedCurve用にWebPageTestスクリプトを書くときに注意点について。
結果には、1つのステップは必要です
複雑なスクリプトは、次のような複数のステップで結果を生成します。
SpeedCurveは、どのステップを最終結果として使用するかわからないため、これらの結果を解析できません。「combineSteps」をスクリプトの先頭に置くことで、複数のステップの生成を避けることができます。
setEventNameコマンドはサポートされていません
setEventNameコマンドはテスト結果に複数のステップを生成しますが、SpeedCurveは解析できません(上記参照)。 スクリプトでこのコマンドを使用しないでください。
Extra SpeedCurveスクリプトオプション
ユーザーエージェント文字列を保存し、「PTST」を追加しないようにサポートを追加しました。一部の広告プロバイダは、ユーザーエージェントに「PTST」を含むすべてのリクエストをブロックします。このため、広告を含めた全ページの読み込みのテストでは、メトリックにスキューが発生します。 ユーザエージェント文字列から「PTST」を削除するには、「speedcurve_removePTST」のタブ、そしてスクリプトに「1」を追加して削除することができます。証明書がまだキャッシュされていない場合、SSLネゴシエーション中にIEがOCSP / CRLチェックを実行するOS証明書キャッシュを削除します。
スクリプトテンプレート
URLフィールドを使用してスクリプトを生成するスクリプトテンプレートが多数用意されています。
リピートビュー
ページを2回読み込み、キャッシュされたページのパフォーマンスを測定できます。
サードパーティーのブロック
リストにあるファーストパーティードメインの要求のみが許可されます。 広告プロバイダーや分析タグなどのサードパーティーからのリクエストをすべてブロックすることで、管理するアセットのパフォーマンスを測定することができます。 スクリプトを追加したら、手動で編集して、必要に応じてファーストパーティドメインを追加することができます。
オフラインでのリピートビュー
「Progressive Web Apps」は、オフラインでコンテンツを配信するのに最適です。 このスクリプトはPWAを読み込んだ後、すべてのネットワーク要求をブロックし、ページを再読み込みすることで、オフラインのパフォーマンスを確認します。またフィルムストリップを介して、ユーザーエクスペリエンスがまだレンダリングされていることを確認します。
「PTST」をユーザーエージェントに追加しない
一部の広告プロバイダは、ユーザーエージェントに「PTST」を含むすべてのリクエストをブロックします。このため、広告を含めた全ページの読み込みのテストでは、メトリックにスキューが発生します。 このスクリプトは、うたい文句どおりに、”speedcurve_removePTST” を追加します。
スクリプトのデバッグ
Webpagetestスクリプトは非常に脆く、正しい書式設定を使用することが重要です。 以下の手順を試してください:
1.タブ – スクリプトは、値の間にスペースを挿入できるいくつかのオプションのみでタブ区切りにする必要があります。 これは問題の主な原因になることが多いので、不可視文字を表示した状態でIDEでスクリプトをチェックして、フォーマットが正しいことを確認してください。 WPT publicは、タブの代わりにスペースを使用してスクリプトが機能する場合、あなたのスクリプトを自動修正しようとすることがあります。SpeedCurveはオートコレクションをしないので、タブを使用しているかを入念にチェックする必要があります。
2.隠れたエラー - 多くのスクリプトでは「logData 0」を使用してステップを非表示にしています。問題が発生している場合は、「logData」をオンに戻してすべてのリクエストを確認し、スクリプトのどこでテストが失敗しているかを確認してください。
3.「webpagetest.org」の使用 - スクリプトのバリエーションを迅速に反復するために、「public WebPageTest」を使用してテストを実行します。 これは、問題がSpeedCurveと関連しているかどうかをデバッグするのにも役立ちます。 スクリプトをコピーしてSpeedCurveに貼り付けるときは、タブを使用する必要があるため、ヒント#1を見てください。
4.マルチステップスクリプト - SpeedCurveはまだ、マルチステップのスクリプトからウォーターフォールチャートを抽出する機能をサポートしていません。代わりに、スクリプトの最初に「logData 0」を使用し、最後のステップの直前に「logData 1」を使用して、単一のステップまたはnavigateコマンドを記録します。