欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JMeter使用教程

程序员文章站 2024-01-19 17:47:16
...

JMeter下载链接:
http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-5.2.1.zip

然后进行解压:
JMeter使用教程
解释:
bin:可执行脚本文件

docs:JMeter提供的api的文档

extras:额外的文件

lib:JMeter本身所依赖的jar包

licenses:JMeter依赖的jar包的license

printable_docs:JMeter的介绍和使用手册

JMeter既提供了GUI界面方便用户使用也提供了命令行的方式让用户操作。

JMter工具的使用
JDK安装
由于Jmeter是基于java开发,首先需要下载安装JDK,配置系统环境变量

使用JMter工具:
解释一下这些概念:
TestPlan:测试计划,相当于一个工程,需要测试什么,怎么测就是定义在一个测试计划中
Thread Group:线程组,相当于模拟的请求数。一个线程相当于一个用户请求
察看结果树:监听发送请求时各个请求的状态
聚合报告:把一次测试的数据汇总

新建一个Thread Group, jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。JMeter使用教程

为线程组进行配置
JMeter使用教程
在线程组上面增加采样器,选择HTTP请求

JMeter使用教程
设置要压测的请求的请求方式、路径、编码格式,请求参数等
JMeter使用教程
在线程组下面增加监听器,用于查看压测结果
(监听器会影响性能,影响测试的效果,要结合实际看自己需要哪种监听)
JMeter使用教程
JMeter使用教程
运行
运行单个线程组:
JMeter使用教程
运行脚本内所有的线程组
JMeter使用教程

清除当前监听的内容
JMeter使用教程
JMeter使用教程
线程组参数详解

  1. 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  2. Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。
  3. 循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
  4. Delay Thread creation until needed:直到需要时延迟线程的创建。
  5. 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
    持续时间(秒):测试持续时间,会覆盖结束时间
    启动延迟(秒):测试延迟启动时间,会覆盖启动时间
    启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
    结束时间:测试结束时间,持续时间会覆盖它。
    聚合报告参数详解:
    Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
    Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
    Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
    Median:中位数,也就是 50% 用户的响应时间
    90% Line:90% 用户的响应时间
    Min:最小响应时间
    Max:最大响应时间
    Error%:错误率——错误请求数/请求总数
    Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
    KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。

JMeter的命令行使用
在开始通过bin/jmeter.bat启动JMeter
JMeter使用教程
会在控制台输出如下的信息:
JMeter使用教程

先说第2点,因为JMeter是用纯Java写的,是运行在JVM上的,所以它的运行会受到JVM参数的控制,默认的堆大小是1G(初始值Xms和最大值Xmx都是1G),最大的Metaspace为256M(JDK8没有永久代的概念了,用Metaspace代替)。在bin/jmeter.bat中有一行(第150行)是用来设置JVM参数的:

set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m

比如我们可以把这三个参数都增大1倍,然后再启动一下,发现JVM参数已经变了

JMeter使用教程
但是官方不建议我们直接去修改启动脚本,而是建议我们在bin目录下创建一个名为setenv.bat然后在其中设置运行参数(如果配置过tomcat的jvm参数就会很熟悉这种做法了),我们把jmeter.bat文件的HEAP参数改为原来的值,然后在bin目录下创建一个setenv.bat文件,并且写入以下内容:

set HEAP=-Xms2g -Xmx2g -XX:MaxMetaspaceSize=512m

重启JMeter,再次查看其JVM参数如下
JMeter使用教程
以上就是JMeter的运行参数设置,说这么多的目的其实和第1点有关。我们的服务器基本都是Linux系统,而我们的服务器应该不会安装GUI操作界面,因为这对于用来运行服务来说不但没用,还会吃掉很多cpu和内存资源,可能还会让服务器不稳定。这也是JMeter建议我们不要用GUI的方式去测试的原因。
jmeter命令的几个常用参数:

-n:非GUI模式,其实就是命令行的模式

-t:后跟测试文件(jmx文件)

-l:后跟log文件,把测试的过程输出到日志文件中

-e:测试结束后生成报告

-o:测试报告存放目录,必须是空目录
下面使用命令行测试:
JMeter使用教程
完成后会在指定的目录生成html格式的测试报告,其中有个index.html,我们打开它,就可以看到图形化报告了。
JMeter使用教程
参考链接:https://blog.csdn.net/u012111923/article/details/80705141
https://blog.csdn.net/lovesoo/article/details/78579547