ASP.NETに単純なログインフォームがあり、EventValidation変数とViewState変数をパラメーターに保存しました。
web_reg_save_param_regexp(
"ParamName=EventValidationParameter",
"RegExp=id=\"__EVENTVALIDATION\"\\ value=\"(.*?)\"\\ ",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=No",
"RequestUrl=*/Login.aspx*",
LAST);
web_reg_save_param_regexp(
"ParamName=ViewStateParameter",
"RegExp=id=\"__VIEWSTATE\"\\ value=\"(.*?)\"\\ ",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=No",
"RequestUrl=*/Login.aspx*",
LAST);
フォームを読み込んだ後、次の2つのパラメーターに加えて、ユーザー名とパスワードを入力してフォームを送信します。
web_submit_data("Login.aspx_2",
"Action=http://myurl.es/Login.aspx",
"Method=POST",
"RecContentType=text/html",
"Referer=http://myurl.es/Login.aspx",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=__EVENTTARGET", "Value=", ENDITEM,
"Name=__EVENTARGUMENT", "Value=", ENDITEM,
"Name=__VIEWSTATE", "Value={ViewStateParameter}", ENDITEM,
"Name=__EVENTVALIDATION", "Value={EventValidationParameter}", ENDITEM,
"Name=logOn$UserName", "Value={UserNameParameter}", ENDITEM,
"Name=logOn$Password", "Value={PasswordParameter}", ENDITEM,
"Name=logOn$btnLogin", "Value=Entrar", ENDITEM,
EXTRARES,
"URL=/favicon.ico", ENDITEM,
LAST);
スクリプトを再生しようとすると問題が発生します。これは、LoadRunnerがパラメーターを置き換えていないため、値の代わりに名前が送信されるためです。
__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%7BViewStateParameter%7D&__EVENTVALIDATION=%7BEventValidationParameter%7D&logOn%24UserName=%7BUserNameParameter%7D&logOn%24Password=%7BPasswordParameter%7D&logOn%24btnLogin=Entrar
しかし、実行時データでわかるように、それらは正しく保存されています。
ViewStateParameter: /wEPDwUJNTkxMzQ5ODkyZGTb80dGltreV5eu7t3Sx4tukVlYVQ==
EventValidationParameter: /wEWBAKjqI3jCgKq8IegAwK5hoWUBwKTwO3qCT0Isk6sckIUnI6YemgcYsthpZpu
パラメータが置き換えられない原因は何ですか?
このエラーを修正するにはどうすればよいですか?