【发布时间】:2012-09-25 21:18:15
【问题描述】:
我整天都在尝试对我的 JSF 应用程序运行 JMeter 测试。
我知道ViewState,但这似乎是一个非常简单的问题。我准备了正则表达式提取器:
Reference Name: jsfViewState
Regular expression: id=\"javax.faces.ViewState\" value=\"(.+?)\"
Template $1$
Match No. 1
以下采样器是使用代理和录制创建的。
第一个请求/TourJSF/pages/protected/admin/addTourPage.xhtml。这是 GET 请求,将从中提取 ViewState。
POST 请求 /TourJSF/pages/protected/admin/addTourPage.xhtml 其中 .${jsfViewStete} 被传递到 javax.faces.ViewState
第二个GET 请求,现在在这种情况下非常重要。
结果:
首先GET。在右边我们可以看到 ViewState 的值。
Debug Sampler 表明 jsfViewState 值是正确的。我们可以将其与之前的屏幕进行比较。
javax.faces.application.ViewExpiredException: viewId:/pages/protected/admin/addTourPage.xhtml - View /pages/protected/admin/addTourPage.xhtml could not be restored.
我找到了一些关于这个问题的博客和主题,但其中许多都没有解决。如果需要,我可以放置这些主题的链接。我真的很困惑……
问题出在哪里?也许与
-
jsessionid? -
HTTP Header Manager在每个HTTP Request中?我删除了HTTP Header Manager,但没有任何改变。 - 与 JSF 应用程序有关吗?当我将 context-param
com.sun.faces.enableRestoreView11Compatibility添加到web.xml时,没有ViewExpiredException但返回页面的内容不正确。
【问题讨论】:
标签: java jsf viewstate jmeter load-testing