前言
最近用jmeter做一些接口的压力测试,记录下使用过程中遇到的一些问题。
在使用window机器做并发压测的时候,发现并发数设置100的时候,会出现报错:java.net.SocketException: Socket operation on nonsocket: connect
环境准备:
java 1.8
jmeter 5.1.1
jmeter环境
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压测
打开jmeter界面添加线程组,设置虚拟用户数100(也就是并发数),每秒启动100个线程,循环1000次
添加http请求
- 请求方式: http
- ip地址:也就是你部署服务的机器的ip,本机可以写127.0.0.1
- port端口:8000
- HTTP请求方式: get
- Path 接口的地址: /api/test/demo
添加查看结果数和聚合报告
100并发报错
当并发数设置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
原文地址:https://www.cnblogs.com/yoyoketang/p/11657568.html