VuGen が非同期通信用に仮想ユーザ・スクリプトを変更する方法
非同期通信をサポートするプロトコルのリストについては,「64 ビット記録,非同期,IPv6 のサポート」を参照してください。
仮想ユーザ・スクリプトを作成し,必要なビジネス・プロセスを記録すると,VuGen は仮想ユーザ・スクリプトを生成します。次に,VuGen では非同期通信のインスタンスを検索するため,生成されたスクリプトをスキャンします。このプロセスは,非同期スキャンと呼ばれます。VuGen が仮想ユーザ・スクリプトで非同期通信のインスタンスを検出すると,VuGen はスクリプトを実行して必要な非同期動作をエミュレートできるようにスクリプトを変更します。
注: VuGen は,[非同期スキャン]記録オプションが選択されている場合にのみ,スクリプトで非同期通信をスキャンします。詳細については,「非同期仮想ユーザ・スクリプトを作成する」 を参照してください。
仮想ユーザ・スクリプトの非同期通信は 1 つ以上の会話にわかれています。VuGen が仮想ユーザ・スクリプトで検出する個々の非同期会話は,デザイン・スタジオの[非同期]タブにリストされます。非同期会話のこのリストを使用して,VuGen が非同期スキャン中に仮想ユーザ・スクリプトに行った変更を体系的に分析します。VuGen が仮想ユーザ・スクリプトで非同期動作を正しく特定し,必要な非同期動作をエミュレートするように仮想ユーザ・スクリプトを正しく変更したことを確認します。デザイン・スタジオの[非同期]タブの詳細については,「[非同期]タブ(デザイン・スタジオ)」を参照してください。
注: 非同期通信をエミュレートできるように仮想ユーザ・スクリプトを変更した後,変更後のスクリプトに対して相関動作を実行する必要がある場合があります。相関の詳細については,「非同期仮想ユーザ・スクリプトの相関」を参照してください。
このトピックの内容:
VuGen が仮想ユーザ・スクリプトを変更する方法
仮想ユーザ・スクリプトの非同期動作は 1 つ以上の非同期会話にわかれています。非同期会話ごとに,VuGen は次のタスクを実行します。
-
VuGen は非同期会話の開始の前に web_reg_async_attributes ステップを挿入します。web_reg_async_attributes ステップには非同期会話の ID が含まれています。この ID を後続の web_stop_async ステップが使用して,非同期会話の終了を示します。パターン引数は非同期動作のタイプ(プッシュ,ポーリング,ロング・ポーリング)を示します。
Copy codeweb_reg_async_attributes("Push_0",
"Pattern=Push",
"URL=http://push.example.com/example",
"RequestCB=Push_0_RequestCB",
"ResponseHeadersCB=Push_0_ResponseHeadersCB",
"ResponseBodyBufferCB=Push_0_ResponseBodyBufferCB",
"ResponseCB=Push_0_ResponseCB",
LAST);非同期会話の最初に web_reg_async_attributes ステップを使用する方法の詳細については,「非同期会話の開始の定義」を参照してください。
web_reg_async_attributes 関数の詳細については,関数リファレンス(該当するバージョンを選択)を参照してください。
VuGen がサポートしている非同期動作のタイプの詳細については,「非同期通信タイプ - 要求および応答シーケンス」を参照してください。
- VuGen は挿入された web_reg_async_attributes ステップの前にコメントを追加します。このコメントには,次のような非同期会話に関する詳細が含まれています。
- 非同期会話の ID。
- 会話に含まれている URL。
web_reg_async_attributes ステップで宣言されているコールバック関数の推奨の実装。これらの実装は,スクリプトの追加ファイルの 1 つである AsyncCallbacks.c に追加されます。
Copy code/* Added by Async CodeGen.
ID=Push_0
ScanType = Recording
次の URL は,この会話の一部としてみなされます。
http://push.example.com/example
TODO - 次のコールバックが AsyncCallbacks.c に追加されています。
必要に応じて,コールバック実装にコードを追加します。
Push_0_RequestCB
Push_0_ResponseHeadersCB
Push_0_ResponseBodyBufferCB
Push_0_ResponseCB
*/
-
プッシュ会話では,VuGen が非同期 API 関数を仮想ユーザ・スクリプトに挿入しますが,仮想ユーザ・スクリプトから記録されたコードを削除することはありません。ポーリング会話およびロング・ポーリング会話では,VuGen は生成された仮想ユーザ・スクリプトからステップまたはステップ・パラメータを削除する場合があります。VuGen は,挿入された非同期関数の実行で,関連する URL が要求される場合にステップまたはステップ・パラメータを削除します。削除された元のステップの実行では関連する URL は要求されません。
注: 削除されたステップはコメントアウトされます。完全に削除されるわけではありません。これらのステップは,必要に応じて,「コメント解除」できます。
-
必要に応じて,VuGen は非同期会話の最後に web_stop_async ステップを追加します。web_stop_async ステップは非同期会話の終わりをマークします。web_stop_async ステップの詳細については,関数リファレンス(該当するバージョンを選択)を参照してください。
-
記録スナップショットは,非同期会話のタスクを会話を開始したステップにグループ分けすることにより,更新されます。