2014-01-29 51 views
0

我成功地將XPath提取器添加到了我的JMeter測試中。現在,我在JMeter.log中收到錯誤,抱怨我們的一個網頁中有2個html標籤。這些標籤是由我們創建的,並且是我們可以在代碼中使用的標籤。但是,JMeter不喜歡它們。有什麼地方可以輸入這些標籤讓JMeter知道排除檢查它們。如何在使用XPath Extractor時忽略JMeter中的html標記錯誤

比方說,標籤是:

XXXXX 和 XXXXX

這裏是JMeter的日誌信息:

2014年1月29日14時27分18秒WARN - jmeter.util。 XPathUtil:整齊錯誤:第25行第4列 - 錯誤:無法識別! 第255行第18列 - 錯誤:無法識別! InputStream:給出的文檔類型爲「」 InputStream:文檔內容看起來像HTML 4.01 Transitional 33警告,發現2個錯誤! 本文檔有錯誤,必須在使用HTML Tidy生成整理版本之前修復 。

如果我在我的測試中禁用XPath提取器,我不會再收到這些錯誤。所以,我知道XPath提取器帶來了這個問題。但是,我需要XPath提取器來獲取運行測試所需的其他信息。所以,我不能刪除它。任何想法我可以忽略這2個新錯誤?

我以前使用過一個HTML Assertion,併爲其他項目設置Error Threshhold爲2。但是,這似乎沒有幫助。

*編輯:此外,我在XPath提取器上選中「使用整潔」作爲「XML分析選項」。

回答

1

按照WARN您的錯誤級別,它看起來像您已檢查Show warningsReport Errors或兩者。

如果您的頁面不符合XHTML/XML標準,您需要檢查Use Tidy

如果您的服務器響應「太破」從你總是可以考慮以下後置處理器整潔指向獲取所需的數據:

一般來說,我會建議使用HTML Assertion檢查頁面,因爲所描述的情況看起來像是一個真正的問題。嚴重損壞的頁面可能會錯誤地呈現,而不是被搜索引擎拾起等。

+0

謝謝你的迴應。我已經在類似的頁面上完成了HTML聲明,並發現了一個可能在這裏存在的錯誤(你是對的)。此外,當我試圖使用它時,我無法讓正則表達式提取器返回我需要的帖子響應中的數據。我不得不使用XPath提取器,因爲它是我可以正常工作的唯一一個...大聲笑 - 看到這個:(http://stackoverflow.com/questions/21436338/how-can-i-get-the-隱藏輸入字段使用jmeter)。該解決方案導致這個問題......大聲笑。我會嘗試上面列出的其他建議。 – toolmania1

0

Dmitri的回答已經正確。我只是想補充我所做的解決我的問題,因爲它可能會幫助別人。

我最終成功地使用了正則表達式提取器(FINALLY :-))。我偶然發現了這個頁面,這是非常有幫助的:

http://jmeter.apache.org/usermanual/regular_expressions.html 
(section 20.2) 

所以,在JMeter的,我加了一個正則表達式提取作爲一個孩子的HTTP請求,我試圖拉離信息。然後,我的新朋友是查看結果樹下的XPath測試器和RegExp測試器。這使得快速測試您的表達式是對還是錯是更容易。我結束了這個在正則表達式提取的正則表達式領域:

name="token" value="(.+?)" 

我意識到還有什麼,對於那些在將來讀這篇文章,是你可以,如果其中的一個表達式建立一個表達式你發現在線不適合你。當然,我從那個網頁上找到了我的內容,但是我也發現如果我沒有這個幸運,我該如何建立它。我是什麼意思?

之前,我發現,在JMeter的網站,部分顯示的示例中,我嘗試這樣做:

1. Ran my test 
2. Looked at View Results Tree I added to the HTTP Request I was trying to pull the value from 
3. In the View Results Tree, I clicked on drop down to change it to RegExp Tester 
4. Started typing in many things to see what would match and not match into the RegExp Tester. I tried: 
4a. id="token" and this retrieved information 
4b. id="token"/@value and this did not retrieve anything 
4c. name="token" and this retrieved information 
4d. name="token" value="(.+?)" and this retrieved the data I was after 

希望這可以幫助別人!