2014-10-27 51 views
0

我已經向網頁發出HTTP請求,並且使用VAST代碼(XML)成功響應此後,我嘗試使用Apache JMeter正則表達式提取器從MediaFile標籤中提取URL已回覆的XML代碼。但它不起作用。Apache JMeter正則表達式提取器錯誤

下面是響應數據(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 

結果總是(No mediaFileUrl_VASTAdTagURI)。關於正則表達式的問題的任何線索。

+0

究竟是什麼你試圖捕獲,只是網址? – 2014-10-27 12:55:20

+0

我認爲你的+正在貪婪,請嘗試添加一些? – CharlieS 2014-10-28 01:06:35

+0

@ l'L'l:我試圖提取最後一個URL – AHS 2014-10-29 09:31:31

回答

0

JMeter提供了XPath Extractor來處理XML和XHTML數據。它也可以用於HTML,但您必須檢查Use Tidy框,以便JMeter可以使用JTidy來針對HTML。

XPath表達式提取CDATA的內容應該是這個樣子:

//MediaFile/text()[2] 

詳情請參閱XPath Tutorial。一些工具可以在建築/調試XPath表達式幫助:

+0

這篇文章是非常有幫助的。確切的XPath是 ** // MediaFile [1] ** 另外我在Beanshell中打印結果,如 String mediaFileUrl_VASTAdTagURI_1_g2 = vars.get(「mediaFileUrl_VASTAdTagURI_1_g2」); 並在回車後打印字符串。但是每當我使用Bean shell時就會停止工作。 – AHS 2014-10-29 13:34:42