前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >压测工具Jmeter的安装与使用

压测工具Jmeter的安装与使用

作者头像
微客鸟窝
发布2023-01-09 19:21:48
1.3K0
发布2023-01-09 19:21:48
举报
文章被收录于专栏:Go语言指北Go语言指北

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。

「注意:我们需要在windows上使用jmeter 界面来调试及生成测试(.jmx)文件,然后再以命令行模式进行 jmeter 命令进行压测」

?为什么要用命令行运行Jmeter? 1、NON GUI模式能大大缩减所需要的系统资源;GUI模式,会会消耗大量的内存资源,容易使压力机本身达到瓶颈,从而影响测试结果。 2、GUI模式,不能支持大型的负载测试与性能测试,并发超大时,JMeter会崩溃。 ?

安装

windows 安装 JDK

JMeter是Java程序, 需要先安装JDK来运行它。此处使用 JDK8 版本。

  1. 官网下载:Java Downloads | Oracle
  2. 找到下载安装包的目录,双击安装包进入安装向导。

后续直接下一步,安装即可,如果需要更改安装位置则自己新建个jdk1.8.0、jre1.8.0 目录安装。

  1. 配置环境变量

在环境变量-》系统变量

  • 新建变量名JAVA_HOME,变量值是JDK安装路径
  • 新建变量CLASSPATH,变量值是 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  • 找到Path变量,双击变量值编辑,新建变量值为%JAVA_HOME%\bin
  1. 校验是否配置成功

cmd ,输入 java -version即可查看到当前配置的版本号,则证明配置成功

windows 安装 jmeter

  1. 官网下载:Download Apache JMeter

?在 Binaries 下面的 JMeter 程序压缩包文件 下载列表,点击 apache-jmeter-5.x.x.zip 这样的下载链接,下载到一个合适的目录,我这里是 D:\tools 目录下。 ?

  1. 然后解压该文件,选择解压到当前目录,即出现一个名为 apache-jmeter-5.4.1 的目录,进入到该目录中,再进入到名为bin的目录。
  • 如果是Windows系统:双击名为 jmeter.bat 的文件,即可打开JMeter管理界面程序。
  • 如果是Mac系统,在命令行窗口中,进入到jmeter的bin目录,执行命令 sh jmeter.sh
  1. 配置环境变量如下
  • 新建变量名JMETER_HOME,变量值是jmeter安装路径
  • 修改 classpath,追加内容 %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;

linux 安装 JDK

本次环境为centos7+jdk8

  1. CentOS系统会自带jdk但是执行javac会失败,所以需要把自带的卸载掉重新安装
  • 查看系统是否安装过java yum list installed | grep java
  • 如果有旧版本的java,可以用如下方法卸载java yum -y remove java-1.8.0-openjdk*
  • 查看java软件包列表 yum -y list java*
  • 下载安装java1.8的所有软件包,中途需要输入y来确认下载。yum install java-1.8.0-openjdk*
  • 安装成功,输入如下命令检查是否安装成功,如果返回正确的版本号则表示安装成功 java -version
  1. 环境变量的配置 使用yum安装的java的默认安装路径在 /usr/lib/jvm,我们可以看到这个目录里只有两个目录,其中一个是java-1.8.0-openjdk,查看这个目录,可以找到其下的bin目录,并找到java和javac命令。所以将JAVA_HOME指向这个目录。(备注:export 与JAVA_HOME之间有且只有一个空格)

需要修改/etc/profile文件,添加JAVA_HOME

编辑/etc/profile

代码语言:javascript
复制
#set java environment  
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
代码语言:javascript
复制
#使配置生效
. /etc/profile    
  1. 验证java是否安装成功
  • 验证JAVA_HOMEecho $JAVA_HOME
  • 验证java安装是否成功java -version
  • 验证jdk是否安装成功javac

linux 安装 jmeter

  1. 下载:Index of /dist/jmeter/binaries

下载好对应的版本直接到 linux 解压就好,要提前装好java环境。

  • 检查linux系统上是否安装JDK,输入命令
    • java -version
  • 上传 apache-jmeter-5.2.5.tgz 至linux服务器
  • 使用命令 tar -zxvf apache-jmeter-5.2.5.tgz 解压文件
  1. 配置 jmeter 环境变量
  • 使用命令 vim /etc/profile 打开配置文件
代码语言:javascript
复制
export JMETER_HOME=/usr/local/software/apache-jmeter-5.5
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
代码语言:javascript
复制
#使配置生效
. /etc/profile    
  • 进入 jmeter 下bin 目录中,chmod +x jmeter 赋予权限
  • ./jmeter -v 查看jmeter是否正确安装

使用

在 jmeter 目录下的bin目录中双击运行 jmeter.bat 来启动

配置选项

我们可以在节目选项中来设置语言、界面外观风格、字体大小等。

