Jathter 3.0上的XPath和正则表达式都不起作用

时间:2016-08-19 09:47:41

标签: regex tomcat xpath jsf-2 jmeter

进行负载测试,我遇到了需要使用动态变量(javax.faces.ViewState)的情况。

解决方案是使用XPath或正则表达式提取器。

他们两个都没有工作(...& javax.faces.ViewState =%24%7Bvar1%7D):

enter image description here

enter image description here

我使用的变量的值是

<input type="hidden" name="javax\.faces\.ViewState" id="javax\.faces\.ViewState" value="(.+?)"autocomplete="off" />

//input[@id='javax.faces.ViewState']/@value

来源:http://se7so.blogspot.com/2012/12/apache-jmeter-along-with-jsf-pages.html

UPDATE1:

JSF生成的参数:

enter image description here

UPDATE2

使用谷歌浏览器控制台:

enter image description here

我错过了什么?

2 个答案:

答案 0 :(得分:2)

  1. 对于正则表达式,您需要转义逗号,因为它们可能被视为special characters,因此请使用以下正则表达式:

    <input type="hidden" name="javax\.faces\.ViewState" id="javax\.faces\.ViewState" value="(.+?)" autocomplete="off" />
    

    演示:

    Regular Expression Extractor

  2. 对于XPath Extractor,如果您的响应不符合XML / XHTML,则可能需要检查Use Tidy框以处理&#34;常规&#34; HTML。

    Xpath Demo

  3. 顺便说一句,您可以针对实时服务器响应验证Regular,XPath,CSS和JSONPath表达式,而无需使用View Results Tree侦听器重新运行测试,有关详细信息,请查看How to Debug your Apache JMeter Script

答案 1 :(得分:1)

尝试在Regular Expression Extractor中使用此作为正则表达式:

  

输入类型=&#34;隐藏&#34;命名=&#34; javax.faces.ViewState&#34;   ID =&#34; javax.faces.ViewState&#34;值=&#34;&#34(+。);

Here你可以看到它在工作。