【问题标题】:Apache JMeter Regular Expressions Extractor ErrorApache JMeter 正则表达式提取器错误
【发布时间】:2014-10-28 18:35:20
【问题描述】:

我向网页发出了 HTTP 请求,它使用 VAST 代码 (XML) 成功响应然后我尝试使用 Apache JMeter 正则表达式提取器从 MediaFile 标记中提取 URL响应 XML 代码。但它不起作用。

这是响应的数据(VAST XML):

<?xml version="1.0" encoding="UTF-8"?>
<VAST version="2.0">
  <Ad id="brightroll_ad">
    <InLine>
      <AdSystem>BrightRoll</AdSystem>
      <AdTitle></AdTitle>
      <Impression><![CDATA[http://brxserv-22.btrll.com/v1/epix/6835714/3858435/84416/140363/AbQ93_XgMgCcRUTi_JAAFJwAACJEsAOuADAAAAAAAiyel-GCNFFg/event.imp/r_64.aHR0cDovL2Iuc2NvcmVjYXJkcmVzZWFyY2guY29tL3A_JmMxPTgmYzI9NjAwMDAwNiZjMz04NDQxNiZjND0zODU4NDM1JmM1PTIwNDYzJmM2PTY4MzU3MTQmYzEwPTE0MDM2MyZjdj0xLjcmY2o9MSZybj0xNDE0NDEwMTg1JnI9aHR0cCUzQSUyRiUyRnBpeGVsLnF1YW50c2VydmUuY29tJTJGcGl4ZWwlMkZwLWNiNkMwekZGN2RXakkuZ2lmJTNGbGFiZWxzJTNEcC42ODM1NzE0LjM4NTg0MzUuMCUyQ2EuMjA0NjMuODQ0MTYuMTQwMzYzJTJDdS45NjguNjQweDM2MCUzQm1lZGlhJTNEYWQlM0JyJTNEMTQxNDQxMDE4NQ]]></Impression>
  <Impression><![CDATA[http://rc.rlcdn.com/361686.gif]]></Impression>
  <Creatives>
    <Creative id="140363" sequence="1">
      <Linear>
        <Duration>00:00:30</Duration>
        <TrackingEvents>
          <Tracking event="midpoint"><![CDATA[http://brxserv-22.btrll.com/v1/epix/6835714/3858435/84416/140363/AbQ93_XgMgCcRUTi_JAAFJwAACJEsAOuADAAAAAAAiyel-GCNFFg/event.mid]]></Tracking>
          <Tracking event="complete"><![CDATA[http://brxserv-22.btrll.com/v1/epix/6835714/3858435/84416/140363/AbQ93_XgMgCcRUTi_JAAFJwAACJEsAOuADAAAAAAAiyel-GCNFFg/event.end]]></Tracking>
        </TrackingEvents>
        <AdParameters></AdParameters>
        <VideoClicks>
          <ClickTracking><![CDATA[http://brxserv-22.btrll.com/v1/epix/6835714/3858435/84416/140363/AbQ93_XgMgCcRUTi_JAAFJwAACJEsAOuADAAAAAAAiyel-GCNFFg/event.click]]></ClickTracking>
        </VideoClicks>
        <MediaFiles>
          <MediaFile type="application/x-shockwave-flash" apiFramework="VPAID" height="360" width="640" delivery="progressive">
            <![CDATA[http://shim.btrll.com/shim/20141023.75835_master/Scout.swf?type=VPAID&hidefb=true&asset_64=aHR0cDovL3J0ci5pbm5vdmlkLmNvbS9yMS41NDQ1OTU0ZDA5ZTY4OS40MjIxNTcxODtjYj0xNDE0NDEwMTg1O3NpdGVpZD0zODU4NDM1bGluZWl0ZW04NDQxNg&vid_click_url=&config_url_64=&h_64=YnJ4c2Vydi0yMi5idHJsbC5jb20&dn=-&e=p&p=6835714&s=3858435&l=84416&ic=140363&ii=20463&iq=t&cx=&x=AbQ93_XgMgCcRUTi_JAAFJwAACJEsAOuADAAAAAAAiyel-GCNFFg&adc=false&t=33&si=&vh_64=Z2VvLXJ0YnNlcnYtdjIuYnRybGwuY29t&apep=0.05&hbp=0.01&view=vast2]]>
          </MediaFile>
        </MediaFiles>
      </Linear>
    </Creative>
  </Creatives>
</InLine>

这是我使用的设置。

Reference Name: mediaFileUrl_VASTAdTagURI
Regular Expression: <MediaFile type="application//x-shockwave-flash" apiFramework="VPAID" height="360" width="640" delivery="progressive"><([^"]+)http:\/\/([^"]+)]]>>
Template: $1$$2$
Match No.: -1
Default Value: No mediaFileUrl_VASTAdTagURI

结果总是(无 mediaFileUrl_VASTAdTagURI)。关于正则表达式问题的任何线索。

【问题讨论】:

  • 你到底想捕捉什么,只是 URL?
  • 我觉得你的 + 太贪心了,试试加点?
  • @l'L'l : 我正在尝试提取最后一个 URL

标签: regex apache xmlhttprequest jmeter beanshell


【解决方案1】:

JMeter 提供XPath Extractor 来处理XML 和XHTML 数据。它也适用于 HTML,但您必须选中 Use Tidy 框,以便 JMeter 可以使用 JTidy 来处理 HTML。

用于提取 CDATA 内容的 XPath 表达式应类似于:

//MediaFile/text()[2]

有关详细信息,请参阅XPath Tutorial。很少有工具可以帮助构建/调试 XPath 表达式:

【讨论】:

  • 这篇文章很有帮助。正确的 XPath 是 //MediaFile[1] 我也在 Beanshell 中打印结果,如 String mediaFileUrl_VASTAdTagURI_1_g2 = vars.get ("mediaFileUrl_VASTAdTagURI_1_g2");然后在返回中打印字符串。但每当我使用 Bean shell 时,它就会停止工作。
猜你喜欢
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多