1

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  

パラメータが置き換えられない原因は何ですか?

このエラーを修正するにはどうすればよいですか?

4

0 に答える 0