首页 文章

javax.faces.application.ViewExpiredException与JSF应用程序中的JMeter

提问于
浏览
0

我是JMeter的新手 .

我正在使用JMeter来测试JSF应用程序中的场景,登录应用程序的场景和打开crud页面(issue_warning_create.jsf)以在数据库中创建记录并且我的浏览器成功但是当我使用JMeter测试场景时它失败了例外:

javax.faces.application.ViewExpiredException:viewId:/secure/adt/fin/issue_warning_create.jsf无法恢复 .

我注意到JMeter使用不同的会话ID而不是会话ID来自响应 . 我试图监听注销以终止会话并在JMeter中使用新会话发出新请求,但也给了我相同的异常 . 我添加了http cookie管理器和xpath提取器来获取图像中的视图状态:

enter image description here

enter image description here

enter image description here

2 回答

  • 0
    • 您必须添加Cookie Manager

    • 您还必须使用Regex Extractor关联JSF View State:

    正则表达式:输入类型=“隐藏”name =“javax.faces.ViewState”id =“javax.faces.ViewState”value =“([^”])“ . * / varName:jsfViewState模板:$ 1 $

    然后,您可以在任何位置使用$ .

    看到:

    In your test, replace -1 in XPath Extractor by 1

  • 0

    JSESSIONID可以在两种模式下运行:

    • 作为HTTP Cookie,在这种情况下,HTTP Cookie管理器将完成这一操作

    • 作为URL的一部分 . 如果您的应用程序将 JSESSIONID 附加到请求URL,则需要使用HTTP URL Re-writing Modifier自动处理此值并相应地修改您的URL .

    关于Viewstate,您的XPath Extractor似乎是正确的,但是如果形状不是很好的XHTML,您可能需要勾选 Use Tidy 框 . 使用Debug SamplerView Results Tree listener组合仔细检查 myViewState 变量值 .

相关问题