2016-12-28 32 views
0

我目前正在爲利用JMeter進行性能測試的內部Java網站創建測試樣品使用AJAX腳本。用JMeter

創建/記錄一些腳本並重新運行後,我發現一些腳本失敗(不是HTTP失敗,響應代碼爲200,因此它是一個成功的HTTP響應,但看起來像服務器端故障)錯誤「發生意外錯誤,頁面已關閉」。即使在爲此應用程序啓用高跟蹤之後,我仍無法找出確切的原因。

我發現這個網站使用大量的Ajax請求,因爲我已經收集每個樣本(或大部分),他們都記錄有「的.js」結尾的樣品。在用Jmeter做了很多關於這個問題的谷歌搜索之後,我發現Jmeter不運行Javascript,因爲這不是瀏覽器。

不夠公平,通過一些細節去了,看了很多的解決方案,說說使用Selenium網絡驅動器運行Java腳本,並且可以用JMeter來解決這一問題。但是他們都沒有談論關於運行javascripts(或者Ajax腳本)並使Jmeter運行HTTPS示例的webdriver的確切實現。

我的問題是雙重的:

1)我還能怎麼調試我的JMeter腳本,以確認這些錯誤是由阿賈克斯腳本,沒有別的,如果沒有Ajax的問題​​,還有什麼原因造成這種「頁面關閉造成的錯誤」

2)如何運行在相同的測試腳本的Java腳本和JMeter的運行HTTP樣本網絡驅動程序?

任何幫助或指針向相關文件非常感謝。目前我完全陷入困境,沒有任何解決辦法可以通過手冊閱讀。

回答

0

事實上,你有兩個選擇:

  1. 使用WebDriver Sampler進行真正的瀏覽器測試(這可能是非常耗費資源爲真正的瀏覽器消耗大量的CPU和RAM)
  2. 使用JMeter的執行AJAX調用。 JMeter不能執行JavaScript,但是可以使用例如HTTP(S) Test Script Recorder來記錄JavaScript驅動的HTTP請求,並重播爲JMeter HTTP請求採樣器。您需要應用一些自定義配置才能並行執行AJAX請求,請參閱How to Load Test AJAX/XHR Enabled Sites With JMeter文章以瞭解詳細信息。
+0

我已閱讀文章(如何使用JMeter加載測試AJAX/XHR啓用站點),它並沒有幫助我。我有很多樣本(根據步數和每個樣本記錄了多個腳本(.js,Ajax)),因此,爲每個Ajax腳本單獨重新創建一個線程,並行運行是不可能的。例如顯示,只有3個腳本與平行2個阿賈克斯腳本。真實情況是有點複雜零,並且這種解決方法是不實際的(如果我理解正確的這篇文章)。 – kenny

+0

另外,一些AJAX腳本都運行良好。這只是一些主要的腳本(在那裏我點擊保存按鈕或特定的動作)失敗,所以,想知道是否有一種方法來調試這些atleast .. – kenny