我想在JMeter中執行Ajax請求。我用JMeter和BlazeMeter記錄了我的測試計劃,但沒有人能處理Ajax請求。我如何解決我的問題?如何在JMeter中執行Ajax請求?
或者是否有任何工具可以發送併發的Ajax請求?
由於提前, M.A
我想在JMeter中執行Ajax請求。我用JMeter和BlazeMeter記錄了我的測試計劃,但沒有人能處理Ajax請求。我如何解決我的問題?如何在JMeter中執行Ajax請求?
或者是否有任何工具可以發送併發的Ajax請求?
由於提前, M.A
默認情況下,Ajax請求不能被JMeter的模擬,因爲它不處理.js
文件(3.1版本以上)。您必須爲AJAX請求明確添加請求(HTTP採樣器)。
使用瀏覽器(F12選項)的Network
選項卡並通過xhr
過濾流量,該流量僅顯示AJAX請求。將這些請求作爲HTTP採樣器添加到測試計劃中需要的腳本中。
瀏覽器可以處理.js
文件,因此AJAX請求從瀏覽器發送。當您使用HTTP Test Script Recorder
錄製腳本時,當您使用瀏覽器進行導航時,甚至AJAX請求(源自js文件)也將被添加/記錄到測試計劃中。
由於JMeter的無法處理.js
文件由於限制,手動添加AJAX請求使用HTTP取樣(不過HTTP GET或POST請求),如果你不HTTP Test Script Recorder
建設Test Plan
。
注意:如果您使用的是HTTP Test Script Recorder
,則不需要手動添加它們,因爲它們已經記錄在測試計劃中。
你可以做,通過記錄與JMeter的代理服務器的HTTP流量
http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf
但也僅僅是能夠重現相同的業務,可以爲會話,餅乾...... 更好的方法是有問題的使用webdriver的
https://jmeter-plugins.org/wiki/WebDriverTutorial/
https://jmeter-plugins.org/wiki/PluginInstall/
需要的軟件包是https://jmeter-plugins.org/files/packages/jpgc-webdriver-1.4.0.zip
我一步步嘗試了這個解決方案,但WebDriver取樣器給了我錯誤。在日誌查看器中出現此錯誤:測試失敗! java.lang.NoClassDefFoundError:org/openqa/selenium/os/Kernel32 –
你有沒有添加需要的庫?我通過安裝**「Selenium/WebDriver Support」**插件更新了鏈接 –
,這必須將selenium-remote-driver-x.xx.x.jar和其他jar文件複製到JMETER_HOME/lib文件夾 –
由於不能啓動線程組中最初定義的線程數量,因此當前不支持該功能,因此該功能被追蹤爲Bug 53159。 AJAX請求是「正常的」HTTP請求,因此JMeter可以記錄並重放它們,但是當涉及到異步執行時 - 您目前無法做到這一點。解決方法選項在:
我記錄使用JMeter的代理取樣後有同樣的問題。答案在這篇博文中:https://lincolnloop.com/blog/load-testing-jmeter-part-1-getting-started/ - 請參閱Ajax請求部分。
爲ajax請求添加HTTP標頭管理器,並確保您發送X-Requested-With:XMLHttpRequest
標頭。
JMeter可以記錄Js和xhr部分中瀏覽器的Network選項卡上顯示的所有JS請求,但是當我播放測試計劃時,JS請求將不會生效,並且Js請求不會生效。 –
是的,這是目前的預期行爲。 JMeter不處理'js'文件,所以源於'js'文件的請求永遠不會被髮送。這是JMeter的一個已知限制。您必須使用HTTP採樣器爲他們明確添加請求。 –
我對我的JS請求使用了採樣器/ HTTP請求。換句話說,我右鍵單擊採樣器並選擇HTTP請求,然後將路徑添加到路徑字段中的JS文件。但它不處理JS文件。它不是HTTP採樣器?我使用HTTP採樣器的方式錯誤嗎? –