VuGen JavaScript エンジンの使用
適用対象:C 言語で記述された Web HTTP/HTML および SAP - Web 仮想ユーザ・スクリプトのみ。
VuGen JavaScript エンジンとは
通常,Web 仮想ユーザ・スクリプトには C コードが含まれています。組み込みの JavaScript エンジンでは,JavaScript コードのスニペットを C コードに挿入できます。
仮想ユーザ・スクリプトでの JavaScript の使用により可能な実行内容
Web - HTTP/HTML または SAP - Web 仮想ユーザ・スクリプトに JavaScript コードを挿入することで,クライアントとサーバ間で送信する要求メッセージや応答メッセージに含める文字列を操作できます。通常,文字列の操作は相関およびパラメータ化を行う場合に役に立ちます。典型的な文字列の操作には,10 進数から 16 進数への変換,Base64 のエンコードおよびデコード,URL のエンコードおよびデコード,JSON 形式データ内のオブジェクト値へのアクセスなどがあります。
注: 組み込まれた DFE(データ形式拡張機能)を使用すると,これらの文字列の操作手順の多くを実行できます。詳細については,「データ形式拡張機能(DFE)の概要」を参照してください。
クライアント側の論理が JavaScript で実装されている場合,JavaScript コードを仮想ユーザ・スクリプトに挿入すると便利な場合があります。元のクライアント側の JavaScript コードのスニペットを仮想ユーザ・スクリプトに挿入することで,JavaScript 論理を C コードに書き直し,それを仮想ユーザ・スクリプトに含める手間を省くことができます。
仮想ユーザ・スクリプトで JavaScript コードを使用して,XMLHTTPRequest を実行できます。その場合,標準の Javascript API を使用して HTTP または HTTPS 要求を生成し,送信できます。そのような API には,非同期の要求の送信,応答を処理するコールバックの割り当て,XML 形式の応答の読み取りなどが含まれます。XMLHTTPRequest のこうした使用方法では,web_url または web_custom_request などのアクション・ステップへの呼び出しが置き換えられる場合があります。
JavaScript スニペットを使用する理由
C コードのみを使用して必要な機能を達成することも可能ですが,JavaScript を仮想ユーザ・スクリプトに含めることは,次の点において有効な場合があります。
- JavaScript は C よりも直感的で,実装が容易である。
- JavaScript の正規表現ライブラリによる正規表現の作業に関する課題が簡略化されている。
- 文字列操作を支援する JavaScript ライブラリが多く存在する。
- クライアント側の論理は通常 JavaScript で実装されます。元の JavaScript コードのスニペットを挿入することで,JavaScript クライアント論理を C コードに変換する手間を省くことができます。
すべてのプロトコルの仮想ユーザ・スクリプトで JavaScript エンジンを使用することが可能かどうか
可能ではありません。JavaScript エンジンでは,Web - HTTP/HTML または SAP - Web 仮想ユーザ・スクリプトにのみ JavaScript を挿入できます。
JavaScript エンジンが役に立つシナリオの例
次のシナリオでは,JavaScript コードを仮想ユーザ・スクリプトに含めると有効な場合があります。
Javascript コードを実行するために仮想ユーザ・スクリプトで使用できる API 関数
JavaScript を仮想ユーザ・スクリプトに含めるために使用できる API 関数を次に示します。
-
web_js_run:指定した JavaScript コードを実行します。
-
web_js_reset:JavaScript コンテキストをクリアします。
web_js_run 関数は,JavaScript コードを仮想ユーザ・スクリプトに含めるために使用します。web_js_run 関数を使用すると,必要な JavaScipt コードを仮想ユーザ・スクリプトに挿入するか,必要な JavaScript コードを含むファイルを参照することができます。
上記の関数の詳細およびそれらの使用方法については,関数リファレンス(該当するバージョンを選択)を参照してください。
任意の「内部」API 関数にアクセスする JavaScript の使用
仮想ユーザ・スクリプト内の JavaScript では,JavaScript コード内の web_js_run 関数から直接呼び出すことができる数多くの「内部」の API 関数にアクセスできます。これらの関数は,主にパラメータの管理を目的として使用されますが,指定のメッセージのログ記録,データの記録,XMLHTTPRequest の実行を行うために使用することもできます。
仮想ユーザに対して Javascript エンジンを有効にする方法
仮想ユーザ・スクリプト内から JavaScript を実行するには,その仮想ユーザ・スクリプトに対して JavaScript エンジンを有効にする必要があります。JavaScript エンジンを有効にするには,[再生]>[実行環境設定]>[インターネット プロトコル]>[基本設定]ビューを開きます。[JavaScript]セクションに移動し,[JavaScript コードの実行を有効にする]オプションを選択します。
注: このオプションを有効にすると,スクリプト内に JavaScript ステップが存在しない場合でも JavaScript ランタイム・エンジンが作成されます。
JavaScript エンジンの設定方法
製品のカスタム JavaScript エンジンを設定するには,仮想ユーザ・スクリプトの実行環境設定を使用します。
JavaScript エンジン(JSE)の実効環境設定にアクセスするには,[再生]>[実行環境設定]>[インターネット プロトコル]>[基本設定]を選択して,[JavaScript]セクションを展開します。
- JavaScript エンジンのランタイム・サイズ:割り当てられた Javascript エンジンのランタイム・メモリのサイズをキロバイトで指定します。数多くの仮想ユーザを実行している場合は,この値を増やさなければならない場合があります。
- JavaScript エンジンのスレッドごとのスタック・サイズ:JavaScript エンジンのメモリ内の各仮想ユーザ・スレッドのサイズをキロバイトで指定します。大きなオブジェクトまたは深いスタック呼び出しについては,この値を増やさなければならない場合があります。
ユーザ・インタフェースの詳細については,「[基本設定]ビュー -[インターネット プロトコル]」を参照してください。
VuGen の JavaScript エンジンと VuGen の JavaScript プロトコル間の接続
VuGen の JavaScript エンジンと VuGen の JavaScript プロトコルの間には,接続は存在しません。
トラブルシューティング
JavaScript エンジンのサポートを実装することが困難な場合は,次の項目を確認して解決を試みます。
- VuGen の JavaScript エンジンが有効になっていることを確認します。詳細については,LoadRunner JavaScript エンジンを有効にする方法を参照してください。
- JavaScript の制限により,1 つの関数に追加できるオペランドは最大 9,000 です。たとえば文字列を結合する場合,"str1"+"str2"+"str3"+..."str9000" のように,最大 9,000 個の文字列を追加できます。
-
メモリの問題
- 実行環境設定の[反復ごとに新規ユーザをシミュレートする]>[反復ごとにキャッシュをクリアする]を選択すると,各反復の最初に web_js_reset が自動的に呼び出されます。
- [反復ごとに新規ユーザをシミュレートする]>[反復ごとにキャッシュをクリアする]を設定していない場合は,仮想ユーザ・スクリプトで保存済みのコンテキストが不要となっているポイントに web_js_reset の呼び出しを挿入して,過度のメモリ消費を回避します。
実行環境設定の詳細については,実行環境設定ビューのオプションの下にあるヒントを参照してください。
-
パフォーマンスの問題
パフォーマンスの問題が発生している場合は,JavaScript の実行環境設定を変更します。詳細については,「[基本設定]ビュー -[インターネット プロトコル]」を参照してください。