zoukankan      html  css  js  c++  java
  • Linux中安装JMeter并执行压测

    前言

    最近在做性能测试,性能测试方案中要求使用Linux服务器做压力机,压力发起工具使用JMeter,所以需要在Linux中安装JMeter。

    准备

    Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK。

    CentOS 7.3 64位
    JDK 1.8(可参考文章:Linux下安装JDK 1.8

    下载JMeter安装包

    Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK。

    Jmeter是开源的工具,我们直接到官网下载即可,本次安装的版本是 5.1.1

    最新版本下载地址:https://jmeter.apache.org/download_jmeter.cgi
    历史版本下载地址:https://archive.apache.org/dist/jmeter/binaries/

    下载后缀为 .tgz 或 .zip 都是可以的,我们可以在Linux通过 wget 命令下载Jmeter安装包,或者下载后再传到Linux。

    我这里下载的安装包版本是 apache-jmeter-5.2.1.tgz

    安装JMeter

    #新建jmeter文件夹
    mkdir jmeter
    
    #下载安装文件 或 上传已下载好的文件到jmeter目录下 
    wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.2.1.tgz
    
    #解压文件
    tar -xzvf apache-jmeter-5.2.1.tgz
    

      本次解压的目录为:usr/local/jmeter/apache-jmeter-5.2.1

    配置环境

    #配置启动参数
    #打开配置文件
    vim /etc/profile
    
    #将下列代码复制到文件的最后
    export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.2.1
    export PATH=${JMETER_HOME}/bin:$PATH
    

      添加好后保存,执行source /etc/profile,重新加载配置文件。最后,通过jmeter --version查看安装的Jmeter版本,验证安装成功。

     OK,到这里,Jmeter已经安装完成,可以开始使用了!

    Linux中使用JMeter进行压测

    1.在windows系统中设置好压测场景和数据,保存到jmx文件中

     2.将jmx文件上传到服务器jmeter的bin目录下

     3.执行压测命令

    ./jmeter.sh -n -t test.jmx -l result02.jtl
    

      

    遇到的问题问题:    
    1.在进行压力测试时,为了降低网络带宽对响应时间的影响,通常高并发时会采用在Windows上使用JMeter编写好测试脚本-xxx.jmx;将脚本上传到相同局域网的Linux服务器,使用JMeter对应命令进行压力测试的方法。测试有时会遇到如下报错:Error in NonGUIDriver java.lang.IllegalStateException: Could not find the TestPlan class!

     

     问题原因:

    保存测试脚本时只保存了Testplan下的部分节点,导致生成的测试脚本只是“testplan”下面的某些元素,,不包括需要运行测试所需的“TestPlan”元素。

    解决方案:
    在保存测试脚本时,保存整个测试计划,以下两种方式保存测试脚本,可以避免上述报错产生。

    1.在文件菜单中单击“保存测试计划”或“保存测试计划为”选项;

    2.鼠标选中测试计划节点,直接点击工具栏上的“保存测试计划”按钮

    问题2:执行jmeter -n -t xxx.jmx -l result.jtl时,提示如下错误

    Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/usr/local/jmeter/apache-jmeter-5.2.1/bin/客户权益账单查询.jmx'.
    Cause:
    CannotResolveClassException: kg.apc.jmeter.threads.SteppingThreadGroup

    Detail:com.thoughtworks.xstream.converters.ConversionException:
    ---- Debugging information ----
    cause-exception : com.thoughtworks.xstream.converters.ConversionException
    cause-message :
    first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:67)
    class : org.apache.jmeter.save.ScriptWrapper
    required-type : org.apache.jmeter.save.ScriptWrapper
    converter-type : org.apache.jmeter.save.ScriptWrapperConverter
    path : /jmeterTestPlan/hashTree/hashTree/kg.apc.jmeter.threads.SteppingThreadGroup
    line number : 881
    version : 5.2.1
    -------------------------------
    An error occurred: Error in NonGUIDriver Problem loading XML from:'/usr/local/jmeter/apache-jmeter-5.2.1/bin/客户权益账单查询.jmx'.
    Cause:
    CannotResolveClassException: kg.apc.jmeter.threads.SteppingThreadGroup

    Detail:com.thoughtworks.xstream.converters.ConversionException:
    ---- Debugging information ----
    cause-exception : com.thoughtworks.xstream.converters.ConversionException
    cause-message :
    first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:67)
    class : org.apache.jmeter.save.ScriptWrapper
    required-type : org.apache.jmeter.save.ScriptWrapper
    converter-type : org.apache.jmeter.save.ScriptWrapperConverter
    path : /jmeterTestPlan/hashTree/hashTree/kg.apc.jmeter.threads.SteppingThreadGroup
    line number : 881
    version : 5.2.1
    -------------------------------

    原因分析:

    脚本中使用了jp@gc - Stepping Thread Group,jmeter的文件中没有使用包含对应的插件包

    解决办法:

    上传插件包到lib/ext目录下,上传好后再执行jmeter -n -t xxx.jmx result.jtl,便能成功执行

     问题3:执行jmeter -n -t xxx.jmx -l result.jtl时,报java.lang.IllegalArgumentException: File Realtimequeryofrights.txt must exist and be readable

     原因分析:在windows中使用jmeter时,参数脚本路径是绝对路径,比如D:apache-jmeter-5.2.1in,但是在Linux中这个路径是找不到的

    解决办法:

    用windows打开jmeter的脚本,自定义2个变量,分别为path_win和path_linux,然后将路径填充进去,当使用windows来跑脚本时,需要在CSV数据文件设置参数路径为${path_win},但要去Linux跑脚本时,需要改成${path_linux}

  • 相关阅读:
    CPU深度学习模型推理性能抖动问题
    深度学习推理性能优化
    Winograd Convolution 推导
    Res-Family: From ResNet to SE-ResNeXt
    CPU二则
    CPU TFLOPS 计算
    深度学习专题
    计算系统中互联设备Survey
    深度学习框架演进史
    天池医疗AI大赛支持有感
  • 原文地址:https://www.cnblogs.com/wx170119/p/14829508.html
Copyright © 2011-2022 走看看