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.一个线程代表一个用户,线程组中配置了几个线程数就是表示几个用户使用。
Ramp-Up时间:
所有用户上线的总时间,以秒为单位。
循环次数:
每个用户 做线程组里面定义的行为多少次。 默认1次
3、手动取样器
一个具体的请求,是通过 Sampler 取样器
来 定义的,最常用的就是这个 HTTP请求取样器。
右键线程组-添加取样器 http请求,5个用户都去访问hello接口
4、查看结果树
监听器
:最常见的就是查看结果树
,里面会显示HTTP请求具体的细节的信息。
线程组右键,添加-监听器-查看结果树
结果树中大概就长这样
- Connect Time : jmeter 和 被测系统 建立 TCP 连接的时间,包括3路握手时间, 如果连接复用, 值为0
- lantency: 从发出请求前 到 接收完第一个响应的时间
- load time: 从发出请求前 到 接收完所有响应的时间 如果是长消息
load time >= lantency,因为有多个响应【区别在于是不是一次能接受完】
这里显示了很多信息,分别是如下意思:
Thread Name 线程组名称
Sample Start 启动开始时间
Load time 加载时长,这个时间是我们测试常用的时间,也是整个请求的消耗时间,从发送到接收完成全程消耗的时间
Latency 等待时长,不常用,表示从请求发送到刚开始接收响应时的时间
Size in bytes 发送的数据总大小
Headers size in bytes 发送头大小
Body size in bytes 发送数据的其余部分大小
Sample Count 发送请求数统计
Error Count 交互错误统计
Data type 数据类型
Response code 返回码
Response message 返回信息
Response headers 返回的头部信息
HTTPSampleResult 其它附加的请求信息
Size in bytes : 整个消息消息大小 = Headers size in bytes + Body size in bytes
Headers size in bytes : 响应消息头大小
Body size in bytes : 响应消息体大小
5、开启并发压力测试
接着开启并发压力测试,
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 )