【转载】JMeter安装

这里写自定义目录标题

jmeter教程

官网:https://jmeter.apache.org/

Jmeter是纯java编写的,所以使用Jmeter之前先安装JDK。目前我使用 Jmeter5.X版本,官方温馨提示需要Java8以上的环境。如果使用其他版本的Jmeter,需要考虑Java环境,避免产生尴尬的事情。

一、下载和安装

1.1、下载

下载地址:https://jmeter.apache.org/

jmeter5.3下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.3.tgz

浏览器推荐使用Google官方这个:https://www.google.cn/chrome/

如果使用谷歌双核浏览器下载会非常慢,使用这个Google官方这个下载速度不是一般的Kuai

在这里插入图片描述

在这里插入图片描述

不过说,这样就下载OK了。

1.2、安装(Windows环境)

解压打开才发现,不用安装,直接启动就可以启动。但是每次都需要到这个安装目录启动,是有些麻烦,我们就配置一下环境变量直接使用命令启动比较方便。

方式一

直接到安装目录的 bin目录下执行jmeter.bat就可以启动。

在这里插入图片描述

  • 启动

在这里插入图片描述

这样启动,同时会有一个DOS窗口,这个窗口不要关闭了。如果关闭,Jmeter也就随着关闭了。

方式二(推荐)

使用命令操作,启动时会稍微缓慢一些,不过特别方便。

  • 配置环境变量

环境变量我个人喜欢配置为个人用户变量,而不是系统变量,可以根据自己的喜好定义即可。

在这里插入图片描述

在这里插入图片描述

变量名变量值
JMETER_HOMED:\软件\apache-jmeter-5.3 # Jmeter安装目录
Path%JMETER_HOME%\bin
  • 查看Jmeter版本
jmeter -v

  
  
  • 1

在这里插入图片描述

  • 启动jmeter
jmeter

  
  
  • 1

1.3、汉化

默认是英文的,如果对英文不太好的,我们想要汉化为咋们母语,使用起来会更佳方便。

  • 方式一

在这里插入图片描述

  • 方式二

更改Jmeter中的 jmeter.properties配置文件,这个文件也是在lib目录下的。

language=zh_CN

  
  
  • 1

在这里插入图片描述

在这里插入图片描述

1.4、外观设置

默认的外观样式看起来很爽,但是监听测试结果的时候,图形结果,汇总图等信息看不清楚。所以这个很牛的大黑板我们的更改一下,目前感觉大白板看起来也不错,至少能够看清楚显示的数据,所以将开关更改为大白板(Windows)。

  • 默认样式

在这里插入图片描述

  • 更改样式

在这里插入图片描述

二、Jmeter使用

2.1、线程组说明

使用Jmeter需要创建线程组,线程组就是一组用户。因为Jmeter使用java编写的,并且使用一个java线程来模拟一个虚拟的用户。线程组就是指一组线程,而这些线程就代表一组用户。所以需要使用Jmeter必须先创建线程组的原因。

jmeter中的线程组分为三种,普通线程组、setUp线程组,Teardown线程组三种。

setUp线程组和tearDown线程组,它们与普通线程组区别在于,setUp线程在普通线程执行前自动触发执行;

tearDown线程组在主线程结束后执行。

  • 用途

setUp线程组可以用于测试准备,比如用它来创建测试用户等。
Teardown线程组可以用于测试清理工作,比如删除测试用户等。

2.2、创建线程组

首先创建一个模块,点击文件 -> 新建。或者工具栏的第一个图标。

在这里插入图片描述

这里有一个体验不是很OK的效果,如果你点击创建之后。如果当前模块并没有保存,会给出一个提示。如果当前模块已经保存了,那么会直接在右边显示一个模块自己填写新的工程,但是这个页面显示的默认是当前模块的数据。不用担心直接更改 ctrl+S保存即可。

在这里插入图片描述

在这里插入图片描述

  • 线程数

线程数就是创建几个虚拟的用户

  • Ramp-Up时间(秒)

多长时间执行完毕所有的线程数,如果这里设置为 0,线程数为 100,那么表示同一个时刻发送100个请求,发送到哪里呢?下面在做分析。

  • 循环次数

