important loadrunner functions used vugen scripts with examples
構文と例を含むVuGenスクリプトで主に使用される重要なLoadRunner関数:
VuGenスクリプティングの課題 の以前のチュートリアルで詳細に説明されました オンライン無料LoadRunnerトレーニングシリーズ 。
LoadRunner VuGenを使った旅の中で、これまでに多くの事前定義された関数に出くわしました(もちろん、独自の関数を作成する方法も見ました)。
このチュートリアルでは、重要な「事前定義された」LoadRunner、プロトコル固有、およびVuGenスクリプト/シナリオで主に使用されるC言語関数について簡単に説明します。
=> LoadRunnerチュートリアルの完全なシリーズについては、ここをクリックしてください
これらの関数を次の3つのカテゴリに分類してみましょう。
- LoadRunner(LR)関数
- プロトコル固有(Web – HTTP / HTML)関数
- C言語関数
一つずつ探検していきましょう!
学習内容:
LoadRunner(LR)関数
これらの関数は、すべてのプロトコルに共通の一般的なLoadRunner関数です。
1) lr_eval_string(): すでに見たように、この関数は、埋め込まれたパラメーターを評価した後、入力文字列を返します。
二) lr_eval_string_ext(): この関数は、バッファを作成し、埋め込まれたパラメータを評価した後、それを入力文字列に割り当てます。
3) lr_save_string(): すでに見たように、この関数はLRパラメーター/変数に値を割り当てます。
4) lr_save_int(): この関数は、以下に示すように、LRパラメーターに整数を割り当てます。
例:
int number; number=8; lr_save_int(number,”numparam”);
パラメータ「numparam」を他のLRパラメータと同じように使用できるようになりました。
5) lr_paramarr_random(): すでに見たように、この関数はパラメータ配列から値の1つをランダムに選択します。
6) lr_paramarr_len(): この関数は、パラメーター配列内の要素の数を返します。
「cFlight」がフライト値を持つパラメータ配列であると仮定します。次の例は、この配列の要素数を変数にコピーする方法を示しています。
例:
int arrLen; arrLen = lr_paramarr_len('cFlight');
7) lr_paramarr_idx(): この関数は、パラメーター配列内の指定された場所にあるパラメーターの値を提供します。以下に示す例では、パラメーター配列の3番目の値を変数に保存します。
例:
char * flightVal; flightVal = lr_paramarr_idx('cFlight', 3);
8) lr_db_connect() : これは、データベースへの接続に使用されるデータベース関数です。
9) lr_db_disconnect() : これは、データベースから切断するために使用されるデータベース関数です。
10) lr_start_transaction()およびlr_end_transaction(): すでに見たように、これらの関数は(それぞれ)トランザクションを開始および終了するために使用されます。
十一) lr_message() : これは、ログと出力ウィンドウにメッセージを送信するために使用されるメッセージ関数です。
12) lr_output_message(): これは、スクリプトセクションや行番号などの詳細を含むメッセージを出力ウィンドウ、ログファイル、およびその他のテストレポートの要約に送信するために使用されるメッセージ関数です。
13) lr_log_message() : これは、出力ウィンドウではなく、仮想ユーザーまたはエージェントのログファイルにメッセージを送信するために使用されるメッセージ関数です。
14) lr_error_message(): これは、出力ウィンドウ、ログファイル、およびその他のテストレポートの要約にメッセージを送信するために使用されるメッセージ関数です。
15) lr_save_datetime(): この関数は、現在の日付と時刻(または指定されたオフセットを持つ日付と時刻)を、必要に応じてスクリプトで使用できるパラメーターに保存します。
例:
lr_save_datetime('Today’s date is %B %d %Y', DATE_NOW , 'today'); lr_output_message(lr_eval_string('{today}'));
Action.c(4): 今日の日付は2018年6月9日です
以下に示すのは、1日のオフセットが使用される別の例です。
lr_save_datetime('Tomorrow's date is %B %d %Y', DATE_NOW + ONE_DAY , 'tomorrow'); lr_output_message(lr_eval_string('{tomorrow}'));
Action.c(4): 明日の日付は2018年6月10日です
16) lr_set_debug_message(): この関数は、(スクリプトの一部の)メッセージログレベルをランタイム設定で設定されているレベルから変更します。以下に示すように、完全なトレースは「index.htm」リクエストに対してのみ有効になります(実行時設定でログレベルが「標準ログ」に設定されている場合でも)。
例:
lr_set_debug_message( LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_FULL_TRACE , LR_SWITCH_ON ); web_url('index.htm', 'URL= http://127.0.0.1:1080/WebTours/index.htm ', 'TargetFrame=', 'Resource= 0 ', 'RecContentType= text/html ', 'Referer=', 'Snapshot= t8.inf ', 'Mode= HTML ', LAST ); lr_set_debug_message( LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_FULL_TRACE , LR_SWITCH_OFF );
17) lr_abort(): この関数は、「vuser_end」セクションの実行後にスクリプトの実行を中止します。この関数は、特定のエラー状態のためにスクリプトを手動で中止する必要がある場合に役立ちます。
18) lr_exit(): この関数は、実行中に実行されたスクリプトを終了し、指定された「スクリプト継続オプション」に従って続行するように仮想ユーザーに指示します。
次の例では、 この関数は、現在のグローバルスクリプト実行の反復を停止し、次の反復を開始するように仮想ユーザーに指示します。
lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_AUTO);
その他のスクリプト継続オプションのリストは次のとおりです。
- LR_EXIT_VUSER –条件なしで終了し、vuser_endアクションに直接移動します。
- LR_EXIT_ACTION_AND_CONTINUE –現在のアクションを停止し、次のアクションに進みます。
- LR_EXIT_ITERATION_AND_CONTINUE –現在の反復を停止し、次の反復に進みます。
- LR_EXIT_VUSER_AFTER_ITERATION –現在の反復実行が完了した後に終了します。
- LR_EXIT_VUSER_AFTER_ACTION –現在のアクションの実行が完了したら終了します。
19) lr_think_time(): この関数を使用すると、仮想ユーザーはVuGenスクリプトのステップ/アクション間で定義された時間一時停止できます。これは、アプリケーションのアクション/ステップ間のしばらくの間、思考の実際のユーザーの動作をシミュレートするためのものです。
例えば、 次の場合、仮想ユーザーは10秒間待機します…
lr_think_time(10);
20) lr_rendezvous(): すでに見たように、この関数は、後続の要求を同時に実行できるように、すべての仮想ユーザーがそのステップに到達するまで、スクリプト内の指定されたステップで待機するようにLoadRunnerに指示します。
21) lr_load_dll(): この関数は、外部dllをロードするために使用され、スクリプトの再生時に仮想ユーザーが外部関数を呼び出すことができるようにします。
22) lr_save_searched_string(): この関数は、バッファ内の文字列の出現を検索し、その文字列の後のバッファの一部をパラメータに保存します。
次の例では 、文字列「all」の3番目のオカレンス(3番目の属性で定義された数値に1を加えたもの)がバッファーで検索され、次の14文字(6番目の属性)がパラメーターに保存されます(5番目の属性「1」は検索後のスペースをスキップします) )。
char cBuffer() = 'all the King's horses and all the King's elephants and all the King's men'; lr_save_searched_string(cBuffer, strlen (cBuffer),2,'all',1,14,'parameter'); lr_output_message('The searched sub-string is %s',lr_eval_string('{parameter}'));
Action.c(7): 検索された部分文字列は王の部下です。
2. 3) lr_vuser_status_message(): この関数は、コントローラーの仮想ユーザーステータス領域と仮想ユーザーログにメッセージを送信します。
24) lr_next_row(): この関数は、指定されたパラメータデータファイルで機能し、アクティブな行を次の行に進めるために使用されます。
25) lr_advance_param(): この関数は、列名を操作することにより、スクリプトがパラメーターの次に使用可能な値を使用するようにします。
26) lr_start_timer()およびlr_end_timer(): これらの関数は、時間の経過を秒単位で計算するVuGenスクリプトのタイマーを開始および停止するために使用されます。
27) lr_whoami(): この関数は、仮想ユーザーに関する情報(仮想ユーザーID、仮想ユーザーグループなど)を返します。
28) lr_get_vuser_ip(): この関数は、仮想ユーザーのIPv4アドレスを返します。
29) lr_get_host_name(): この関数は、スクリプトを実行しているマシンの名前を返します。
ソフトウェアテストでキャリアを開始する方法
30) lr_get_master_host_name(): この関数は、コントローラーを実行しているマシンの名前を返します。
31) lr_decrypt(): この関数は、エンコードされた文字列を復号化します。通常、パスワードを復号化するために使用されます。
32) lr_continue_on_error(): この関数は、エラーが発生した場合に実行を継続する方法、またはスクリプトの実行を中止する方法を指定します。
***********************************
このセクションでは、「事前定義された」関数と「LoadRunner」関数について詳しく説明しました。
次のセクションでは、LoadRunnerの「プロトコル固有」および「C言語」関数について説明します。
プロトコル固有の機能
これらの関数はプロトコルに固有です。ここでは、「Web-HTTP / HTML」プロトコルまたは単に「Web」プロトコル固有の関数について説明することに限定します。
1) web_url(): この関数は、URL引数で指定されたWebページをロードします。
二) web_submit_form(): この関数はフォームを送信します。また、この関数はHTMLモードでのみ記録され、状況依存の要求を送信します(状況依存の要求と状況依存の要求についてはすでに説明しました)。
以下の例を参照してください:
web_submit_form('login.pl', 'Snapshot= t2.inf ', ITEMDATA , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= login.x ', 'Value= 51 ', ENDITEM , 'Name= login.y ', 'Value= 13 ', ENDITEM , LAST );
3) web_submit_data(): この関数は、「コンテキストのない」フォームを送信します。この関数は、URLベースの記録モードまたは「明示的なURLのみを含むスクリプト」オプションがチェックされたHTMLベースの記録モードでのみ記録されます。
以下の例を参照してください。
web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t12.inf ', 'Mode= HTTP ', ITEMDATA , 'Name= userSession ', 'Value= 123342.854353989zDttttipAHAiDDDDDiAzzpziitcf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 51 ', ENDITEM , 'Name= login.y ', 'Value= 13 ', ENDITEM)
4) web_custom_request(): この関数は、任意のメソッドまたは本体を使用してカスタムHTTPリクエストを作成するために使用されます。
5) web_concurrent_start()およびweb_concurrent_end(): これらの関数は、同時グループの開始と終了を(それぞれ)マークするために使用されます。グループ内のすべての機能(これらの機能に囲まれている)は同時に実行されます。
6) web_reg_save_param(): すでに見たように、これは境界ベースの相関関数です。
7) web_reg_save_param_ex(): これは、web_reg_save_param関数の改良版である境界ベースの相関関数でもあります。
8) web_reg_find(): すでに見たように、この関数はテキストチェックに使用されます。
9) web_image_check(): すでに見たように、この関数は画像チェックに使用されます。
10) web_convert_param(): この関数は、HTMLテキストをプレーンテキストまたはURLに、またはプレーンテキストをURLに変換するために使用されます。以下の例では、これらの関数はパラメータ「ParamName」のコンテンツをHTML形式からURL形式に変換します。
例:
web_convert_param (「paramName」、「SourceEncoding = HTML」、「TargetEncoding = URL」、LAST);
十一) web_get_int_property(): この関数は、前のHTTPリクエストに関する特定の情報(ステータスコード、ダウンロードサイズなど)を返します。以下に示す例では、この関数を使用してHTTPステータスコードとダウンロードサイズを返します。
例:
int statusCode, downloadSize; web_url('index.htm', 'URL= http://127.0.0.1:1080/WebTours/index.htm ', 'Resource= 0 ', 'RecContentType= text/html ', 'Referer=', 'Snapshot= t1.inf ', 'Mode= HTML ', EXTRARES , 'Url= ../favicon.ico ', 'Referer=', ENDITEM , 'Url= https://www.bing.com/favicon.ico ', 'Referer=', ENDITEM , LAST ); statusCode = web_get_int_property( HTTP_INFO_RETURN_CODE ); lr_output_message('The HTTP status code is %d',statusCode); downloadSize = web_get_int_property( HTTP_INFO_DOWNLOAD_SIZE ); lr_output_message('The download size is %d bytes',downloadSize);
Action.c(17): web_get_int_propertyが開始されました(MsgId:MMSG-26355)
Action.c(17): web_get_int_propertyは成功しました(MsgId:MMSG-26392)
Action.c(18): HTTPステータスコードは200です
Action.c(20): web_get_int_propertyが開始されました(MsgId:MMSG-26355)
Action.c(20): web_get_int_propertyは成功しました(MsgId:MMSG-26392)
Action.c(21): ダウンロードサイズは12891バイトです
12) web_set_max_html_param_len(): この関数は、パラメータで取得および保存できるHTML文字列の最大長を設定するために使用されます。相関中にキャプチャできるパラメータの最大長のデフォルト値は256文字です。この関数は、256文字より長い文字列を取得するために使用されます。
13) web_cache_cleanup(): この関数は、キャッシュをクリアするために使用されます。ランタイム設定-(ブラウザエミュレーション)タブで、(反復ごとに新しいユーザーをシミュレートする)が有効になっている場合、この関数は各反復の開始時に自動的に呼び出されます。
14) web_cleanup_cookies(): この機能は、仮想ユーザーによって現在保存されているすべてのCookieをクリアします。
15) web_add_cookie(): この関数は新しいCookieを追加します。
16) web_add_header(): この関数は、ユーザー定義のヘッダーを次のHTTPリクエストに追加します。
17) web_save_timestamp_param(): この関数は、スクリプトを実行しているコンピューターの現在のローカルタイムスタンプを保存します。これは13桁の数値であり、値は1970年1月1日の深夜からのミリ秒数です。
例:
web_save_timestamp_param('currentTimeStamp', LAST ); lr_output_message(lr_eval_string('Timestamp: {currentTimeStamp}'));
Action.c(5): タイムスタンプ:1529249235582
18) web_set_user(): この関数は、Webサーバーまたはプロキシサーバーのログイン値とパスワードを指定します。ユーザー名とパスワードが必要なサーバーにログインすると、この関数が生成されます。
19) web_set_proxy(): この関数は、すべてのHTTPリクエストを指定されたものに送信するように仮想ユーザーに指示するために使用されます プロキシサーバー 。
20) web_set_certificate(): この関数は、Internet Explorerレジストリからの特定の証明書を使用するように仮想ユーザーに指示するために使用されます(安全なWebサーバーがクライアントに証明書の提示を要求する場合は常に)。
例えば、 次の関数は、InternetExplorerレジストリからの2番目の証明書を使用するように仮想ユーザーに指示します。
web_set_certificate('2');
21) web_set_sockets_option(): この関数は、クライアントマシンのソケットのさまざまなオプションを構成するために使用されます。
SSL_VERSION – SSLバージョン: 「2」、「3」、「2&3」、「TLS」、「TLS1.1」、または「TLS1.2」。
MAX_CONNECTIONS_PER_HOST –ホストごとの同時接続の最大数。
CLOSE_KEEPALIVE_CONNECTIONS –開いているすべての接続を閉じます。
C言語関数
これらは、特定のシナリオ向けにVuGenスクリプトを拡張するために使用される「C」関数です。
1) strcpy(): この関数は、ある文字列を別の文字列にコピーします。
例:
char String(100); strcpy (String,'This is a string'); lr_output_message('The content in String is : %s', String);
Action.c(8): 文字列の内容は次のとおりです。これは文字列です
二) strcmp(): この関数は、2つの文字列を比較し、それらの間の辞書式関係を示す値を返します(文字列が同じ場合は「= 0」、最初の文字列が2番目の文字列より大きい場合は「0」)。
例:
char String1(100)= 'The first string'; char String2(100)= 'The second string'; if( strcmp (String1,String2)==0) { lr_output_message('Strings are same'); } else { lr_output_message('Strings are not same'); }
Action.c(14): 文字列は同じではありません。
3) strlen(): この関数は、文字列の長さをバイト単位で返します。
4) strcat(): この関数は、2つの文字列を連結します。
例:
char String(100)= 'Star'; strcat (String,'Wars'); lr_output_message('The final string is: %s',String);
Action.c(10): 最後の文字列はStarWarsです。
5) strtok(): すでに見たように、この関数は、指定された文字で区切られた文字列からトークンを返します。
6) atoi(): すでに見たように、この関数はC文字列をC整数に変換します。
7) atof(): この関数は、C文字列をCフロートに変換します。
8) itoa(): この関数は、C整数をC文字列に変換します。
例:
int x=1; char y(100); itoa (x,y,10); lr_output_message('The string is: %s',y);
Action.c(8): 文字列は次のとおりです:1
9) fopen(): この関数は、ファイルポインタを開くために使用されます。
10) fclose(): この関数は、ファイルポインタを閉じるために使用されます。
十一) fread(): この関数は、フォーマットされていないデータをストリームからバッファに読み込みます。
12) fwrite(): この関数は、フォーマットされていないデータをバッファからストリームに書き込みます。
13) fprintf(): すでに見たように、この関数はフォーマットされた出力をファイルに書き込みます。
14) スプリント(): この関数は、フォーマットされた出力を文字列に書き込みます。
例:
int arg = 84; char filename(64), * filetype = 'txt'; sprintf (filename, 'log_%d.%s', arg, filetype); lr_output_message ('The new file name is %s', filename);
Action.c(7): 新しいファイル名はlog_84.txtです
結論
このチュートリアルから、重要な事前定義されたLoadRunner関数について詳しく学びました。
これらの関数は、リアルタイムアプリケーションで一般的に遭遇するほとんどすべての重要なシナリオを処理します。これらの関数の詳細については、VuGenヘルプの「関数リファレンス」を参照することをお勧めします。
今後のチュートリアルでは、LoadRunnerを使用したWebサービススクリプティングについて詳しく学習します。
=> LoadRunnerチュートリアルの完全なシリーズについては、こちらをご覧ください
前のチュートリアル | 次のチュートリアル