2017-09-01 373 views
0

衆所周知,JMeter到目前爲止還不支持JavaScript,但有沒有其他方法可以從JavaScript的響應數據中提取數據(不會產生我們可以使用的確切響應瀏覽器)使用正則表達式提取器並將其注入爲另一個HTTP請求的參數?JMeter:JavaScript沒有返回響應數據集中的確切數據

注意:在響應頁面中顯示爲「需要JavaScript。此網頁瀏覽器不支援JavaScript或JavaScript在本網頁瀏覽器中未啓用。」

+0

我讀過3次,找不到問題。發佈您的代碼/錯誤消息,以便人們可以真正幫助您。 –

+0

我沒有收到任何錯誤消息。實際上,我認爲在響應數據頁上出現的響應數據格式不一樣。所以我不能使用正則表達式提取器來提取我想要注入的數據作爲使用jmeter的另一個HTTP請求的參數。 –

回答

0

我認爲你正在尋找HTML視圖。如文檔所述:

HTML視圖嘗試將響應呈現爲HTML。呈現的HTML可能與任何Web瀏覽器中的視圖相比較差;然而,它提供了一個快速的近似值,有助於初始結果評估。 不下載圖像,樣式表等。

在你的情況下查看是不是非常有幫助,因爲頁面有<noscript>標籤,這能確保你只看到有關缺少JavaScript的一個消息。所以不要看它,使用文本模式,而不是,它給你的實際頁面源。

您似乎還有另一個困惑,JavaScript有某種「響應數據」。它不是。 JavaScript是一種客戶端技術,而JMeter正在直接處理HTTP請求/響應。所以當客戶端發出一個新的HTTP請求(這可能是JavaScript代碼,用戶操作或其他任何東西的結果)時,這種請求的JMeter表示總是相同的:HTTP Sampler,它有一些響應數據,正如我所說的那樣,韌皮在文本模式中查看。

因此,底線是:您可能沒有記錄或回放腳本的問題,您只是沒有正確檢查它。

+0

爲了使用正則表達式提取器提取值,我們必須僅使用文本格式。我只使用文本模式,而我作爲便箋發佈的消息也僅來自文本模式。 –

+0

這沒有任何意義。請發佈1.顯示錯誤的屏幕截圖; 2.以文本模式顯示頁面的全部內容。 –

0

如果您發送與瀏覽器相同的請求,您應該得到相同的響應。如果您僅收到有關未啓用JavaScript的錯誤消息 - 您的測試工作不正常,並且不能模擬真實瀏覽器以100%的準確率發送的所有請求(即,您只使用JMeter發送主要請求而瀏覽器只有幾個AJAX requests從服務器獲取數據並實際呈現內容)。

這也意味着,每個JMeter的虛擬用戶需要代表真實用戶使用盡可能接近其所有的東西(cookiesheaderscachethink times等)真正的瀏覽器測試並沒有做出很大的意義

因此,我建議的下一個步驟:

  1. 請確保您有到位相關
  2. 請確保您遵循How to make JMeter behave more like a real browser文章的建議。

一旦完成 - 比較其通過瀏覽器和JMeter的使用像FiddlerWireshark請求一個嗅探器工具應該是完全相同的(除了它需要關聯的動態數據)發送的請求(多個)。如果有不一致或缺少請求,您需要修改JMeter配置,以便JMeter請求剛好與瀏覽器匹配。