这里如果选择永远,那么就一直保持执行,不停的执行,如果设置为 X,那么按照当前的执行规则执行 X遍,不过这里必须设置为数字,真的搞一个字母谁知道这个字母是多少,除非是一个变量名。

2.3、创建一个HTTP请求

我们使用的一般都是HTTP协议,如果使用TCP等协议的在另外做参考,暂时我也不知道,哈哈哈。这里创建的方式都一样,但是版本的不同会有写差异。

在这里插入图片描述

在这里插入图片描述

这样就创建完了,可以测试了。但是测试的结果我们还不知道,所以我们需要添加监听器。

2.4、监听器

监听器是用于监听测试的结果和测试过程中的各种变化,Jmeter提供很多监听方式,可以自己选择添加即可。如果没有监听器,那么测试结果我们获取不到。监听器中,聚合报告和汇总报告需要关注一下,对吞吐量、异常数等信息做了汇总。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.5、配置原件

参考:https://www.cnblogs.com/wusun/p/13872524.html

JMeter配置元件可以用来初始化默认值和变量,读取文件数据,设置公共请求参数,赋予变量值等,以便后续采样器使用。将在其作用域的初始化阶段处理。 配置元件(Config Element)提供对静态数据配置的支持,可以为取样器设置默认值和变量。

在测试用,大多数单体系统都是自带认证系统的。所以需要校验Token等信息,这是就需在请求头设置Token信息。

在这里插入图片描述

三、执行SQL脚本

废话不多说,连接数据库是需要驱动的。连接MySQL需要MYSQL驱动,MongoDBMongoDB的驱动。在开发中没有考虑MongoDB驱动,是因为springboot默默地帮你完成了这件不起眼却十分关键的事情。但是Jmeter不一样了,需要手动添加驱动了。

3.1、执行MySQL脚本

添加驱动

如果开发是使用java开发的,那么数据库驱动可以到maven本地仓库里面去获取,没有必要在去下载。

在这里插入图片描述

在这里插入图片描述

创建 JDBC Connection Configuration

注意:更改数据库驱动或者新增数据库驱动,需要重启Jmeter才会生效。

JDBC Connection Configuration类似于一个数据源,同一个线程组中可以创建多个数据源。JDBC Connection Configuration中有一个名称为 Variable Name for created pool的变量,这个变量值就相当于当前数据源的唯一标识。如果同一个线程组中存在多个数据源,那么就靠这个变量名来指定使用哪个数据源。这个变量必须配置,否则会报异常的。

  • 必须填写的选项有
    • Variable Name for created pool:相当于当前数据源的标识
    • Database URL:数据库的连接地址
    • JDBC Driver class:数据库驱动
    • Username:数据库名称
    • Password:数据库密码

在这里插入图片描述

在这里插入图片描述

创建 JDBC Request

在这里插入图片描述

在这里插入图片描述

注意:目前的这种配置SQL区域这里只能书写一个SQL语句,不管SQL复不复杂,只要是一个SQLOK

如果测试时需要输入多条SQL语句,需要在JDBC Connection Configuration数据库连接地址后面添加 allowMultiQueries=true即可。

allowMultiQueries=true

  
  
  • 1

在这里插入图片描述

测试

  • 创建监听器查看测试结果

在这里插入图片描述

  • 启动测试

在这里插入图片描述

在这里插入图片描述

这样就测试OK了。

四、使用技巧

4.1、刚开启的Jmeter不能操作问题

Windows中的Jmeter,在重启之后。显示的这个测试模块打不开,不管怎么处理都没有。可以点击打开图标,找到保存的文件打开就可以操作了。

在这里插入图片描述

4.2、jmx文件说明

jmx文件是Jmeter的操作文件,这个文件保存我们测试中配置的所有信息。如果当前配置文件拷贝到其他机器上测试,JDBC驱动地址等信息需要改变,可以直接在这个配置文件中更改即可。

如果是在Windows上测试,我们可以打开在Jmeter中图形化更改,这样的确很爽。但是如果是copLinux中测试,这就不得不更改配置文件来解决问题了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

五、Jmeter在Linux上工作

