使用JMeter测试JSF应用程序 - ViewState问题

时间:2012-10-04 18:59:44

标签: java jsf viewstate jmeter load-testing

我整天都在尝试运行JSF应用程序的JMeter测试。 我知道ViewState,但这似乎是一个非常简单的问题。我准备了正则表达式提取器:

Reference Name: jsfViewState
Regular expression: id=\"javax.faces.ViewState\" value=\"(.+?)\"
Template $1$
Match No. 1

Regular Exp Extractor

使用代理和录制创建以下采样器。

首先请求/TourJSF/pages/protected/admin/addTourPage.xhtml。这是GET请求,将从中提取ViewState。

First GET

POST请求/TourJSF/pages/protected/admin/addTourPage.xhtml${jsfViewStete}传递到javax.faces.ViewState

jsfViewState passed

第二个GET请求,在这种情况下非常重要。

Second GET

结果:

首先GET。在右侧,我们可以看到ViewState的值。

first GET result

Debug Sampler表明jsfViewState值正确。我们可以将它与之前的屏幕进行比较。

Debug Sampler

javax.faces.application.ViewExpiredException: viewId:/pages/protected/admin/addTourPage.xhtml - View /pages/protected/admin/addTourPage.xhtml could not be restored.

ViewExpiredException addTourPage.xhtml could not be restored

我找到了一些关于这个问题的博客和主题,但其中很多都没有解决。如果需要,我可以链接到这些主题。我真的很困惑......

问题出在哪里?也许

的东西
  • jsessionid
  • 每个HTTP Header Manager中的
  • HTTP Request?我删除了HTTP Header Manager但没有改变。
  • JSF apllication的东西?当我将context-param com.sun.faces.enableRestoreView11Compatibility添加到web.xml时,没有ViewExpiredException但是返回页面的内容不正确。

1 个答案:

答案 0 :(得分:10)