【问题标题】:Testing JSF application with JMeter - ViewState issue使用 JMeter 测试 JSF 应用程序 - ViewState 问题
【发布时间】: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


    【解决方案1】:

    【讨论】:

    • 我不敢相信...线程组中的 HTTP Cookie 管理器有帮助。非常感谢!
    • 我已经在使用 HTTP Cookie 管理器,但即使我传递了提取的 jsf 视图状态,我仍然遇到问题。但是,您提供的第二个链接对我有所帮助。 “一些注释”部分提到提取的视图状态必须作为“编码”传递。一旦我将它设置为编码,jmeter 测试就会通过 WebSphere Portal 上的 JSF Portlet 进行。非常感谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多