最近用jmeter做一些接口的压力测试,记录下使用过程中遇到的一些问题。
在使用window机器做并发压测的时候,发现并发数设置100的时候,会出现报错:java.net.SocketException: Socket operation on nonsocket: connect
环境准备:
java 1.8
jmeter 5.1.1
jmeter环境依赖JAVA环境,需安装JDK1.8环境,JDK环境安装网上一大堆教程,自己去想办法吧,我这里就不多说了。
jmeter的安装包,网上随便下载一个就可以了https://jmeter.apache.org/download_jmeter.cgi
下载zip包,解压到本地,打开apache-jmeter-5.1.1\bin目录,找到jmeter.bat双击就可以了
压测的接口是我本地随便写的一个接口,接口相关信息如下
接口访问地址:http://127.0.0.1:8000/api/test/demo
请求方式:get
本次测试目标:设置50,100, 200并发数,测试服务器发最大TPS值
打开jmeter界面添加线程组,设置虚拟用户数100(也就是并发数),每秒启动100个线程,循环1000次
添加http请求
添加查看结果数和聚合报告
当并发数设置100,启动测试后,会出现报错:java.net.SocketException: Socket operation on nonsocket: connect
新建DWORD值,name:TcpTimedWaitDelay,value:30(十进制)设置为30秒
新建DWORD值,name:MaxUserPort,value:65534(十进制)最大连接数65534
右键-新建DWORD值
重命名后,选中十进制,设置对应的值
新建DWORD值,name:MaxUserPort,value:65534(十进制)最大连接数65534