ページレベルの API の持つ基本的な考え方は、高いレベルの抽象度でユーザー アクションを記述することです。
低レベルの API は、単一の HTTP リクエストの観点からネットワーク操作を記述します。単一の Web ページでは、通常ブラウザは多数の HTTP リクエストをサーバーに送信します。つまり、低レベルのスクリプトは、それぞれの単一の関数がダウンロード元の URL を指定するパラメータを含むことから、長くなる傾向があります。そのため、低レベルのスクリプトは自動コンテキスト管理には不向きです。また、ユーザーの観点からアクションを記述しないため、低レベルのスクリプトは読み取りが難しくなることがあります。
対照的に、高レベルのページ レベルの API は、Web ユーザーにわかりやすい観点でユーザー アクションを記述します。次に例を示します。
低レベルの API と異なるページ レベルの API の主な特徴の 1 つは、HTML ドキュメントを解析し、埋め込みオブジェクト、フレーム、リンク、フォームを見つける HTML パーサーが組み込まれていることです。埋め込みオブジェクトとフレームは自動的にダウンロードされます。リンクとフォームはコンテキストのある関数呼び出しに使用できます。
スクリプトでの単一の関数呼び出しでは、複雑なフレームセットを含む場合でも、完全な HTML ページをダウンロードすることができます。
ページレベルの API を使用するスクリプトは、ちょうどブラウザの 戻る ボタンが有効になるのと同じように、以前にダウンロードしたページを記録することで、履歴をエミュレートします。各仮想ユーザーで追跡できるページの最大数を制限することでシステム リソースを管理できます (デフォルト値は 5)。
ただし、履歴の目的は詳細なコンテキスト管理を簡略化することにあるため、この制限は負荷テストの精度には影響を与えません。ネットワーク トラフィックには関係ありません。
履歴で可能なライフタイムを過ぎてもページを使用する必要がある場合は、WebPageStoreContext 関数を使用してロックすることができます。必要に応じて履歴からページは削除されますが、メモリからは削除されず、WebPageStoreContext 関数の返すハンドラによって参照することができます。ページが不要になった場合は、WebPageDeleteContext 関数を使用してロックを解除します (その後メモリから削除されます)。