【问题标题】:Parsing HTML via JMeter regexp通过 JMeter 正则表达式解析 HTML
【发布时间】:2012-08-16 05:06:40
【问题描述】:

我在使用 JMeter 中的正则表达式时遇到了一些问题。 我有这个 HTML 表单

<form class="UIForm" id="UIComposer" action="/portal/intranet/?portal:componentId=b5914710-6c12-4fa9-9a18-2707d97111b7&interactionstate=JBPNS_rO0ABXcmAAt1aWNvbXBvbmVudAAAAAEAClVJQ29tcG9zZXIAB19fRU9GX18*&portal:type=action" onsubmit="return false;" method="post">

我需要在 JMeter 中获取 componentIdinteractionstate 的值作为变量。

【问题讨论】:

  • @DaveNewton 你是说BlackGaff?他是这里的 JMeter 人吗?他的分身现在似乎是一个生成的。编辑:等等,没关系。把他和 skaffman 搞混了。
  • @G_H 引用了开创性的no regex for html 帖子。
  • @DaveNewton 就在我用完这一天的所有赞成票时……伙计,那条线真是太美了。感谢您的链接!
  • @G_H 是的;纯艺术。确实如此,就像好的艺术一样。

标签: java regex jmeter


【解决方案1】:

请改用XPath Extractor

如果您必须使用正则表达式,只需搜索正则表达式标签解析即可。

【讨论】:

  • 他实际上需要一些属性值中的东西,所以用 XPath 提取只是第一步。
  • @G_H 提取器仅用于此目的,从 XML/HTML 获取内容并将它们放入 JMeter 变量中以供以后使用。
  • 哇,以为您只是在谈论 XPath。看起来真的很有用!我已经使用了当天的投票,明天会尽量记住要投票。那,在评论之前实际点击一个链接。
  • @G_H 这将带走所有的冒险。是的,JMeter 实际上可以做一些非常扭曲的事情。为了好玩,编写一个生成 XML 测试计划的 DSL,包括定义输入数据和指定表单/页面元素。在 easyb 测试中重复使用该信息。劲!大代码重用的 BDD 和负载测试;很有趣。
  • @G_H 享受可爱的用户界面(这就是我最初使用 DSL 的原因,尽管基本上只需使用构建器就很容易)。
【解决方案2】:

Jmeter 使用 PERL 正则表达式将值提取并存储到变量中。

这是学习如何编写它们的绝佳资源:http://www.regular-expressions.info/

这是 Jmeter 用户手册的链接:http://jmeter.apache.org/usermanual/component_reference.html#Regular_Expression_Extractor

在 Jmeter 中,确保将括号 () 放在要存储到变量的项目周围。鉴于您是 JMeter 的新手,我建议您使用两个正则表达式 - 每个项目一个。这将使您更容易跟踪和调试。你最终会得到如下表达式:componentId=(.+?);

【讨论】:

    【解决方案3】:

    请不要使用正则表达式来获取属性值。在字符转义方面有很多极端情况,因此它可能会在某个时候中断。查看 XML 处理 API,如 SAX、StAX、DOM 或 XSLT。请注意,这要求 HTML 与 XML 兼容(如果涵盖的是 XHTML)。

    一旦您通过合适的 API 获得操作属性的值,您就可以在其上释放正则表达式。

    或者,找出您是否可以通过 Servlet API 或类似的东西以某种方式利用现有的东西来处理 HTTP 发布/获取。他们将 URL 参数放在地图中以供检索。

    【讨论】:

    • 对不起,我对 JMeter 不熟悉。希望有更多经验的人可以提供帮助。
    猜你喜欢
    • 2016-06-15
    • 2010-09-19
    • 1970-01-01
    • 2021-07-20
    • 2014-12-06
    • 2012-09-12
    • 2014-05-16
    • 1970-01-01
    • 2020-10-12
    相关资源
    最近更新 更多