Java 使用JMeter测试JSF时提取ViewState
我正在使用JMeter对我的JSF应用程序进行一些负载测试,但在页面中传递ViewState时遇到了问题。ViewState变量根本不会被提取,或者不会在页面中传递 我用代理服务器记录了我的测试步骤,如下所示: 我在第一个GET请求中添加了Regex提取器。测试了正则表达式,结果是正确的 在每个POST请求中,我用变量替换硬连线视图ID 当我发送请求时,我得到以下信息: POST参数不正确,因为它发送变量的名称 发布数据: loginForm%3RequestToken=&loginForm%3UserName=heller&loginForm%3Password=%21QAYxsw2%A7EDC&loginForm%3LoginButton=Anmelden&com.sun.faces.VIEW=%24%7BjsfViewState%7D&loginForm=loginForm 你能告诉我我做错了什么吗?Java 使用JMeter测试JSF时提取ViewState,java,jsf,jmeter,Java,Jsf,Jmeter,我正在使用JMeter对我的JSF应用程序进行一些负载测试,但在页面中传递ViewState时遇到了问题。ViewState变量根本不会被提取,或者不会在页面中传递 我用代理服务器记录了我的测试步骤,如下所示: 我在第一个GET请求中添加了Regex提取器。测试了正则表达式,结果是正确的 在每个POST请求中,我用变量替换硬连线视图ID 当我发送请求时,我得到以下信息: POST参数不正确,因为它发送变量的名称 发布数据: loginForm%3RequestToken=&loginFor
谢谢 ViewState参数是一个编码值(我相信是Base64),如果通过url传入GET请求,则可能包含不合适的值。URL参数通常进行编码,以便在请求到达服务器时可以表示和解码特殊值(例如空格->%20) 这里的问题是,下面的请求是POST,这意味着参数不需要URL编码 com.sun.faces.VIEW=%24%7BjsfViewState%7D&loginForm=loginForm
上面显示JMeter或其他进程正在URL编码请求中的ViewState,这是不正确的。ViewState的值应该按原样发送。发现了我的问题:正则表达式错误,因此在响应中找不到任何内容。我得换个正则表达式。在添加默认值“NOT FOUND”后注意到它 POST请求以URL编码的形式发送,这是正确的。但我认为问题在于,提取的值根本没有在请求中设置,因为我将变量的名称视为com.sun.faces.VIEW的值,而不是从上一个请求的响应中提取的实际值。