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

时间:2017-11-08 09:17:00

标签: java jsf jmeter

我是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 :(得分:0)

  • 您必须添加Cookie Manager

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

  

正则表达式:输入类型="隐藏"命名=" javax.faces.ViewState" ID =" javax.faces.ViewState"值="([^"] +)" * /

     

varName:jsfViewState

     

模板:$ 1 $

然后你必须在任何地方使用$ {jsfViewState}。

请参阅:

在测试中,将XPath Extractor中的-1替换为1

答案 1 :(得分:0)

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

  1. 作为HTTP Cookie,在这种情况下,HTTP Cookie管理器将执行此操作
  2. 作为网址的一部分。如果您的应用将JSESSIONID附加到请求网址,则需要使用HTTP URL Re-writing Modifier自动处理此值并相应地修改您的网址。
  3. 关于Viewstate,您的XPath Extractor似乎是正确的,但是如果形状不是很好的XHTML,您可能需要勾选Use Tidy框。使用Debug SamplerView Results Tree听众组合仔细检查myViewState变量值。