如何在使用XPath提取器时忽略JMeter中有关html标记的错误

如何在使用XPath提取器时忽略JMeter中有关html标记的错误,jmeter,Jmeter,我成功地将XPath提取器添加到JMeter测试中。现在,我在JMeter.log中收到错误,抱怨我们的一个网页有两个html标记。这些标记是由我们创建的,可以在代码中使用。但是,JMeter不喜欢它们。是否有地方可以输入这些标记,让JMeter知道如何排除对它们的检查 假设标签是: xxxxx 和 xxxxx 以下是JMeter日志信息: 2014/01/29 14:27:18警告-jmeter.util.XPathUtil:整洁错误:第25行第4列-错误:无法识别! 第255行第18列-错误

我成功地将XPath提取器添加到JMeter测试中。现在,我在JMeter.log中收到错误,抱怨我们的一个网页有两个html标记。这些标记是由我们创建的,可以在代码中使用。但是,JMeter不喜欢它们。是否有地方可以输入这些标记,让JMeter知道如何排除对它们的检查

假设标签是:

xxxxx 和 xxxxx

以下是JMeter日志信息:

2014/01/29 14:27:18警告-jmeter.util.XPathUtil:整洁错误:第25行第4列-错误:无法识别! 第255行第18列-错误:无法识别! InputStream:给定的Doctype为“” InputStream:文档内容看起来像HTML4.01 发现33个警告,2个错误! 此文档存在错误,必须在 使用HTMLTidy生成整理版本

如果我在测试中禁用XPath提取器,我将不再收到这些错误。所以,我知道是XPath提取器导致了这种情况。但是,我需要XPath提取器来获取运行测试所需的其他信息。所以,我不能删除它。你知道我怎么能忽略这两个新错误吗

我以前使用过HTML断言,并为不同的项目将错误阈值设置为2。但是,这在这里似乎没有帮助


*编辑:另外,我在XPath提取器上为“XML解析选项”选中了“使用整洁”。

根据错误的
警告级别,看起来您已经选中了
显示警告
报告错误
或两者

如果您的页面不符合XHTML/XML,则需要选中
Use Tidy

<>如果你的服务器响应是“太坏”,从整洁的角度来看,你总是可以考虑下面的后处理器获得所需的数据:

  • -哪一个不关心错误或无效的标记
  • -它使用不同的选择器,不要求页面符合XML/XHTML

一般来说,我会建议检查页面使用情况描述看起来像一个真正的问题给我。严重破损的页面可能会出现错误呈现,搜索引擎无法检索等情况。

Dmitri的答案已经正确。我只是想补充一下我为解决我的问题所做的工作,因为这可能会帮助其他人

我最终成功地使用了正则表达式提取器(最后:-)。我偶然发现这一页非常有用:

http://jmeter.apache.org/usermanual/regular_expressions.html
( section 20.2 )
因此,在JMeter中,我将正则表达式提取器作为子级添加到试图从中提取信息的HTTP请求中。然后,我的新好友是ViewResults树下的XPath测试员和RegExp测试员。这使得快速测试您的表达式是否正确变得更加容易。我在正则表达式提取器的正则表达式字段中得到了以下结果:

name="token" value="(.+?)"
我还意识到,对于将来阅读本文的人来说,如果你在网上找到的某个表达式不适合你,你可以构建一个表达式。当然,我在那一页上找到了我的,但我也发现如果我没有这么幸运的话,我怎么能做到这一点。我是什么意思

在我找到JMeter站点中显示示例的部分之前,我尝试了以下方法:

1. Ran my test
2. Looked at View Results Tree I added to the HTTP Request I was trying to pull the value from
3. In the View Results Tree, I clicked on drop down to change it to RegExp Tester
4. Started typing in many things to see what would match and not match into the RegExp Tester.  I tried:
4a. id="token" and this retrieved information
4b. id="token"/@value and this did not retrieve anything
4c. name="token" and this retrieved information
4d. name="token" value="(.+?)" and this retrieved the data I was after

希望这对别人有帮助

谢谢你的回复。我已经在一个类似的页面上做了一个HTML断言,发现了一个可能也存在于这里的bug(你说得对)。此外,当我试图使用正则表达式提取器时,我无法让它返回post响应所需的数据。我不得不使用XPath提取器,因为它是我唯一可以正常工作的提取器…哈哈-看到这个:()。这个解决方案导致了这个问题…哈哈。我将尝试上面列出的其他建议。