如題,jmeter報出java.net.SocketException: Socket closed,我查詢了下,服務器是正常的,可以返回數據,基本確定問題出在我這邊jmeter。查詢原因,看到有人說:該異常在客戶端和服務器均可能發生。異常的原因是己方主動關閉了連接后(調用了Socket的close方法)再對網絡連接進行讀寫操作。
解決
Socket closed
Non HTTP response code: org.apache.http.NoHttpResponseException (the target server failed to respond)
資料查詢:https://wiki.apache.org/jmeter/JMeterSocketClosed
問題原因:在JMeter下,發送http 請求時,一般都是默認選擇了use keepAlive(這個是什么?看后面資料),這個是連接協議,JMeter坑就在這里,默認勾選了這個(如果不勾選的話,也不會保存),但其配置JMeter.properties中的時間設置默認卻是注銷的,也是是說,不會等待,一旦連接空閑,則立馬斷開了,導致我們壓測中出現了事務失敗的情形。
解決:修改httpclient4.idletimeout=<time in ms> 設置成自己覺得合理的時間,一般可設置成10-60s(表示連接空閑10s后才會斷開),注意這邊單位是ms。修改完成后再次壓測,錯誤不再有了。
轉自:https://blog.csdn.net/weixin_33937913/article/details/86361549