Load Runner の Outputに キャプチャしたクッキー値を出力する方法
Webサービスへのラッシュテストなど負荷をかけたテストをしたい時に使えるLoad Runner、HTTP Responseで返ってきたCookieをパラメーターにキャプチャしてその値を次のリクエストに渡せるなど便利です。
でも、始めてCookieを取得しようとした際、どう実装すれば良いか分からなかったので、やり方を紹介しておきます。今回紹介するのは、set-cookieされてResponseされたCookieをパラメーターに取得する方法と、そのキャプチャしたパラメーターの値をコンソールログに出力する方法です。
HttpResponseのCookie値をキャプチャする方法
web_reg_save_param_ex 関数を使ってパラメーターにCookie値を保存することができます。
Cookie名が TEST_COOKIE で、それを p_test_cookie という名前のパラメーターに保存したい場合、Cookieを返すリクエストを呼び出す前に以下のコードを記述します。
web_reg_save_param_ex(
"ParamName=p_test_cookie",
"LB=TEST_COOKIE",
"RB=",
"Ordinal=1",
SEARCH_FILTERS,
"Scope=COOKIES",
LAST);
キャプチャしたCookie値をログ出力する方法
Load Runner の実行結果を lr_log_message(“ログメッセージ”); でコンソールに出力しておくと、Outputのタブから見れて便利なのですが、リクエストなどでは、パラメーターを {p_test_cookie}の様に書けばリクエストにパラメーター値を乗せてくれるのですがログ出力ではそうはいきません。
HTTPリクエストと同じノリでログ出力しようとすると以下と実装すると、本当にそのまま「パラメータ: {p_test_cookie}」と出力されてしまいます。
lr_log_message("パラメータ: {p_test_cookie}");
それではどうすれば良いのかと言うと、lr_eval_string関数でパラメーター部分を解釈してやればOKです。
lr_log_message(lr_eval_string("パラメータ: {p_test_cookie})");
これで例えば、p_test_cookieパラメーターに AAA と格納されていた場合、「パラメータ: AAA」と出力されます。