負荷テストツールLoadRunner学習3:VuGenで変数を追加してみる
はじめに
こんにちは、株式会社SHIFT DevOps推進部2グループの李です。
前回はVuGenのレコーディング方法について紹介しましたが、そのままの状態では使えない場合があります。今回はレコーディングしたスクリプトに変数を追加し、実行可能な状態に修正する方法をご紹介します。
下記が今回使用するソフトウェアです。
LoadRunner 24.1: https://www.microfocus.com/ja-jp/home
連載目次
(今回)負荷テストツールLoadRunner学習3:VuGenで変数を追加してみる
変数の設定方法
学習2では、VuGenのレコード方法を紹介しました。今回はレコードしたスクリプトをベースにして、変数を追加していきましょう!VuGenでは、固定変数と変動変数の2つのタイプの変数があります。固定変数は事前に内容がわかっている変数で、例えばユーザ名やパスワードなどに利用されます。一方、変動変数は実行中に生成されたトークンやハッシュなどの動的な値を扱います。
まずは固定変数をスクリプトに追加していきます。コードの最上部に移動し、lr_save_string関数を使用し、「lr_save_string("変数値","変数名");」でmailとpasswordの二つの変数を追加します。
変数を定義したら、変数を使用しているところを修正します。 まずはステップ「Custom Request: GetCredentialType.srf」をクリックして、Bodyに「username」の数値を「{mail}」に変更します。そして、ステップ「Submit Data: post.srf」をクリックして、メールとパスワードを使用する箇所を修正します。
以上で固定変数の設定が終わりました。次に、変動変数の設定を行います。VuGenは自動変数検出機能があります。自動変数検出により、スクリプト中の動的に生成される値が自動的に変数に変更されます。自動変数検出機能を使用するには、よく使う機能の「Design Studio」ボタンをクリックします。
Design Studioが開きましたら、検出された変動変数が表示されます。ここで「uaid」をクリックして、上部の「Correlate」クリックすると、スクリプト内のuaidの値を変数化できます。その後、「PPFT」、「pprid」、「NAP」、「ANON」など、他の変動変数も同様に設定します。
自動変数検出機能は非常に便利ですが、すべての変動変数が検出されない場合もあります。その場合は、手動で変数を追加する必要があります。それでは、手動で変数を追加していきましょう!
変動変数の抽出方法は下記の6種類があります。
web_reg_save_param:特定の開始文字列と終了文字列の間にあるテキストを抽出します。(公式はこの書き方をおすすめしていません)
web_reg_save_param_attrib:HTMLタグの属性値をキャプチャするために使用されます。特定のタグとその属性を指定して、その値を取得します。
web_reg_save_param_ex:特定の開始文字列と終了文字列の間にあるテキストを抽出します。
web_reg_save_param_json:JSONパスを指定して、特定のキーや値を抽出します。
web_reg_save_param_regexp:正規表現を使用してデータを抽出するための方法です。複雑なパターンマッチングが必要な場合に便利です。
web_reg_save_param_xpath:XPathを使用して特定のノードや値を取得します。
本記事は「web_reg_save_param_attrib」と「web_reg_save_param_regexp」を使用して、変動変数を抽出します。以下は「web_reg_save_param_attrib」の説明です。
「web_reg_save_param_attrib」は、HTMLタグの属性値を抽出するために使用されます。具体的には、指定したタグの特定の属性を抽出し、それを指定したパラメータに保存します。
この関数の基本的な構文は以下の通りです:
web_reg_save_param_attrib("ParamName={変数名}","TagName={タグ名}", "Extract={属性}", ["Name={値}", ] ["Id={値}", ] ["Class={値}", ] ["Type={値}", ] "検索フィルター",LAST);」
続いて、「web_reg_save_param_regexp」の説明は下記です。
web_reg_save_param_regexp("ParamName={変数名}","RegExp={正規表現}", "検索フィルター",LAST);」
※他の抽出方法については下記のサイトに参照してください。 https://admhelp.microfocus.com/vugen/en/24.1/help/function_reference/Content/FuncRef/web/categories/lrFuncRef_WBCAT_Alph_Lst_Web_Funcs.htm
では変動変数を作成しましょう まずリクエスト「OWA」の前に、下記の変動変数を追加します。
web_reg_save_param_regexp(
"ParamName=GetCredentialTypesrf",
"RegExp='https://login.live.com/GetCredentialType.srf?(.*?)',",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=Yes",
"RequestUrl=*/login.srf*",
LAST);
web_reg_save_param_regexp(
"ParamName=postsrf",
"RegExp='https://login.live.com/ppsecure/post.srf?(.*?)',",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=Yes",
"RequestUrl=*/login.srf*",
LAST);
そして、リクエスト「OWA」のURLを下記のように修正してください。
URL=https://login.live.com/GetCredentialType.srf{GetCredentialTypesrf}",
続いて、リクエスト「post.srf」の前に、下記の変動変数を追加します。
web_reg_save_param_regexp(
"ParamName=urlPost",
"RegExp=urlPost:'https://login.live.com/ppsecure/post.srf?(.*)',urlApplicationInsightsEndpoint:''",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=No",
LAST);
リクエスト「post.srf」のActionを下記のように修正してください。
"Action=https://login.live.com/ppsecure/post.srf{postsrf}",
後は、「post.srf_2」の前に、下記の変動変数を追加します。
web_reg_save_param_attrib(
"ParamName=pprid",
"TagName=input",
"Extract=value",
"Name=pprid",
"Id=pprid",
"Type=hidden",
SEARCH_FILTERS,
"IgnoreRedirections=No",
"RequestUrl=*/post.srf{urlPost}",
LAST);
web_reg_save_param_attrib(
"ParamName=t",
"TagName=input",
"Extract=value",
"Name=t",
"Id=t",
"Type=hidden",
SEARCH_FILTERS,
"IgnoreRedirections=No",
"RequestUrl=*/post.srf{urlPost}",
LAST);
リクエスト「post.srf_2」のActionを下記のように修正してください。
"Action=https://login.live.com/ppsecure/post.srf{urlPost}",
最後に、owa_2のリクエストボディを下記のように修正してください。
"Name=pprid", "Value={pprid}", ENDITEM,
"Name=wbid", "Value=MSFT", ENDITEM,
"Name=NAP", "Value={NAP}", ENDITEM,
"Name=ANON", "Value={ANON}", ENDITEM,
"Name=t", "Value={t}", ENDITEM,
全ての変数の設定が終わりましたら実行ボタンをクリックして、スクリプトを確認してください。
次回のお知らせ
今回はVuGenの変数設定の方法についてご紹介しました。いかがでしたでしょうか?自動変数検出機能で変数の設定が簡単に行えるのが便利ですね!GUIで操作する負荷テストツールよりも、コード表示の方が確認しやすいでしょう。 次回はLoadRunnerのControllerで多重度の設定と実行方法についてご紹介したいと思います。
最後までお読みいただき、ありがとうございました。また次回の記事でお会いしましょう!
参考資料:
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/
PHOTO:UnsplashのVasilis Chatzopoulos