通过JMeter的Regular Expression Extractor从html标记中提取值

时间:2014-06-10 12:45:36

标签: html jmeter

我有html select,如下所示

<select id="alias" name="alias">
  <option value="">-Select-</option>
  <option
          value='100'
          data-accountnumber='2251106207001'
          data-accountholder='Ashraful'
          data-mobilenumber='01811449003'
          data-email='shadiq2@yahoo.com'>
      testBeneficiary-1
  </option>
</select>

我需要regular expression JMeter来提取上面代码段value的{​​{1}}。谁能帮我这个?谢谢你提前

2 个答案:

答案 0 :(得分:1)

根据https://stackoverflow.com/a/1732454/2897748

  

您无法使用正则表达式解析[X] HTML。因为HTML无法解析   正则表达式。正则表达式不是可用于正确解析HTML的工具。

我建议改用XPath Extractor

在您的情况下,XPath Extractor应配置如下:

  • 检查Use Tidy数据是否符合XML / XHTML,否则您将获得SAX异常
  • 参考名称:任何有意义的东西,它将是存储XPath表达式结果的JMeter变量的名称。让它为value
  • XPath查询:

    //select[@id='alias']/option[@data-email='shadiq2@yahoo.com']/@value
    

上面的XPath查询返回&#34; value&#34;选项的属性&#34; data-email&#34;属性是&#34; shadiq2@yahoo.com"选择&#34;别名&#34; ID。

提取后,您可以将该变量引用为${value}${__V(value)}

有关详细信息,请参阅Using the XPath Extractor in JMeter指南,XPath语言参考和简短食谱。

答案 1 :(得分:1)

给定的html文本

<select id="alias" name="alias">
  <option value="">-Select-</option>
  <option
          value='100'
          data-accountnumber='2251106207001'
          data-accountholder='Ashraful'
          data-mobilenumber='01811449003'
          data-email='shadiq2@yahoo.com'>
      testBeneficiary-1
  </option>
</select>

我们可以使用以下正则表达式格式获取选项值

正则表达式格式以获得值100

<option value="">-Select-</option>\s\s\s<option\s\s\s\s\s\s\s\s\s\s\svalue='(.+)'

注意:

\s - means single space
\s\s\s - means three spaces
\s\s\s\s\s\s\s\s\s\s\s - means eleven spaces