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

Lan*_*erX 13 java viewstate jsf jmeter load-testing

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

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

常规Exp提取器

使用代理和记录创建以下采样器.

第一个请求/TourJSF/pages/protected/admin/addTourPage.xhtml.这是GET从中提取ViewState的请求.

第一次GET

POST请求/TourJSF/pages/protected/admin/addTourPage.xhtml在哪里.${jsfViewStete}传入javax.faces.ViewState

传递了jsfViewState

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

第二次GET

结果:

首先GET.在右边我们可以看到ViewState的值.

第一个GET结果

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

调试采样器

javax.faces.application.ViewExpiredException: viewId:/pages/protected/admin/addTourPage.xhtml - View /pages/protected/admin/addTourPage.xhtml could not be restored.
Run Code Online (Sandbox Code Playgroud)

无法恢复ViewExpiredException addTourPage.xhtml

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

问题在哪里?也许有些东西

  • jsessionid
  • HTTP Header Manager在每一个HTTP Request?我删了HTTP Header Manager但没有改变.
  • 什么与JSF apllication?当我加入的context-param com.sun.faces.enableRestoreView11Compatibilityweb.xml,有没有ViewExpiredException,但返回的页面的内容是不正确的.