Parameters LoadRunner未替换replay中的参数

Parameters LoadRunner未替换replay中的参数,parameters,replace,loadrunner,Parameters,Replace,Loadrunner,我在ASP.NET中有一个简单的登录表单,我将EventValidation和ViewState变量保存到参数中: web_reg_save_param_regexp( "ParamName=EventValidationParameter", "RegExp=id=\"__EVENTVALIDATION\"\\ value=\"(.*?)\"\\ ", SEARCH_FILTERS, "Scope=Body", "IgnoreRedirections=N

我在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);
加载表单后,我提交表单时使用以下两个参数,以及用户名和密码:

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  
是什么原因导致参数无法更换


我如何修复此错误?

难以置信。它与代码本身无关,问题是脚本名包含一个点和一个空格。当我用名称“1_MyScript”而不是“1.MyScript”再次录制脚本时,LoadRunner的行为符合预期。我不敢相信这是原因,但我尝试了几个新脚本,事实是:LoadRunner不喜欢脚本名称中的点或空格-可能只是其中一个它不喜欢的,但从现在起,我将避免这两个。这一点也不让我惊讶。在很长一段时间内,甚至超过16个字符的组名在控制器中都存在问题。如果我需要一个空格,我倾向于使用下划线,并保持我的名字简短,以防一些旧的代码意外地潜入补丁版本中。LoadRunner并不是唯一一个,所有历史性的性能工具都有其进化的怪癖,是二十年发布周期的遗留问题。@JamesPulley,selenium是开源的,不是更好吗?Loadrunner似乎真的很糟糕,总是崩溃,官方文档总是半途而废,没有提到边缘案例。Selenium是一个功能测试工具。从功能的角度来看,就内置功能而言,它甚至不如1996年的WinRunner或XRunner那么完整。从1992-4年起,为负载运行功能工具是最先进的。从那时起,市场转向API级别,在OSI应用程序的底部或OSI会话层中运行,准确地将负载复制到服务器上,每个虚拟用户占用的资源更少。我不知道官方文档说它已经完成了一半是什么意思。。。。。开放源代码与封闭源代码之间没有任何优势,除非您计划修改源代码。每个项目都是工具和劳动力的结合。开源工具在测试生产、监控数据收集和分析方面都需要比商业工具更高的劳动商。在评估工具成本时,很少考虑劳动力成本的差异