简介
JMeter是Apache开发的基于Java的压力测试工具。用于对软件做压力测试,最初用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
JMeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器、脚本、对象。
配置jdk
我的电脑–>鼠标右键–>属性–>高级系统设置–>高级–>环境变量
(1) 新建->变量名"JAVA_HOME",变量值"C:\Program Files (x86)\Java\jdk1.8.0_144"(即JDK的安装路径)
(2) 编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3) 新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
(4) Windows+R,输入cmd打开控制台,输入java -version查看版本
运行jmeter
进入D:\apache-jmeter-3.3\bin目录,运行jmeter.bat文件
1.添加线程组
区域一:在取样器错误后要执行的动作
继续:继续执行接下来的操作
Start Next Thread Loop:忽略错误,执行下一个循环
停止线程:退出该线程(不在进行此线程的任何操作)
停止测试:等待当前执行的采样器结束后,结束整个操作
Stop Test Now:直接停止整个测试
区域二:线程属性
线程数:模拟的用户量,一个线程表示一个请求
Ramp-Up Period(in seconds):达到指定线程数所需要的时间,如果线程数为100,此处设置为10,即表示每秒启动10个线程数。
循环次数:执行的次数,选中永远会一直执行下去
区域三:调度器
启动时间:线程下的接口的启动时间
结束时间:线程下的接口的结束时间
持续时间:从线程的启动时间开始算起,到持续时间之后结束
延迟之间:从线程的启动时间开始算起,延迟N秒之后开始执行
2.添加http请求
右键线程组–>添加–>sampler–>http请求
Parameters和Body Data参数化的区别:
Parameters:post和get请求都会用到,链接地址中显示xx=xx&xx=xxx
Body Data:json格式的请求
(备注:json格式的请求需添加http信息头管理器)
3.http信息头管理器
右键线程–>添加–>配置原件–>http信息头管理器
如何添加内容:
1)打开要测试的系统,F12之后,随便请求一个页面
2)查看network–>header–>Request Header将Accept,Accept-Encoding,Accept-Language,Content-Type,User-Agent复制进去
添加信息头管理器的作用:
模拟一个浏览器请求
4.察看结果树
主要显示接口返回数据和结果
5.图形结果
样本数据:服务器接收的请求数
最新样本:最后一个请求的响应时间(单位:ms)
平均:总运行时间除以发送到服务器的请求数量
偏离:服务器响应时间变化,偏离值越大说明系统越不稳定
吞吐量:服务器每分钟处理的请求数,吞吐量越大说明服务器的处理事务的能力和效率越强
中值:表示50%的服务器响应时间低于该值,50%的服务器响应时间高于该值
6.用表格察看结果
Sample:线程序号
Start Time:线程请求开始时间
Label:线程请求名称
Sample Times(ms):请求响应时间
Status:请求响应时间
Bytes:请求的大小
Latency:请求延迟时间
Connect Time:请求连接时间
7.聚合报告
各接口的最大,最小,平均响应时间