jmeter压测小白常见问题解决
1、执行压测的时候报:java.net.BindException: Address already in use: connect
原因:windows提供给TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收它们,就导致我们在短时间内跑大量的请求时将端口占满了,导致如上报错。
解决办法(在jmeter所在服务器操作):
1.cmd中输入regedit命令打开注册表;
2.在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters右键Parameters;
3.添加一个新的DWORD,名字为MaxUserPort;
4.然后双击MaxUserPort,输入数值数据为65534,基数选择十进制;
5.完成以上操作,务必重启机器,问题解决。
参考链接:https://blog.csdn.net/zhangxiaohui4445/article/details/100162317
2、jmeter接口测试报java.net.SocketException: Socket closed错误。
查询原因,看到有人说:该异常在客户端和服务器均可能发生。
异常的原因是己方主动关闭了连接后(调用了Socket的close方法)再对网络连接进行读写操作。
问题原因:在JMeter下,发送http 请求时,一般都是默认选择了use keepAlive(这个是什么?看后面资料),这个是连接协议,JMeter坑就在这里,默认勾选了这个(如果不勾选的话,也不会保存),但其配置JMeter.properties中的时间设置默认却是注销的,也是是说,不会等待,一旦连接空闲,则立马断开了,导致我们压测中出现了事务失败的情形
解决方法:选择HTTP接口,进入高级设置实现方式为HttpClient4,时间10秒(这的单位是毫秒),设置好就好了。
参考:https://blog.csdn.net/weixin_33937913/article/details/86361549
https://wiki.apache.org/jmeter/JMeterSocketClosed