Jmeter安装启动
1、Jmeter下载安装
模拟真正的大量并发请求
下载Jmeter:Apache JMeter - Download Apache JMeter
解压apache-jmeter-5.4.1.zip文件至目录下(不要有空格和中文)
2、配置JMETER_HOME
我的电脑----》属性----》高级----》环境变量----》在系统变量中----》点击新建JMETER_HOME,
变量名输入:JMETER_HOME
变量输入:E:\server\jmeter\apache-jmeter-5.4.1\apache-jmeter-5.4.1
3、编辑CLASSPATH变量
加上下面这行,然后确定
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
3、启动Jmeter
点击Jmeter中bin目录下面的jmeter.bat文件即可打开Jmeter了。
接着会打开俩个窗口:Jmeter的命令窗口和Jmeter的图形操作界面,不可以关闭命令窗口
切换一下界面主题和语言
JMeter入门
1、测试计划test plan
一个性能测试场景, JMeter称之为 test plan
,中文翻译为 测试计划
。
实际上,一个 JMeter的测试计划 对应 性能测试的一个场景,其实也就是一个 测试用例
。
2、线程组
JMeter 把同一种用户的行为和数量, 用线程组来定义,代表有一批用户,都是这样的行为。
1.添加线程组
2.来20000个并发压死8001
一个线程代表一个用户,线程组中配置了几个线程数就是表示几个用户使用。
Ramp-Up 时间
意思是 所有用户上线的总时间,以秒为单位。
循环次数
意思是 每个用户 做线程组里面定义的行为多少次。 默认1次
3、取样器
3. 添加取样器 http请求,20000个请求都去访问paymentInfo_TimeOut服务
先在浏览器测试 这是可以访问成功的 http://localhost:8001/payment/hystrix/timeout/1
4、保存测试计划,下次启动的时候也能用
现在我们在保证访问http://localhost/consumer/payment/hystrix/timeout/2
可以在5秒后成功访问到
线程组右键,查看结果树
效果变成了
结果树中大概就长这样
4、开启并发压力测试
接着开启并发压力测试,
再在浏览器访问相同的http://localhost/consumer/payment/hystrix/timeout/2
结果就访问不了了,这就是高并发威力
为什么会打圈呢,最终导致消费端超时报错?
Tomcat是一个Web应用服务器,同时也是一个Servlet/JSP容器。Tomcat作为Servlet容器,负责处理客户端请求,把请求传送给Servlet,并将Servlet的响应返回给客户端。
tomcat的默认的工作线程数被打满了,没有多余的线程来分解压力和处理。
server: tomcat: max-connections: 10000 #最大连接数,默认为10000 accept-count: 100 # 最大连接等待数,默认100 max-threads: 200 #最大工作线程数,默认200 min-spare-threads: 10 #最小工作线程数,默认10
每一次HTTP请求到达Web服务器,Web服务器都会创建一个线程来处理该请求.最大工作线程数:(4核8g内存,线程数800,一般是 核数*200 )