接口测试

  1. 左侧的 Test Plan,中文翻译为测试计划,可以理解为一个测试用例,我们可以给这个用例来命名。
  2. 添加线程组

右键测试计划来添加线程组,可以给线程组重命名,通过线程组来设置线程数、所有线程执行的时间等信息:

?参数说明:

  • 线程数:模拟请求的次数;
  • Ramp-Up时间(秒):所有线程执行的时间,比如:配置了 2 秒,线程数配置了 50,要在 2 秒内执行 50 次请求;
  • 循环次数:要轮询执行几次;
  • 调度器
    • 持续时间(秒):就是本次执行的线程持续多长时间;
    • 启动延迟(秒):本次执行的线程启动要延迟多长时间执行;

    ?

  1. 接下来,我们开始配置具体需要测试的接口地址。

在线程组上右键,选择添加-》取样器-》HTTP请求

填上测试接口信息:

  1. 设置配件元件 ,可以设置HTTP请求的基本信息,如 http 信息头管理器、http Cookie 管理器、 http缓存管理器、http请求默认值,需要根据自己的接口来设置不同的参数。
  1. 配置监听器,可以添加 汇总报告、聚合报告、查看结果树
  • 汇总报告:可以查看接口的最大、最小、平均请求值,可以看接口的异常率、吞吐量、接口、发送、平均字节数等信息:
  • 聚合报告:可以查看接口请求最大、最小、平均值、异常率、吞吐量等信息:
  • 查看结果树:查看每个请求成功与否。可以配置每个请求的日志输出路径,以什么格式的文件输出:

参数意义:

?

  • Connect Time :
    • jmeter 和 被测系统 建立 TCP 连接的时间,包括3次握手时间,如果连接复用, 值为0
  • lantency:
    • 从发出请求前 到 接收完第一个响应的时间
  • loadtime(以前叫Elapsed time):
    • 从发出请求前 到 接收完所有响应的时间
    • 如果是长消息, 往往时长 >= lantency,因为有多个响应
  • Size in bytes :
    • 整个消息消息大小 = Headers size in bytes + Body > size in bytes
  • Headers size in bytes : 响应消息头大小
  • Body size in bytes : 响应消息体大小

?

命令行模式 运行

我们通过上面的测试用例来调试没问题后,保存生成 .jmx 测试文件,最后来以命令行模式下运行。

这里以windows 为例,cmd 终端运行:

代码语言:javascript
复制
jmeter -n -t demo.jmx  -l result.jtl

注意,jmeter 我们在安装的时候配置了环境变量,否则需要在安装路径下运行,如:

代码语言:javascript
复制
D:\tools\apache-jmeter-5.5\bin\jmeter -n -t demo.jmx  -l result.jtl

命令行参数释义

代码语言:javascript
复制
-n 非GUI模式 -> 在非GUI模式下运行JMeter
-t 测试文件<参数> ->要运行的jmeter测试(.jmx)文件
   (若命令行模式在bin/文件夹下,则可以使用相对路径,否则使用绝对路径)
-l 日志文件<参数> ->生成的日志文件,指定结果文件路径 (同上)
-j 指定日志文件路径 (同上)
-o 指定报表文件路径(同上)
 
-R 指定远程服务器列表
-g 制定csv测试结果文件路径(同上)
-e 测试完成生产报表
-r 设置分布式执行
-H 设置JMeter设置代理服务器IP或域名 
-P 设置JMeter代理服务器端口号
-h 打印使用信息并退出

dashboard 产生图表

使用生成的jmeter测试结果日志文件 .jtl,来生成HTML性能测试报告:

代码语言:javascript
复制
jmeter -g result.jtl -o report

命令行参数释义

代码语言:javascript
复制
# -g:后跟 result.jtl文件所在的路径
# -o:后跟生成的HTML文件存放的路径,路径目录可以不存在,或者为空,否则jmeter怕覆盖其中内容而报错

通过以上命令便可生成图表,我们通过浏览器打开 index.html 便可看到相关信息:

其中 APDEX (Application Performance Index) 里面的 T (Toleration threshold) 和 F (Frustration threshold) 可以通过 JMeter 工具 bin 目录下面的 user.properties 配置文件里面 这两个选项来设置:

代码语言:javascript
复制
jmeter.reportgenerator.apdex_satisfied_threshold
jmeter.reportgenerator.apdex_tolerated_threshold

图片及部分相关技术知识点来源于网络搜索,侵权删!

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-19,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 微客鸟窝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
    • windows 安装 JDK
      • windows 安装 jmeter
        • linux 安装 JDK
          • linux 安装 jmeter
          • 使用
            • 配置选项
              • 接口测试
                • 命令行模式 运行
                  • dashboard 产生图表
                  相关产品与服务
                  腾讯云 BI
                  腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                  http://www.vxiaotou.com