【问题标题】:Jmeter Regular Expression ExtractionJmeter正则表达式提取
【发布时间】:2015-05-11 20:02:16
【问题描述】:

有人可以帮助我使用正则表达式或任何其他方式从以下获取值“1237857346”,我可以从 JMeter 中的 HTML 中获取值“1237857346”。

<select class="card_account" name="existing__account">
  <option value="" disabled="disabled">Card Number</option>
  <option value="1237857346" selected="selected">************4567</option>
</select>

一点背景。我正在使用 JMeter 并尝试将值“1237857346”额外传递到下一个请求中。

【问题讨论】:

    标签: regex jmeter


    【解决方案1】:

    使用正则表达式解析 HTML 不是一个好主意,famous Stack Overflow answer 证明了这一点

    我建议改用XPath Extractor。将 XPath 提取器添加为 HTTP 请求采样器的子级,该采样器返回该选择并按如下方式对其进行配置:

    • XML 解析选项:勾选Use Tidy 框。可能没有必要,但如果您的服务器响应不符合 XML/XHTML 标准,您将一无所获
    • 参考名称:任何有意义的名称,即value - 它将是保存提取数据的变量的名称
    • XPath 表达式://select[@class='card_account']/option[@selected='selected']/@value - 需要

      • 选择拥有 class= card_account
      • selected = "selected" 的选项
      • 上述选项的值属性

    并将其存储到“值”变量中。您可以在需要时将其称为${value}

    请参阅以下材料以获取更多参考:

    【讨论】:

    • 谢谢。是的,我知道 XPATH,因为我每天都在工作。你的建议就像一个冠军......太棒了:)
    【解决方案2】:

    您可以使用以下正则表达式:

    <option[^<]*>Card Number</option>\s*<option[^<]*?value="(\d+)"
    

    该值将在第 1 组 ($1$) 中,这正是您所需要的。

    demo

    如果&lt;option&gt; 节点值中总是有12 个星号(可以与\*{12} 匹配),您可以使用:

    <option[^<]*value="(\d+)"[^<]*>\*{12}\d+</option>
    

    another demo

    【讨论】:

    • 感谢您的建议。我使用了 xpath 及其工作。我会为未来提供正则表达式建议。 :)
    • 当然,你可以使用我的建议作为后备。
    猜你喜欢
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多