JMeterjava书写的,不管是在Windows还是Linux还是外太空,JDK`是必须要安装的。

Linux安装JDK参考:https://blog.csdn.net/qq_41853447/article/details/105715288

5.1、配置环境变量

vim /etc/profile

  
  
  • 1
JMETER_HOME=/opt/data/apache-jmeter-5.3
PATH=$JMETER_HOME/bin:$PATH

  
  
  • 1
  • 2
source /etc/profile

  
  
  • 1

检测是否配置成功

jmeter -v

  
  
  • 1

5.2、测试

Windows环境中配置好的jmx文件上传到Linux系统中,切记:数据驱动地址一定要更改。因为是配置好环境变量的,所以直接执行命令即可,没有必要在到 JMeter目录执行命令了。

方式一

jmeter -n -t JDBC测试.jmx -l JDBC测试结果.jtl

  
  
  • 1

-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置,指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错

JDBC测试.jmx 需要测试的JMeter文件,就是Windows环境下配置的这个。

JDBC测试结果.jtl:保存执行结果,文件的后缀一般都是 jtl,但是为其他的也没有毛病的。

在这里插入图片描述

方式二

jmeter -n -t 测试文件.jmx -l 测试结果文件.jtl -e -o 生成web测试结果保存的路径

  
  
  • 1
  • 案例
jmeter -n -t /opt/data/jmeter/测试计划.jmx -l /opt/data/jmeter/测试结果.jtl -e -o /opt/data/jmeter/resut

  
  
  • 1

参数就不用介绍了,和方式一相同。

在这里插入图片描述

将测试结果 web文件 /opt/data/jmeter/resut下载到本地使用浏览器打开。

在这里插入图片描述

目前我的测试任务是两个,所以这里会显示两个测试结果。如果英文不好的,可以使用谷歌浏览器打开翻译即可。

5.3、测试结果分析

查看结果树(View Results Tree

这种模式可以详细观看到每个线程的测试结果。

在这里插入图片描述

在这里插入图片描述

返回数据

  • 取样器结果:返回值报200,表示执行接口调试成功
  • 请求:发送的数据
  • 响应数据:返回的数据
  • Thread Name:线程组名称
  • Sample Start: 启动开始时间
  • Load time:加载时长
  • Latency:等待时长
  • Size in bytes:发送的数据总大小
  • Headers size in bytes:发送数据的其余部分大小
  • Sample Count:发送统计
  • Error Count:交互错误统计
  • Response code:返回码
  • Response message:返回信息
  • Response headers:返回的头部信息

聚合报告(AggregateReport

在这里插入图片描述

  • Label - 请求对应的name属性值。
  • Samples - 具有相同标号的样本数,总的发出请求数。
  • Average - 请求的平均响应时间。
  • Median - 50%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第50%的值。
  • 90% Line - 90%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第90%的值。
  • 95% Line - 95%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第95%的值。
  • 99% Line - 99%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第99%的值。
  • Min - 最小响应时间。
  • Max - 最大响应时间。
  • Error % - 本次测试中,有错误请求的百分比。
  • Throughput - 吞吐量是以每秒/分钟/小时的请求量来度量的。这里表示每秒完成的请求数。
  • Received KB/sec - 收到的千字节每秒的吞吐量测试。
  • Sent KB/sec - 发送的千字节每秒的吞吐量测试。

如果当前的语言是中文,那么这里显示的就是中文。但是对于这些名称或许不太理解,所以这里附加说明。

常见异常

DOS窗口下提示这个异常,说明创建 JDBC Request的时候 Variable Name of Pool declared in JDBC Connection Configuration指定数据源的这个名称为空了。

Exception "java.lang.ClassNotFoundException: com/intellij/codeInsight/editorActions/FoldingData"while constructing DataFlavor for: application/x-java-jvm-loc

  
  
  • 1

在这里插入图片描述

在这里插入图片描述

  • Response message:java.sql.SQLException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

数据库驱动不对,检查当前模块中引入的数据库驱动是否存在,或者是否正确。在检查 JDBC Request中书写的数据库驱动是否正确。

------------------------------------------------------------------------------------

版权声明:本文为CSDN博主「逍遥客.」的原创文章
原文链接:https://blog.csdn.net/qq_41853447/article/details/110521281

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值