JMeter请求中的StringIndexOutOfBoundsException

时间:2016-10-11 13:18:12

标签: html jsf jmeter

为什么我在POST请求中获得this exception

我尝试使用JMeter登录,但不管我做什么都不行。 我有Cookie管理器HC4CookieHandler/standard,正则表达式提取器jsfViewState/name="javax.faces.ViewState" id="javax.faces.ViewState" value="(.+?)"已检查主要和子样本/正文。

但仍然在POST登录中我得到了this.

我失踪了什么?它是正则表达式值吗? javax.facesViewState的值为"-2918962836342094824:7411539759421041608",但范围"(.+?)"不应该捕获它吗?

1 个答案:

答案 0 :(得分:0)

查看您的请求详细信息,您似乎正在发送${jsfViewstate}而不是数字值,因此您的正则表达式提取程序似乎不会出于某种原因从响应中捕获它。原因可能是:

  1. 父级采样器不包含javax.faces.ViewState输入,它包含子样本。在这种情况下,您需要将正则表达式提取器范围切换为“主要样本和子样本”
  2. 响应标记假定“ViewState”输入分为2行,因此单行正则表达式无法与之匹配。
  3. 一些建议:

    您可以考虑使用XPath Extractor作为替代方案。

    1. 将XPath Extractor添加为第一个请求的子级
    2. 按如下方式配置:
      • 申请:Main sample and sub-samples
      • 检查Use Tidy
      • 参考名称:任何有意义的内容,即jsfViewState
      • XPath查询://input[@id='javax.faces.ViewState']/@value
    3. 禁用(或删除)正则表达式提取器
    4. 在必要时将提取的值称为${jsfViewState}
    5. XPath Extractor配置:

      XPath Extractor Configuration

      演示:

      XPath Demo