一、 socket closed
問題原因:在JMeter下,發送http 請求時,一般都是默認選擇了use keepAlive,這個是連接協議,JMeter坑就在這里,默認勾選了這個(如果不勾選的話,也不會保存),但其配置JMeter.properties中的時間設置默認卻是注銷的,也是是說,不會等待,一旦連接空閑,則立馬斷開了,導致我們壓測中出現了事務失敗的情形。
解決:修改httpclient4.idletimeout=<time in ms> 設置成自己覺得合理的時間,一般可設置成10-60s(表示連接空閑10s后才會斷開),注意這邊單位是ms。修改完成后再次壓測,錯誤不再有了。
原文 :https://blog.csdn.net/shengnianbuzai/article/details/78345697?locationNum=8&fps=1
二、address already in use:connect
運行腳本報錯:
java.net.BindException: Address already in use: connect
原因分析:
這個問題的原因是windows端口被耗盡了(默認1024-5000),而且操作系統要 2~4分鍾才會重新釋放這些端口,所以可以增加windows的可用端口來解決。windows端口最大數為65534
解決方法一:
修改操作系統注冊表
1、cmd輸入:regedit
2、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters
3、新建兩個 DWORD值,name:MaxUserPort,value:65534(十進制);name:TcpTimedWaitDelay,value:30(十進制)
4、重啟系統
解決方法二:
設置線程組時,勾選 same user on each iteration 。