2014-05-12 111 views
1

目前我正在做一個關於JMeter的課程,如果你能指出我正確的方向,我會被困在某些我會很感激的事情上。 使用正則表達式提取器我想寫一個正則表達式從參數化原因的下拉列表中提取值。然而,使用我的表達式似乎可以提取頁面上具有「選項值」的頁面上的所有內容,即我無法使表達式針對特定的下拉列表進行特定處理?非常感謝Jmeter提取的正則表達式

我曾嘗試:

OPTION VALUE="([A-Za-z]+)" 

以下是相關的HTML:

<SELECT NAME="fromPort"> 
    <OPTION VALUE="Acapulco">Acapulco 
    <OPTION VALUE="Frankfurt">Frankfurt 
    <OPTION VALUE="London">London 
    <OPTION VALUE="New York">New York 
    <OPTION VALUE="Paris">Paris 
    <OPTION VALUE="Portland">Portland 
    <OPTION VALUE="San Francisco">San Francisco 
    <OPTION VALUE="Seattle">Seattle 
    <OPTION VALUE="Sydney">Sydney 
    <OPTION VALUE="Zurich">Zurich 
</SELECT>  
+0

你到目前爲止嘗試過什麼? – piotrekkr

+0

到目前爲止,我嘗試過「([A-Za-z] +)」來提取城市名稱。對於乘客號碼,

回答

3

這是因爲正則表達式匹配特定字符串使用正則表達式提取一個貧窮的現狀。

您想基於DOM進行匹配,因此請嘗試使用XPath提取器。

您的具體情況粗略的例子是:

/html/body/select[@name="fromPort"]/option/text() 

這裏的講解,如果你想一些幫助: http://blazemeter.com/blog/using-xpath-extractor-jmeter-0

0

不要使用正則表達式來提取HTML數據。詳情請參閱RegEx match open tags except XHTML self-contained tags

JMeter提供2個後處理器,用於處理HTML數據。

的XPath提取

添加XPath Extractor因爲這是回國配置了端口的數據如下請求的小孩:

  • 參考名稱:任何有意義的事,即port。這將是對比賽變量或變量前綴導致
  • XPath查詢://select[@name='fromPort']/option/text()
  • 重要:如果你的反應是不是XML/HTML標準 - 檢查Use Tidy中,它使XPath的提取解析無效的XML/XHTML響應。

的輸出將是這樣的:

port=Acapulco 
port_1=Acapulco 
port_10=Zurich 
port_2=Frankfurt 
port_3=London 
port_4=New York 
port_5=Paris 
port_6=Portland 
port_7=San Francisco 
port_8=Seattle 
port_9=Sydney 
port_matchNr=10 

CSS/JQuery_Extractor

另一個選項是使用CSS/JQuery extractor這允許使用CSS和/或JQuery的表達式來獲取響應的有趣的部分。

例如,如果你正在尋找隨機端口下面的配置可能會有所幫助:

  • 參考名稱:再次,有意義的事情,比如port
  • CSS/jQuery表達式:select[name=fromPort] > option
  • 屬性:value

希望這會有所幫助。