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

2022-09-04 22:11:24

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

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

Regular Exp Extractor

以下采样器是使用代理和记录创建的。

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

First GET

该请求,其中 .传入POST/TourJSF/pages/protected/admin/addTourPage.xhtml${jsfViewStete}javax.faces.ViewState

jsfViewState passed

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

Second GET

结果:

第一。在右侧,我们可以看到 ViewState 的价值。GET

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 RequestHTTP Header Manager
  • 与JSF apllication有关的东西?当我将 context-param 添加到 中时,没有,但返回页面的内容不正确。com.sun.faces.enableRestoreView11Compatibilityweb.xmlViewExpiredException

答案 2

推荐